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 interface` | `MopWriter.Factory` |

  - ### Field Summary

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

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MopWriter​(WriterController wc)` |

  - ### Method Summary

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

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

    - #### equalParameterTypes

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