Package org.codehaus.groovy.classgen.asm
Class ClosureWriter
- java.lang.Object
-
- org.codehaus.groovy.classgen.asm.ClosureWriter
-
- Direct Known Subclasses:
LambdaWriter
,StaticTypesClosureWriter
public class ClosureWriter extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ClosureWriter.CorrectAccessedVariableVisitor
protected static interface
ClosureWriter.UseExistingReference
-
Field Summary
Fields Modifier and Type Field Description static String
OUTER_INSTANCE
static String
THIS_OBJECT
-
Constructor Summary
Constructors Constructor Description ClosureWriter(WriterController wc)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ConstructorNode
addConstructor(ClosureExpression expression, Parameter[] localVariableParams, InnerClassNode answer, BlockStatement block)
protected void
addFieldsAndGettersForLocalVariables(InnerClassNode answer, Parameter[] localVariableParams)
boolean
addGeneratedClosureConstructorCall(ConstructorCallExpression call)
protected BlockStatement
createBlockStatementForConstructor(ClosureExpression expression, ClassNode outerClass, ClassNode thisClassNode)
protected ClassNode
createClosureClass(ClosureExpression expression, int mods)
protected Parameter[]
getClosureSharedVariables(ClosureExpression ce)
ClassNode
getOrAddClosureClass(ClosureExpression expression, int mods)
static void
loadReference(String name, WriterController controller)
protected static void
removeInitialValues(Parameter[] params)
void
writeClosure(ClosureExpression expression)
-
-
-
Field Detail
-
OUTER_INSTANCE
public static final String OUTER_INSTANCE
- See Also:
- Constant Field Values
-
THIS_OBJECT
public static final String THIS_OBJECT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ClosureWriter
public ClosureWriter(WriterController wc)
-
-
Method Detail
-
writeClosure
public void writeClosure(ClosureExpression expression)
-
loadReference
public static void loadReference(String name, WriterController controller)
-
getOrAddClosureClass
public ClassNode getOrAddClosureClass(ClosureExpression expression, int mods)
-
createClosureClass
protected ClassNode createClosureClass(ClosureExpression expression, int mods)
-
addConstructor
protected ConstructorNode addConstructor(ClosureExpression expression, Parameter[] localVariableParams, InnerClassNode answer, BlockStatement block)
-
addFieldsAndGettersForLocalVariables
protected void addFieldsAndGettersForLocalVariables(InnerClassNode answer, Parameter[] localVariableParams)
-
createBlockStatementForConstructor
protected BlockStatement createBlockStatementForConstructor(ClosureExpression expression, ClassNode outerClass, ClassNode thisClassNode)
-
removeInitialValues
protected static void removeInitialValues(Parameter[] params)
-
addGeneratedClosureConstructorCall
public boolean addGeneratedClosureConstructorCall(ConstructorCallExpression call)
-
getClosureSharedVariables
protected Parameter[] getClosureSharedVariables(ClosureExpression ce)
-
-