Package org.codehaus.groovy.runtime.metaclass

# Class ClosureStaticMetaMethod

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

All Implemented Interfaces:
  `ClosureInvokingMethod`, `MetaMember`, `Cloneable`

public class ClosureStaticMetaMethod extends MetaMethod implements ClosureInvokingMethod
This class represents a MetaMethod that is a closure that pretends to be a static method. It is used by ExpandoMetaClass to allow addition of static methods defined as closures

Since:
  01.1

- ## Field Summary

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

  `EMPTY_ARRAY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClosureStaticMetaMethod(String name, Class declaringClass, Closure c)`
  `ClosureStaticMetaMethod(String name, Class declaringClass, Closure c, Class[] paramTypes)`
  Constructs a new ClosureStaticMetaMethod with the specified parameter types.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Closure`
  `getClosure()`
  Retrieves the closure that is invoked by this MetaMethod
  `CachedClass`
  `getDeclaringClass()`
  Returns the cached class that declares this meta method.
  `int`
  `getModifiers()`
  Returns the modifiers for this meta method (PUBLIC | STATIC).
  `String`
  `getName()`
  Returns the name of this static meta method.
  `Class`
  `getReturnType()`
  Returns the return type of this method.
  `Object`
  `invoke(Object object, Object[] arguments)`
  Invokes the static closure method with the given arguments.

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

  - ### ClosureStaticMetaMethod

    public ClosureStaticMetaMethod(String name, Class declaringClass, Closure c)
    Parameters:
      `name` - The name of the MetaMethod
      `declaringClass` - The class which declared the MetaMethod
      `c` - The closure that this ClosureMetaMethod will invoke when called

  - ### ClosureStaticMetaMethod

    public ClosureStaticMetaMethod(String name, Class declaringClass, Closure c, Class[] paramTypes)
    Constructs a new ClosureStaticMetaMethod with the specified parameter types.
    Parameters:
      `name` - The name of the MetaMethod
      `declaringClass` - The class which declared the MetaMethod
      `c` - The closure that this ClosureStaticMetaMethod will invoke when called
      `paramTypes` - The parameter types for the closure method

- ## Method Details

  - ### invoke

    public Object invoke(Object object, Object[] arguments)
    Invokes the static closure method with the given arguments. The closure's delegate is set to the object parameter.
    Specified by:
      `invoke` in class `MetaMethod`
    Parameters:
      `object` - the object to set as the closure's delegate
      `arguments` - the arguments to pass to the closure
    Returns:
      the result of the closure invocation

  - ### getModifiers

    public int getModifiers()
    Returns the modifiers for this meta method (PUBLIC | STATIC).
    Specified by:
      `getModifiers` in interface `MetaMember`
    Specified by:
      `getModifiers` in class `MetaMethod`
    Returns:
      the modifiers indicating this is a public static method

  - ### getName

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

  - ### getReturnType

    public Class getReturnType()
    Returns the return type of this method.
    Specified by:
      `getReturnType` in class `MetaMethod`
    Returns:
      Object.class, as closures return Object

  - ### getDeclaringClass

    public CachedClass getDeclaringClass()
    Returns the cached class that declares this meta method.
    Specified by:
      `getDeclaringClass` in class `MetaMethod`
    Returns:
      the declaring class

  - ### getClosure

    public Closure getClosure()
    Retrieves the closure that is invoked by this MetaMethod
    Specified by:
      `getClosure` in interface `ClosureInvokingMethod`
    Returns:
      The closure