if (parameterCount == 0) {
unpackedParameterAnnotations = NO_PARAMETER_ANNOTATIONS;
return;
}
RuntimeVisParamAnnos parameterAnnotationsVis = null;
RuntimeInvisParamAnnos parameterAnnotationsInvis = null;
// Find attributes that contain annotation data
Attribute[] attrs = getAttributes();
for (int i = 0; i < attrs.length; i++) {
Attribute attribute = attrs[i];
if (attribute instanceof RuntimeVisParamAnnos) {
parameterAnnotationsVis = (RuntimeVisParamAnnos) attribute;
} else if (attribute instanceof RuntimeInvisParamAnnos) {
parameterAnnotationsInvis = (RuntimeInvisParamAnnos) attribute;
}
}
boolean foundSome = false;
// Build a list of annotation arrays, one per argument
if (parameterAnnotationsInvis != null || parameterAnnotationsVis != null) {
List<AnnotationGen[]> annotationsForEachParameter = new ArrayList<AnnotationGen[]>();
AnnotationGen[] visibleOnes = null;
AnnotationGen[] invisibleOnes = null;
for (int i = 0; i < parameterCount; i++) {
int count = 0;
visibleOnes = new AnnotationGen[0];
invisibleOnes = new AnnotationGen[0];
if (parameterAnnotationsVis != null) {
visibleOnes = parameterAnnotationsVis.getAnnotationsOnParameter(i);
count += visibleOnes.length;
}
if (parameterAnnotationsInvis != null) {
invisibleOnes = parameterAnnotationsInvis.getAnnotationsOnParameter(i);
count += invisibleOnes.length;