org.codehaus.groovy.transform
Class LazyASTTransformation

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

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

Handles generation of code for the @Lazy annotation

Author:
Alex Tkachman

Field Summary
(package private) static ClassNode SOFT_REF
           
 
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
LazyASTTransformation()
           
 
Method Summary
private  void create(FieldNode fieldNode, Expression initExpr)
           
private  void createSoft(FieldNode fieldNode, Expression initExpr)
           
private  void createSoftGetter(FieldNode fieldNode, Expression initExpr, ClassNode type)
           
private  void createSoftSetter(FieldNode fieldNode, ClassNode type)
           
private  Expression getInitExpr(FieldNode fieldNode)
           
 void visit(ASTNode[] nodes, SourceUnit source)
          The call made when the compiler encounters an AST Transformation Annotation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SOFT_REF

static final ClassNode SOFT_REF
Constructor Detail

LazyASTTransformation

public LazyASTTransformation()
Method Detail

visit

public void visit(ASTNode[] nodes,
                  SourceUnit source)
Description copied from interface: ASTTransformation
The call made when the compiler encounters an AST Transformation Annotation

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

create

private void create(FieldNode fieldNode,
                    Expression initExpr)

createSoft

private void createSoft(FieldNode fieldNode,
                        Expression initExpr)

createSoftGetter

private void createSoftGetter(FieldNode fieldNode,
                              Expression initExpr,
                              ClassNode type)

createSoftSetter

private void createSoftSetter(FieldNode fieldNode,
                              ClassNode type)

getInitExpr

private Expression getInitExpr(FieldNode fieldNode)


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