AnnotationsAttribute attr = new AnnotationsAttribute(constpool, AnnotationsAttribute.visibleTag); Annotation annot = new Annotation("org.mengyun.tcctransaction.api.Compensable", constpool); EnumMemberValue enumMemberValue = new EnumMemberValue(constpool); enumMemberValue.setType("org.mengyun.tcctransaction.api.Propagation"); enumMemberValue.setValue("SUPPORTS"); annot.addMemberValue("propagation", enumMemberValue); annot.addMemberValue("confirmMethod", new StringMemberValue(ctMethod.getName(), constpool));
pool.importPackage("java.lang"); EnumMemberValue strategy = (EnumMemberValue) Annotation.createMemberValue(constantPool, pool.makeClass("InheritanceType")); strategy.setType(InheritanceType.class.getName()); strategy.setValue(InheritanceType.SINGLE_TABLE.name()); inheritance.addMemberValue("strategy", strategy); annotationsAttribute.addAnnotation(inheritance); discriminator.addMemberValue("name", name); EnumMemberValue discriminatorType = (EnumMemberValue) Annotation.createMemberValue(constantPool, pool.makeClass("DiscriminatorType")); discriminatorType.setType(DiscriminatorType.class.getName()); discriminatorType.setValue(myInfo.getDiscriminatorType().name()); discriminator.addMemberValue("discriminatorType", discriminatorType); IntegerMemberValue length = new IntegerMemberValue(constantPool);
@Override public void visitEnumMemberValue(EnumMemberValue node) { EnumMemberValue val = new EnumMemberValue(constPool); val.setType(node.getType()); val.setValue(node.getValue()); array[index] = val; }
EnumMemberValue emv = new EnumMemberValue(cp); emv.setType(type.getName()); return emv;
((StringMemberValue) memberValue).setValue((String) value); } else if (memberValue instanceof EnumMemberValue) { ((EnumMemberValue) memberValue).setValue(((Enum<?>) value).name());
void enumMemberValue(int pos, int typeNameIndex, int constNameIndex) throws Exception { currentMember = new EnumMemberValue(typeNameIndex, constNameIndex, pool); super.enumMemberValue(pos, typeNameIndex, constNameIndex); }
@Override public void visitEnumMemberValue(EnumMemberValue node) { values.add(node.getValue()); }
@Override public void visitEnumMemberValue(EnumMemberValue node) { EnumMemberValue val = new EnumMemberValue(constPool); val.setType(node.getType()); val.setValue(node.getValue()); array[index] = val; }
EnumMemberValue emv = new EnumMemberValue(cp); emv.setType(type.getName()); return emv;
((StringMemberValue) memberValue).setValue((String) value); } else if (memberValue instanceof EnumMemberValue) { ((EnumMemberValue) memberValue).setValue(((Enum<?>) value).name());
@Override void enumMemberValue(int pos, int typeNameIndex, int constNameIndex) throws Exception { currentMember = new EnumMemberValue(typeNameIndex, constNameIndex, pool); super.enumMemberValue(pos, typeNameIndex, constNameIndex); }
/** * Writes the value. */ public void write(AnnotationsWriter writer) throws IOException { writer.enumConstValue(cp.getUtf8Info(typeIndex), getValue()); }
private <T extends Enum> MemberValue enumMemberValue(ConstPool constPool, Class<T> enumClass, T value) { final EnumMemberValue mValue = new EnumMemberValue(constPool); mValue.setType(enumClass.getName()); mValue.setValue(value.name()); return mValue; }
return new ClassMemberValue(cp); } else if (type.isEnum()) { EnumMemberValue e = new EnumMemberValue(cp); e.setType(type.getName()); return e; } else if (type.isAnnotation()) {
Object getValue(ClassLoader cl, ClassPool cp, Method m) throws ClassNotFoundException { try { return getType(cl).getField(getValue()).get(null); } catch (NoSuchFieldException e) { throw new ClassNotFoundException(getType() + "." + getValue()); } catch (IllegalAccessException e) { throw new ClassNotFoundException(getType() + "." + getValue()); } }