Package org.codehaus.groovy.classgen.asm
Class MopWriter
- java.lang.Object
 - 
- org.codehaus.groovy.classgen.asm.MopWriter
 
 
- 
- Direct Known Subclasses:
 StaticCompilationMopWriter
public class MopWriter extends Object
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceMopWriter.Factory 
- 
Field Summary
Fields Modifier and Type Field Description static MopWriter.FactoryFACTORY 
- 
Constructor Summary
Constructors Constructor Description MopWriter(WriterController wc) 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateMopMethods()static booleanequalParameterTypes(Parameter[] p1, Parameter[] p2)protected voidgenerateMopCalls(LinkedList<MethodNode> mopCalls, boolean useThis)generates a Meta Object Protocol method, that is used to call a non public method, or to make a call to super.static StringgetMopMethodName(MethodNode method, boolean useThis)creates a MOP method name from a methodstatic booleanisMopMethod(String methodName)method to determine if a method is a MOP method. 
 - 
 
- 
- 
Field Detail
- 
FACTORY
public static final MopWriter.Factory FACTORY
 
 - 
 
- 
Constructor Detail
- 
MopWriter
public MopWriter(WriterController wc)
 
 - 
 
- 
Method Detail
- 
createMopMethods
public void createMopMethods()
 
- 
getMopMethodName
public static String getMopMethodName(MethodNode method, boolean useThis)
creates a MOP method name from a method- Parameters:
 method- the method to be called by the mop methoduseThis- if true, then it is a call on "this", "super" else- Returns:
 - the mop method name
 
 
- 
isMopMethod
public static boolean isMopMethod(String methodName)
method to determine if a method is a MOP method. This is done by the method name. If the name starts with "this$" or "super$" but does not contain "$dist$", then it is an MOP method- Parameters:
 methodName- name of the method to test- Returns:
 - true if the method is a MOP method
 
 
- 
generateMopCalls
protected void generateMopCalls(LinkedList<MethodNode> mopCalls, boolean useThis)
generates a Meta Object Protocol method, that is used to call a non public method, or to make a call to super.- Parameters:
 mopCalls- list of methods a mop call method should be generated foruseThis- true if "this" should be used for the naming
 
 - 
 
 -