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`, `MetaMember`, `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

- ## Field Summary

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

  `EMPTY_ARRAY`

  ### 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 of this method.
  `String`
  `getName()`
  Returns the name of this method.
  `Class`
  `getReturnType()`
  Returns the return type for this method.
  `Object`
  `invoke(Object object, Object[] arguments)`
  Invokes this method.

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

  `checkParameters, clone, doMethodInvoke, equal, equal, getDescriptor, getMopName, getSignature, isAbstract, isCacheable, isDefault, isMethod, isSame, 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.MetaMember

  `isFinal, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isSynthetic`

- ## 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 of this method.
    Specified by:
      `getModifiers` in interface `MetaMember`
    Specified by:
      `getModifiers` in class `MetaMethod`
    Returns:
      modifiers as an int.

  - ### getName

    public String getName()
    Description copied from class: `MetaMethod`
    Returns the name of this method.
    Specified by:
      `getName` in interface `MetaMember`
    Specified by:
      `getName` in class `MetaMethod`
    Returns:
      name of this method

  - ### getReturnType

    public Class getReturnType()
    Description copied from class: `MetaMethod`
    Returns 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`
    Invokes 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)