@Override public AnnotationVisitor visitAnnotation(final String name, final String desc) { AnnotationValueDescriptor valueDescriptor = createValue(AnnotationValueDescriptor.class, name); valueDescriptor.setType(visitorHelper.getTypeDescriptor(visitorHelper.getType(desc))); addValue(name, valueDescriptor); return new AnnotationVisitor(valueDescriptor, visitorHelper); }
@Override public void visitEnum(final String name, final String desc, final String value) { EnumValueDescriptor valueDescriptor = createValue(EnumValueDescriptor.class, name); TypeDescriptor typeDescriptor = visitorHelper.getTypeDescriptor(visitorHelper.getType(desc)); FieldDescriptor fieldDescriptor = visitorHelper.getFieldDescriptor( typeDescriptor, visitorHelper.getFieldSignature(value, desc)); valueDescriptor.setType(visitorHelper.getTypeDescriptor(Enum.class.getName())); valueDescriptor.setValue(fieldDescriptor); addValue(name, valueDescriptor); }
@Override public void visit(final String name, final Object value) { if (value instanceof Type) { String type = visitorHelper.getType((Type) value); ClassValueDescriptor valueDescriptor = createValue(ClassValueDescriptor.class, name); valueDescriptor.setValue(visitorHelper.getTypeDescriptor(type)); addValue(name, valueDescriptor); } else { PrimitiveValueDescriptor valueDescriptor = createValue(PrimitiveValueDescriptor.class, name); TypeDescriptor typeDescriptor = visitorHelper.getTypeDescriptor(value.getClass().getName()); valueDescriptor.setType(typeDescriptor); valueDescriptor.setValue(value); addValue(name, valueDescriptor); } }