resizeContents(2);
}
final int elementNameIndex = constantPool.literalIndex(memberValuePair.name);
contents[contentsOffset++] = (byte) (elementNameIndex >> 8);
contents[contentsOffset++] = (byte) elementNameIndex;
MethodBinding methodBinding = memberValuePair.binding;
if (methodBinding == null) {
contentsOffset = attributeOffset;
} else {
generateElementValue(memberValuePair.value, methodBinding.returnType, attributeOffset);
}
}
} else {
contents[contentsOffset++] = 0;
contents[contentsOffset++] = 0;
}
} else if (annotation instanceof SingleMemberAnnotation) {
SingleMemberAnnotation singleMemberAnnotation = (SingleMemberAnnotation) annotation;
// this is a single member annotation (one member value)
contents[contentsOffset++] = 0;
contents[contentsOffset++] = 1;
if (contentsOffset + 2 >= this.contents.length) {
resizeContents(2);
}
final int elementNameIndex = constantPool.literalIndex(VALUE);
contents[contentsOffset++] = (byte) (elementNameIndex >> 8);
contents[contentsOffset++] = (byte) elementNameIndex;
MethodBinding methodBinding = singleMemberAnnotation.memberValuePairs()[0].binding;
if (methodBinding == null) {
contentsOffset = attributeOffset;
} else {
generateElementValue(singleMemberAnnotation.memberValue, methodBinding.returnType, attributeOffset);
}