public class FieldMeta extends Object implements Opcodes, EnhanceConstants
This can then generate the appropriate byte code for this field.
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8AVAJE_TRANSACTIONAL_ANNOTATION, C_BEANCOLLECTION, C_ENHANCEDTRANSACTIONAL, C_ENTITYBEAN, C_GROOVYOBJECT, C_INTERCEPT, C_PERSISTBATCH, C_SCALAOBJECT, C_TXISOLATION, C_TXSCOPE, C_TXTYPE, DOCSTORE_ANNOTATION, EBEAN_MODEL, EBEAN_PREFIX, EMBEDDABLE_ANNOTATION, ENTITY_ANNOTATION, IDENTITY_FIELD, INTERCEPT_FIELD, JAVAX_PERSISTENCE, L_EMBEDDEDCOLUMNS, L_HELPSCOPETRANS, L_INTERCEPT, L_SCOPETRANS, MAPPEDSUPERCLASS_ANNOTATION| Constructor and Description |
|---|
FieldMeta(ClassMeta classMeta,
String name,
String desc,
String fieldClass)
Construct based on field name and desc from reading byte code.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addAnnotationDesc(String desc)
Add a field annotation.
|
void |
addGetSetMethods(ClassVisitor cv,
ClassMeta classMeta)
Add get and set methods for field access/interception.
|
void |
appendCompare(MethodVisitor mv,
ClassMeta classMeta)
Append compare instructions if its a long, float or double.
|
void |
appendGetPrimitiveIdValue(MethodVisitor mv,
ClassMeta classMeta)
Append byte code to return the Id value (for primitives).
|
void |
appendSwitchGet(MethodVisitor mv,
ClassMeta classMeta,
boolean intercept)
As part of the switch statement to read the fields generate the get code.
|
void |
appendSwitchSet(MethodVisitor mv,
ClassMeta classMeta,
boolean intercept) |
void |
appendValueOf(MethodVisitor mv)
Append code to get the Object value of a primitive.
|
String |
getDesc()
Return the field bytecode type description.
|
String |
getFieldName()
Return the field name.
|
String |
getName()
Return the field name.
|
boolean |
isEmbedded()
Return true if this is an Embedded field.
|
boolean |
isId()
Return true if this is an ID field.
|
boolean |
isLocalField(ClassMeta classMeta)
Return true if the field is local to this class.
|
boolean |
isMany()
Return true if this is a OneToMany or ManyToMany field.
|
boolean |
isManyToMany() |
boolean |
isObjectArray()
Return true if this field type is an Array of Objects.
|
boolean |
isPersistent()
Return true is this is a persistent field.
|
boolean |
isPrimitiveType()
Return true if this is a primitiveType.
|
boolean |
isTransient()
Return true if this is a transient field.
|
void |
setIndexPosition(int indexPosition) |
String |
toString() |
public void setIndexPosition(int indexPosition)
public String getFieldName()
public boolean isPrimitiveType()
protected void addAnnotationDesc(String desc)
public String getName()
public String getDesc()
public boolean isObjectArray()
We can not support Object Arrays for field types.
public boolean isPersistent()
public boolean isTransient()
public boolean isId()
ID fields are used in generating equals() logic based on identity.
public boolean isMany()
public boolean isManyToMany()
public boolean isEmbedded()
public boolean isLocalField(ClassMeta classMeta)
public void appendGetPrimitiveIdValue(MethodVisitor mv, ClassMeta classMeta)
public void appendCompare(MethodVisitor mv, ClassMeta classMeta)
public void appendValueOf(MethodVisitor mv)
This becomes a Integer.valueOf(someInt); or similar.
public void appendSwitchGet(MethodVisitor mv, ClassMeta classMeta, boolean intercept)
public void appendSwitchSet(MethodVisitor mv, ClassMeta classMeta, boolean intercept)
public void addGetSetMethods(ClassVisitor cv, ClassMeta classMeta)
Copyright © 2016. All rights reserved.