MopWriter (Groovy 2.4.16)
Date: 2018-12-09

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
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `MopWriter.Factory`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static MopWriter.Factory` | `FACTORY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MopWriter(WriterController wc)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)