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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MopWriter(WriterController controller)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `createMopMethods()`
  `static boolean`
  `equalParameterTypes(Parameter[] p1, Parameter[] p2)`
  Deprecated.
  `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)`
  Determines 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 Details

  - ### FACTORY

    public static final MopWriter.Factory FACTORY

- ## Constructor Details

  - ### MopWriter

    public MopWriter(WriterController controller)

- ## Method Details

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

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

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