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 classClosureWriter.CorrectAccessedVariableVisitorprotected static interfaceClosureWriter.UseExistingReference -
Field Summary
Fields Modifier and Type Field Description protected WriterControllercontrollerstatic StringOUTER_INSTANCEstatic StringTHIS_OBJECT -
Constructor Summary
Constructors Constructor Description ClosureWriter(WriterController controller) -
Method Summary
Modifier and Type Method Description protected ConstructorNodeaddConstructor(ClosureExpression expression, Parameter[] localVariableParams, InnerClassNode answer, BlockStatement block)protected voidaddFieldsAndGettersForLocalVariables(InnerClassNode answer, Parameter[] localVariableParams)booleanaddGeneratedClosureConstructorCall(ConstructorCallExpression call)protected BlockStatementcreateBlockStatementForConstructor(ClosureExpression expression, ClassNode outerClass, ClassNode thisClassNode)protected ClassNodecreateClosureClass(ClosureExpression expression, int modifiers)protected Parameter[]getClosureSharedVariables(ClosureExpression ce)ClassNodegetOrAddClosureClass(ClosureExpression expression, int modifiers)static voidloadReference(String name, WriterController controller)protected voidloadThis()protected static voidremoveInitialValues(Parameter[] params)voidwriteClosure(ClosureExpression expression)
-
Field Details
-
OUTER_INSTANCE
- See Also:
- Constant Field Values
-
THIS_OBJECT
- See Also:
- Constant Field Values
-
controller
-
-
Constructor Details
-
ClosureWriter
-
-
Method Details
-
writeClosure
-
loadReference
-
getOrAddClosureClass
-
createClosureClass
-
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
-
addGeneratedClosureConstructorCall
-
loadThis
protected void loadThis()
-