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