Package: org.codehaus.groovy.classgen.asm

## [Java] Class MopWriter

- org.codehaus.groovy.classgen.asm.MopWriter

-     public class MopWriter
      extends Object

- - ### Nested Class Summary

    Nested classes
    Modifiers | Name | Description
    --- | --- | ---
    `interface` | `MopWriter.Factory` |

  - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static Factory` | `FACTORY` |
    `protected WriterController` | `controller` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `MopWriter(WriterController controller)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `createMopMethods()`
    `` | `public static boolean` | `equalParameterTypes(Parameter[] p1, Parameter[] p2)`
    `` | `protected void` | `generateMopCalls(LinkedList<MethodNode> methods, boolean useThis)` Generates a Meta Object Protocol method that is used to call a non-public method or to make a call to super.
    `` | `public static String` | `getMopMethodName(MethodNode method, boolean useThis)` Creates a MOP method name from a method.
    `` | `public static boolean` | `isMopMethod(String methodName)` Determines if a method is a MOP method.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final Factory FACTORY

    - #### protected final WriterController controller

  - ### Constructor Detail

    - #### public MopWriter(WriterController controller)

  - ### Method Detail

    - #### public void createMopMethods()

    - #### @Deprecated
      public static boolean equalParameterTypes(Parameter[] p1, Parameter[] p2)

    - #### protected void generateMopCalls(LinkedList<MethodNode> methods, 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:
        `methods` - list of methods a MOP call method should be generated for
        `useThis` - indicates if "this" should be used for the name and call

    - #### 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 method
        `useThis` - if true, then it is a call on "this", "super" else
      Returns:
        the mop method name

    - #### public static boolean isMopMethod(String methodName)

      Determines 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