public class Verifier extends Object implements GroovyClassVisitor, org.objectweb.asm.Opcodes
Modifier and Type | Class and Description |
---|---|
static interface |
Verifier.DefaultArgsAction |
Modifier and Type | Field and Description |
---|---|
static String |
__TIMESTAMP |
static String |
__TIMESTAMP__ |
static String |
INITIAL_EXPRESSION |
static String |
STATIC_METACLASS_BOOL |
static String |
SWAP_INIT |
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_8
Constructor and Description |
---|
Verifier() |
Modifier and Type | Method and Description |
---|---|
protected void |
addClosureCode(InnerClassNode node) |
protected void |
addConstructor(Parameter[] newParams,
ConstructorNode ctor,
Statement code,
ClassNode node) |
protected void |
addCovariantMethods(ClassNode classNode) |
protected void |
addDefaultConstructor(ClassNode node) |
protected void |
addDefaultParameterConstructors(ClassNode node) |
protected void |
addDefaultParameterMethods(ClassNode node)
Creates a new helper method for each combination of default parameter expressions
|
protected void |
addDefaultParameters(List methods,
Verifier.DefaultArgsAction action)
Creates a new helper method for each combination of default parameter expressions
|
protected void |
addDefaultParameters(Verifier.DefaultArgsAction action,
MethodNode method) |
protected void |
addFieldInitialization(List list,
List staticList,
FieldNode fieldNode,
boolean isEnumClassNode,
List initStmtsAfterEnumValuesInit,
Set explicitStaticPropsInEnum) |
protected void |
addGroovyObjectInterfaceAndMethods(ClassNode node,
String classInternalName) |
protected void |
addInitialization(ClassNode node) |
protected void |
addInitialization(ClassNode node,
ConstructorNode constructorNode) |
protected void |
addMethod(ClassNode node,
boolean shouldBeSynthetic,
String name,
int modifiers,
ClassNode returnType,
Parameter[] parameters,
ClassNode[] exceptions,
Statement code)
Helper method to add a new method to a ClassNode.
|
protected void |
addPropertyMethod(MethodNode method) |
protected void |
addReturnIfNeeded(MethodNode node) |
protected void |
addTimeStamp(ClassNode node) |
static String |
capitalize(String name)
Capitalizes the start of the given bean property name
|
protected Statement |
createGetterBlock(PropertyNode propertyNode,
FieldNode field) |
protected Statement |
createSetterBlock(PropertyNode propertyNode,
FieldNode field) |
ClassNode |
getClassNode() |
MethodNode |
getMethodNode() |
static long |
getTimestamp(Class clazz) |
static ConstantExpression |
transformToPrimitiveConstantIfPossible(ConstantExpression constantExpression)
When constant expressions are created, the value is always wrapped to a non primitive type.
|
void |
visitClass(ClassNode node)
add code to implement GroovyObject
|
void |
visitConstructor(ConstructorNode node)
Visit a ConstructorNode.
|
void |
visitField(FieldNode node)
Visit a FieldNode.
|
void |
visitGenericType(GenericsType genericsType) |
void |
visitMethod(MethodNode node)
Visit a MethodNode.
|
void |
visitProperty(PropertyNode node)
Visit a PropertyNode.
|
public static final String STATIC_METACLASS_BOOL
public static final String SWAP_INIT
public static final String INITIAL_EXPRESSION
public static final String __TIMESTAMP
public static final String __TIMESTAMP__
public ClassNode getClassNode()
public MethodNode getMethodNode()
public void visitClass(ClassNode node)
visitClass
in interface GroovyClassVisitor
node
- protected void addDefaultConstructor(ClassNode node)
protected void addGroovyObjectInterfaceAndMethods(ClassNode node, String classInternalName)
protected void addMethod(ClassNode node, boolean shouldBeSynthetic, String name, int modifiers, ClassNode returnType, Parameter[] parameters, ClassNode[] exceptions, Statement code)
protected void addTimeStamp(ClassNode node)
public void visitConstructor(ConstructorNode node)
GroovyClassVisitor
visitConstructor
in interface GroovyClassVisitor
public void visitMethod(MethodNode node)
GroovyClassVisitor
visitMethod
in interface GroovyClassVisitor
protected void addReturnIfNeeded(MethodNode node)
public void visitField(FieldNode node)
GroovyClassVisitor
visitField
in interface GroovyClassVisitor
public void visitProperty(PropertyNode node)
GroovyClassVisitor
visitProperty
in interface GroovyClassVisitor
protected void addPropertyMethod(MethodNode method)
protected void addDefaultParameterMethods(ClassNode node)
protected void addDefaultParameterConstructors(ClassNode node)
protected void addConstructor(Parameter[] newParams, ConstructorNode ctor, Statement code, ClassNode node)
protected void addDefaultParameters(List methods, Verifier.DefaultArgsAction action)
protected void addDefaultParameters(Verifier.DefaultArgsAction action, MethodNode method)
protected void addClosureCode(InnerClassNode node)
protected void addInitialization(ClassNode node)
protected void addInitialization(ClassNode node, ConstructorNode constructorNode)
protected void addFieldInitialization(List list, List staticList, FieldNode fieldNode, boolean isEnumClassNode, List initStmtsAfterEnumValuesInit, Set explicitStaticPropsInEnum)
public static String capitalize(String name)
protected Statement createGetterBlock(PropertyNode propertyNode, FieldNode field)
protected Statement createSetterBlock(PropertyNode propertyNode, FieldNode field)
public void visitGenericType(GenericsType genericsType)
public static long getTimestamp(Class clazz)
protected void addCovariantMethods(ClassNode classNode)
public static ConstantExpression transformToPrimitiveConstantIfPossible(ConstantExpression constantExpression)
constantExpression
- a constant expression