|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.groovy.classgen.Verifier
public class Verifier
Verifies the AST node and adds any defaulted AST code before bytecode generation occurs.
Nested Class Summary | |
---|---|
private static interface |
Verifier.DefaultArgsAction
|
Field Summary | |
---|---|
static java.lang.String |
__TIMESTAMP
|
static java.lang.String |
__TIMESTAMP__
|
private ClassNode |
classNode
|
private MethodNode |
methodNode
|
Fields inherited from interface org.objectweb.asm.Opcodes |
---|
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, 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, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, 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, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6 |
Constructor Summary | |
---|---|
Verifier()
|
Method Summary | |
---|---|
protected void |
addClosureCode(InnerClassNode node)
|
protected void |
addCovariantMethods(ClassNode classNode)
|
private void |
addCovariantMethods(ClassNode classNode,
java.util.List declaredMethods,
java.util.Map methodsToAdd,
java.util.Map oldGenericsSpec)
|
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(java.util.List methods,
Verifier.DefaultArgsAction action)
Creates a new helper method for each combination of default parameter expressions |
protected void |
addFieldInitialization(java.util.List list,
java.util.List staticList,
FieldNode fieldNode)
|
protected void |
addInitialization(ClassNode node)
|
protected void |
addInitialization(ClassNode node,
ConstructorNode constructorNode)
|
protected void |
addTimeStamp(ClassNode node)
|
static java.lang.String |
capitalize(java.lang.String name)
Capitalizes the start of the given bean property name |
private void |
checkReturnInObjectInitializer(java.util.List init)
|
private Parameter[] |
cleanParameters(Parameter[] parameters)
|
private ClassNode |
correctToGenericsSpec(java.util.Map genericsSpec,
ClassNode type)
|
private ClassNode |
correctToGenericsSpec(java.util.Map genericsSpec,
GenericsType type)
|
private java.util.Map |
createGenericsSpec(ClassNode current,
java.util.Map oldSpec)
|
protected Statement |
createGetterBlock(PropertyNode propertyNode,
FieldNode field)
|
protected Statement |
createSetterBlock(PropertyNode propertyNode,
FieldNode field)
|
private boolean |
equalParameters(MethodNode m1,
MethodNode m2,
java.util.Map genericsSpec)
|
protected Statement |
filterStatement(Statement statement)
|
protected java.util.List |
filterStatements(java.util.List list)
Filters the given statements |
ClassNode |
getClassNode()
|
private MethodNode |
getCovariantImplementation(MethodNode oldMethod,
MethodNode overridingMethod,
java.util.Map genericsSpec)
|
private ConstructorCallExpression |
getFirstIfSpecialConstructorCall(Statement code)
|
MethodNode |
getMethodNode()
|
static long |
getTimestamp(java.lang.Class clazz)
|
private boolean |
methodNeedsReplacement(MethodNode m)
|
private void |
storeMissingCovariantMethods(ClassNode current,
MethodNode method,
java.util.Map methodsToAdd,
java.util.Map genericsSpec)
|
void |
visitClass(ClassNode node)
add code to implement GroovyObject |
void |
visitConstructor(ConstructorNode node)
|
void |
visitField(FieldNode node)
|
void |
visitGenericType(GenericsType genericsType)
|
void |
visitMethod(MethodNode node)
|
void |
visitProperty(PropertyNode node)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String __TIMESTAMP
public static final java.lang.String __TIMESTAMP__
private ClassNode classNode
private MethodNode methodNode
Constructor Detail |
---|
public Verifier()
Method Detail |
---|
public ClassNode getClassNode()
public MethodNode getMethodNode()
public void visitClass(ClassNode node)
visitClass
in interface GroovyClassVisitor
node
- protected void addTimeStamp(ClassNode node)
private void checkReturnInObjectInitializer(java.util.List init)
public void visitConstructor(ConstructorNode node)
visitConstructor
in interface GroovyClassVisitor
public void visitMethod(MethodNode node)
visitMethod
in interface GroovyClassVisitor
public void visitField(FieldNode node)
visitField
in interface GroovyClassVisitor
private boolean methodNeedsReplacement(MethodNode m)
public void visitProperty(PropertyNode node)
visitProperty
in interface GroovyClassVisitor
protected void addDefaultParameterMethods(ClassNode node)
protected void addDefaultParameterConstructors(ClassNode node)
protected void addDefaultParameters(java.util.List methods, Verifier.DefaultArgsAction action)
protected void addClosureCode(InnerClassNode node)
protected void addInitialization(ClassNode node)
protected void addInitialization(ClassNode node, ConstructorNode constructorNode)
private ConstructorCallExpression getFirstIfSpecialConstructorCall(Statement code)
protected void addFieldInitialization(java.util.List list, java.util.List staticList, FieldNode fieldNode)
public static java.lang.String capitalize(java.lang.String name)
protected Statement createGetterBlock(PropertyNode propertyNode, FieldNode field)
protected Statement createSetterBlock(PropertyNode propertyNode, FieldNode field)
protected java.util.List filterStatements(java.util.List list)
protected Statement filterStatement(Statement statement)
public void visitGenericType(GenericsType genericsType)
public static long getTimestamp(java.lang.Class clazz)
protected void addCovariantMethods(ClassNode classNode)
private void addCovariantMethods(ClassNode classNode, java.util.List declaredMethods, java.util.Map methodsToAdd, java.util.Map oldGenericsSpec)
private MethodNode getCovariantImplementation(MethodNode oldMethod, MethodNode overridingMethod, java.util.Map genericsSpec)
private Parameter[] cleanParameters(Parameter[] parameters)
private void storeMissingCovariantMethods(ClassNode current, MethodNode method, java.util.Map methodsToAdd, java.util.Map genericsSpec)
private ClassNode correctToGenericsSpec(java.util.Map genericsSpec, GenericsType type)
private ClassNode correctToGenericsSpec(java.util.Map genericsSpec, ClassNode type)
private boolean equalParameters(MethodNode m1, MethodNode m2, java.util.Map genericsSpec)
private java.util.Map createGenericsSpec(ClassNode current, java.util.Map oldSpec)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |