@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 visitFieldInsn( final int opcode, final String owner, final String name, final String desc) { String fieldSignature = SignatureHelper.getFieldSignature(name, desc); TypeCache.CachedType targetType = visitorHelper.resolveType(SignatureHelper.getObjectType(owner), containingType); FieldDescriptor fieldDescriptor = visitorHelper.getFieldDescriptor(targetType, fieldSignature); switch (opcode) { case Opcodes.GETFIELD: case Opcodes.GETSTATIC: visitorHelper.addReads(methodDescriptor, line, fieldDescriptor); break; case Opcodes.PUTFIELD: case Opcodes.PUTSTATIC: visitorHelper.addWrites(methodDescriptor, line, fieldDescriptor); break; } }