public class ClosureWriter extends Object
Modifier and Type | Class and Description |
---|---|
protected static class |
ClosureWriter.CorrectAccessedVariableVisitor |
protected static interface |
ClosureWriter.UseExistingReference |
Modifier and Type | Field and Description |
---|---|
static String |
OUTER_INSTANCE |
static String |
THIS_OBJECT |
Constructor and Description |
---|
ClosureWriter(WriterController wc) |
Modifier and Type | Method and 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) |
public static final String OUTER_INSTANCE
public static final String THIS_OBJECT
public ClosureWriter(WriterController wc)
public void writeClosure(ClosureExpression expression)
public static void loadReference(String name, WriterController controller)
public ClassNode getOrAddClosureClass(ClosureExpression expression, int mods)
protected ClassNode createClosureClass(ClosureExpression expression, int mods)
protected ConstructorNode addConstructor(ClosureExpression expression, Parameter[] localVariableParams, InnerClassNode answer, BlockStatement block)
protected void addFieldsAndGettersForLocalVariables(InnerClassNode answer, Parameter[] localVariableParams)
protected BlockStatement createBlockStatementForConstructor(ClosureExpression expression, ClassNode outerClass, ClassNode thisClassNode)
protected static void removeInitialValues(Parameter[] params)
public boolean addGeneratedClosureConstructorCall(ConstructorCallExpression call)
protected Parameter[] getClosureSharedVariables(ClosureExpression ce)