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, java.lang.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 org.codehaus.groovy.reflection.ParameterTypes

      `isVargsMethod, nativeParamTypes, parameterTypes`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ClosureMetaMethod` | `copy(ClosureMetaMethod closureMethod)`
    `static java.util.List<MetaMethod>` | `createMethodList(java.lang.String name, java.lang.Class declaringClass, Closure closure)`
    `Closure` | `getClosure()` Retrieves the closure that is invoked by this MetaMethod
    `CachedClass` | `getDeclaringClass()`
    `CachedMethod` | `getDoCall()`
    `int` | `getModifiers()`
    `java.lang.String` | `getName()` The method name
    `java.lang.Class` | `getReturnType()`
    `java.lang.Object` | `invoke(java.lang.Object object, java.lang.Object[] arguments)`

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

    - #### ClosureMetaMethod

          public ClosureMetaMethod(java.lang.String name,
                           Closure c,
                           CachedMethod doCall)

    - #### ClosureMetaMethod

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

  - ### Method Detail

    - #### getModifiers

          public int getModifiers()

      Specified by:
        `getModifiers` in class `MetaMethod`

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `ClosureInvokingMethod`
      The method name
      Specified by:
        `getName` in interface `ClosureInvokingMethod`
      Specified by:
        `getName` in class `MetaMethod`
      Returns:
        The method name

    - #### getReturnType

          public java.lang.Class getReturnType()

      Specified by:
        `getReturnType` in class `MetaMethod`

    - #### getDeclaringClass

          public CachedClass getDeclaringClass()

      Specified by:
        `getDeclaringClass` in class `MetaMethod`

    - #### invoke

          public java.lang.Object invoke(java.lang.Object object,
                                java.lang.Object[] arguments)

      Specified by:
        `invoke` in class `MetaMethod`

    - #### 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 java.util.List<MetaMethod> createMethodList(java.lang.String name,
                                                    java.lang.Class declaringClass,
                                                    Closure closure)

    - #### getDoCall

          public CachedMethod getDoCall()

    - #### copy

          public static ClosureMetaMethod copy(ClosureMetaMethod closureMethod)