org.codehaus.groovy.transform
Class CategoryASTTransformation

java.lang.Object
  extended by org.codehaus.groovy.transform.CategoryASTTransformation
All Implemented Interfaces:
ASTTransformation, org.objectweb.asm.Opcodes

public class CategoryASTTransformation
extends java.lang.Object
implements ASTTransformation, org.objectweb.asm.Opcodes

Handles generation of code for the @Category annotation - all non-static methods converted to static ones with additional parameter 'self'

Author:
Alex Tkachman

Field Summary
private static VariableExpression THIS_EXPRESSION
           
 
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
CategoryASTTransformation()
           
 
Method Summary
private  ClassNode getTargetClass(SourceUnit source, AnnotationNode annotation)
           
 void visit(ASTNode[] nodes, SourceUnit source)
          Property invocations done on 'this' reference are transformed so that the invocations at runtime are done on the additional parameter 'self'
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

THIS_EXPRESSION

private static final VariableExpression THIS_EXPRESSION
Constructor Detail

CategoryASTTransformation

public CategoryASTTransformation()
Method Detail

visit

public void visit(ASTNode[] nodes,
                  SourceUnit source)
Property invocations done on 'this' reference are transformed so that the invocations at runtime are done on the additional parameter 'self'

Specified by:
visit in interface ASTTransformation
Parameters:
nodes - The ASTnodes when the call was triggered
source - The source unit being compiled

getTargetClass

private ClassNode getTargetClass(SourceUnit source,
                                 AnnotationNode annotation)


Copyright © ${year} The Codehaus. All Rights Reserved.