if (annotations != null) {
for (int i = 0; i < annotations.length; i++) {
java.lang.annotation.Annotation nextAnnotation = annotations[i];
if (nextAnnotation != null && !(nextAnnotation instanceof XmlElement) && !(nextAnnotation instanceof XmlJavaTypeAdapter)) {
String annotationClassName = nextAnnotation.annotationType().getName();
Annotation fieldAttrs1ann0 = new Annotation("L" + annotationClassName.replace('.', '/') + ";");
fieldAttrs1.annotations.add(fieldAttrs1ann0);
for (Method next : nextAnnotation.annotationType().getDeclaredMethods()) {
try {
Object nextValue = next.invoke(nextAnnotation, new Object[] {});
if (nextValue instanceof Class) {
Type nextType = Type.getType("L" + ((Class) nextValue).getName().replace('.', '/') + ";");
nextValue = nextType;
}
fieldAttrs1ann0.add(next.getName(), nextValue);
} catch (InvocationTargetException ex) {
// ignore the invocation target exception here.
} catch (IllegalAccessException ex) {
}
}
}
}
}
}
// FIELD ATTRIBUTES
SignatureAttribute fieldAttrs2 = new SignatureAttribute("L" + mapType.getInternalName() + "<L" + internalKeyName + ";L" + internalValueName + ";>;");
fieldAttrs1.next = fieldAttrs2;
cw.visitField(Constants.ACC_PUBLIC, "entry", "L" + mapType.getInternalName() + ";", null, fieldAttrs1);
cv = cw.visitMethod(Constants.ACC_PUBLIC, "<init>", "()V", null, null);
cv.visitVarInsn(Constants.ALOAD, 0);
cv.visitMethodInsn(Constants.INVOKESPECIAL, "org/eclipse/persistence/internal/jaxb/many/MapValue", "<init>", "()V");
cv.visitInsn(Constants.RETURN);
cv.visitMaxs(1, 1);
// METHOD ATTRIBUTES
RuntimeVisibleAnnotations methodAttrs1 = new RuntimeVisibleAnnotations();
Annotation methodAttrs1ann0 = new Annotation("Ljavax/xml/bind/annotation/XmlTransient;");
methodAttrs1.annotations.add(methodAttrs1ann0);
SignatureAttribute methodAttrs2 = new SignatureAttribute("(L" + mapType.getInternalName() + "<L" + internalKeyName + ";L" + internalValueName + ";>;)V");
methodAttrs1.next = methodAttrs2;
cv = cw.visitMethod(Constants.ACC_PUBLIC, "setItem", "(L" + mapType.getInternalName() + ";)V", null, methodAttrs1);
Label l0 = new Label();
cv.visitLabel(l0);
cv.visitVarInsn(Constants.ALOAD, 0);
cv.visitVarInsn(Constants.ALOAD, 1);
cv.visitFieldInsn(Constants.PUTFIELD, qualifiedInternalClassName, "entry", "L" + mapType.getInternalName() + ";");
cv.visitInsn(Constants.RETURN);
Label l1 = new Label();
cv.visitLabel(l1);
// CODE ATTRIBUTE
LocalVariableTypeTableAttribute cvAttr = new LocalVariableTypeTableAttribute();
cv.visitAttribute(cvAttr);
cv.visitMaxs(2, 2);
// METHOD ATTRIBUTES
methodAttrs1 = new RuntimeVisibleAnnotations();
methodAttrs1ann0 = new Annotation("Ljavax/xml/bind/annotation/XmlTransient;");
methodAttrs1.annotations.add(methodAttrs1ann0);
methodAttrs2 = new SignatureAttribute("()L" + mapType.getInternalName() + "<L" + internalKeyName + ";L" + internalValueName + ";>;");
methodAttrs1.next = methodAttrs2;
cv = cw.visitMethod(Constants.ACC_PUBLIC, "getItem", "()L" + mapType.getInternalName() + ";", null, methodAttrs1);
cv.visitVarInsn(Constants.ALOAD, 0);
cv.visitFieldInsn(Constants.GETFIELD, qualifiedInternalClassName, "entry", "L" + mapType.getInternalName() + ";");
cv.visitInsn(Constants.ARETURN);
cv.visitMaxs(1, 1);
cv = cw.visitMethod(Constants.ACC_PUBLIC + Constants.ACC_BRIDGE + Constants.ACC_SYNTHETIC, "getItem", "()Ljava/lang/Object;", null, null);
cv.visitVarInsn(Constants.ALOAD, 0);
cv.visitMethodInsn(Constants.INVOKEVIRTUAL, qualifiedInternalClassName, "getItem", "()L" + mapType.getInternalName() + ";");
cv.visitInsn(Constants.ARETURN);
cv.visitMaxs(1, 1);
cv = cw.visitMethod(Constants.ACC_PUBLIC + Constants.ACC_BRIDGE + Constants.ACC_SYNTHETIC, "setItem", "(Ljava/lang/Object;)V", null, null);
cv.visitVarInsn(Constants.ALOAD, 0);
cv.visitVarInsn(Constants.ALOAD, 1);
cv.visitTypeInsn(Constants.CHECKCAST, mapType.getInternalName());
cv.visitMethodInsn(Constants.INVOKEVIRTUAL, qualifiedInternalClassName, "setItem", "(L" + mapType.getInternalName() + ";)V");
cv.visitInsn(Constants.RETURN);
cv.visitMaxs(2, 2);
// CLASS ATTRIBUTE
RuntimeVisibleAnnotations annotationsAttr = new RuntimeVisibleAnnotations();
Annotation attrann0 = new Annotation("Ljavax/xml/bind/annotation/XmlType;");
attrann0.add("namespace", namespace);
annotationsAttr.annotations.add(attrann0);
cw.visitAttribute(annotationsAttr);
SignatureAttribute attr = new SignatureAttribute("Lorg/eclipse/persistence/internal/jaxb/many/MapValue<L" + mapType.getInternalName() + "<L" + internalKeyName + ";L" + internalValueName + ";>;>;");
cw.visitAttribute(attr);