MopWriter (groovy 2.4.14 API)
Date: 2018-02-24

Package: org.codehaus.groovy.classgen.asm

## [Java] Class MopWriter

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

- - ### Nested Class Summary

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

  - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static MopWriter.Factory` | `FACTORY` |

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `def` | `MopWriter(WriterController wc)`
    `` | `void` | `createMopMethods()`
    `` | `static boolean` | `equalParameterTypes(Parameter[] p1, Parameter[] p2)`
    `` | `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.
    `` | `static String` | `getMopMethodName(MethodNode method, boolean useThis)` creates a MOP method name from a method
    `` | `static boolean` | `isMopMethod(String methodName)` method to determine 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 MopWriter.Factory FACTORY

  - ### Method Detail

    - #### public def MopWriter(WriterController wc)

    - #### public void createMopMethods()

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

    - #### 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 for
        `useThis` - true if "this" should be used for the naming

    - #### 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)

      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