org.codehaus.groovy.classgen.asm

## Class MopWriter

- java.lang.Object
- - org.codehaus.groovy.classgen.asm.MopWriter

Direct Known Subclasses:
  StaticCompilationMopWriter

    public class MopWriter
    extends java.lang.Object

### Nested Class Summary

Nested Classes
`static interface` `MopWriter.Factory`

### Field Summary

Fields
`static MopWriter.Factory` `FACTORY`

### Constructor Summary

Constructors
Constructor and Description
`MopWriter(WriterController wc)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `createMopMethods()`
`static boolean` `equalParameterTypes(Parameter[] p1, Parameter[] p2)`
`protected void` `generateMopCalls(java.util.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 java.lang.String` `getMopMethodName(MethodNode method, boolean useThis)` creates a MOP method name from a method
`static boolean` `isMopMethod(java.lang.String methodName)` method to determine if a method is a MOP method.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 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 java.lang.String getMopMethodName(MethodNode method,
                                                    boolean useThis)

creates a MOP method name from a method

Parameters:
  `method` - the method to be called by the mop method
  `useThis` - if true, then it is a call on "this", "super" else
Returns:
  the mop method name

#### isMopMethod

    public static boolean isMopMethod(java.lang.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(java.util.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 for
  `useThis` - true if "this" should be used for the naming

#### equalParameterTypes

    public static boolean equalParameterTypes(Parameter[] p1,
                                              Parameter[] p2)