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 wc)`

## Method Summary

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 Details

### FACTORY

public static final MopWriter.Factory FACTORY

## Constructor Details

### MopWriter

public MopWriter(WriterController wc)

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