Package org.codehaus.groovy.runtime.metaclass

# Class ClosureMetaMethod

java.lang.Object
org.codehaus.groovy.reflection.ParameterTypes
groovy.lang.MetaMethod
org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod

All Implemented Interfaces:
  `ClosureInvokingMethod`, `Cloneable`

public class ClosureMetaMethod extends MetaMethod implements ClosureInvokingMethod
A MetaMethod that accepts a closure in the constructor which is invoked when the MetaMethod is called. The delegate of the closure is set to the instance that the MetaMethod is invoked on when called.

Since:
  1.5
Author:
  Graeme Rocher

## Field Summary

### Fields inherited from class org.codehaus.groovy.reflection.ParameterTypes

`isVargsMethod, nativeParamTypes, parameterTypes`

## Constructor Summary

Constructors
Constructor
Description
`ClosureMetaMethod(String name, Closure c, CachedMethod doCall)`
`ClosureMetaMethod(String name, Class declaringClass, Closure c, CachedMethod doCall)`

## Method Summary

Modifier and Type
Method
Description
`static ClosureMetaMethod`
`copy(ClosureMetaMethod closureMethod)`
`static List<MetaMethod>`
`createMethodList(String name, Class declaringClass, Closure closure)`
`Closure`
`getClosure()`
Retrieves the closure that is invoked by this MetaMethod
`CachedClass`
`getDeclaringClass()`
Gets the class where this method is declared
`CachedMethod`
`getDoCall()`
`int`
`getModifiers()`
Returns the modifiers for this method
`String`
`getName()`
Returns the name of the method represented by this class
`Class`
`getReturnType()`
Access the return type for this method
`Object`
`invoke(Object object, Object[] arguments)`
Invoke this method

### Methods inherited from class groovy.lang.MetaMethod

`checkParameters, clone, doMethodInvoke, equal, equal, getDescriptor, getMopName, getSignature, isAbstract, isCacheable, isMethod, isPrivate, isProtected, isPublic, isSame, isStatic, processDoMethodInvokeException, toString`

### Methods inherited from class org.codehaus.groovy.reflection.ParameterTypes

`coerceArgumentsToClasses, correctArguments, getNativeParameterTypes, getParameterTypes, getPT, isValidExactMethod, isValidExactMethod, isValidMethod, isValidMethod, isVargsMethod, isVargsMethod, setParametersTypes`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface groovy.lang.ClosureInvokingMethod

`isStatic`

## Constructor Details

### ClosureMetaMethod

public ClosureMetaMethod(String name, Closure c, CachedMethod doCall)

### ClosureMetaMethod

public ClosureMetaMethod(String name, Class declaringClass, Closure c, CachedMethod doCall)

## Method Details

### getModifiers

public int getModifiers()
Description copied from class: `MetaMethod`
Returns the modifiers for this method

Specified by:
  `getModifiers` in class `MetaMethod`
Returns:
  modifiers as an int.

### getName

public String getName()
Description copied from class: `MetaMethod`
Returns the name of the method represented by this class

Specified by:
  `getName` in interface `ClosureInvokingMethod`
Specified by:
  `getName` in class `MetaMethod`
Returns:
  name of this method

### getReturnType

public Class getReturnType()
Description copied from class: `MetaMethod`
Access the return type for this method

Specified by:
  `getReturnType` in class `MetaMethod`
Returns:
  the return type of this method

### getDeclaringClass

public CachedClass getDeclaringClass()
Description copied from class: `MetaMethod`
Gets the class where this method is declared

Specified by:
  `getDeclaringClass` in class `MetaMethod`
Returns:
  class of this method

### invoke

public Object invoke(Object object, Object[] arguments)
Description copied from class: `MetaMethod`
Invoke this method

Specified by:
  `invoke` in class `MetaMethod`
Parameters:
  `object` - The object this method should be invoked on
  `arguments` - The arguments for the method if applicable
Returns:
  The return value of the invocation

### getClosure

public Closure getClosure()
Retrieves the closure that is invoked by this MetaMethod

Specified by:
  `getClosure` in interface `ClosureInvokingMethod`
Returns:
  The closure

### createMethodList

public static List<MetaMethod> createMethodList(String name, Class declaringClass, Closure closure)

### getDoCall

public CachedMethod getDoCall()

### copy

public static ClosureMetaMethod copy(ClosureMetaMethod closureMethod)