Annotation[] anns = this.combinedAnnotations; if (anns == null) { anns = super.getParameterAnnotations(); int index = getParameterIndex(); if (index >= 0) {
Annotation[] anns = this.combinedAnnotations; if (anns == null) { anns = super.getParameterAnnotations(); for (Annotation[][] ifcAnns : getInterfaceParameterAnnotations()) { int index = getParameterIndex();
@Override public Annotation[] getParameterAnnotations() { Annotation[] anns = this.combinedAnnotations; if (anns == null) { anns = super.getParameterAnnotations(); for (Annotation[][] ifcAnns : getInterfaceParameterAnnotations()) { Annotation[] paramAnns = ifcAnns[getParameterIndex()]; if (paramAnns.length > 0) { List<Annotation> merged = new ArrayList<>(anns.length + paramAnns.length); merged.addAll(Arrays.asList(anns)); for (Annotation paramAnn : paramAnns) { boolean existingType = false; for (Annotation ann : anns) { if (ann.annotationType() == paramAnn.annotationType()) { existingType = true; break; } } if (!existingType) { merged.add(adaptAnnotation(paramAnn)); } } anns = merged.toArray(new Annotation[0]); } } this.combinedAnnotations = anns; } return anns; }