Save This Page
Home » Groovy-1.7.0 » org.codehaus » groovy » runtime » metaclass » [javadoc | source]
org.codehaus.groovy.runtime.metaclass
public final class: ClosureMetaClass [javadoc | source]
java.lang.Object
   MetaClassImpl
      org.codehaus.groovy.runtime.metaclass.ClosureMetaClass
A meta class for closures generated by the Groovy compiler. These classes have special characteristics this MetaClass uses. One of these is that a generated Closure has only additional doCall methods, all other methods are in the Closure class as well. To use this fact this MetaClass uses a MetaClass for Closure as static field And delegates calls to this MetaClass if needed. This allows a lean implementation for this MetaClass. Multiple generated closures will then use the same MetaClass for Closure. For static dispatching this class uses the MetaClass of Class, again all instances of this class will share that MetaClass. The Class MetaClass is initialized lazy, because most operations do not need this MetaClass.

The Closure and Class MetaClasses are not replaceable.

This MetaClass is for internal usage only!

Constructor:
 public ClosureMetaClass(MetaClassRegistry registry,
    Class theClass) 
Method from org.codehaus.groovy.runtime.metaclass.ClosureMetaClass Summary:
addMetaBeanProperty,   addMetaMethod,   addNewInstanceMethod,   addNewStaticMethod,   createPogoCallCurrentSite,   createPogoCallSite,   createPojoCallSite,   getAttribute,   getMetaMethods,   getMetaProperty,   getMethodWithoutCaching,   getMethods,   getProperties,   getProperty,   getStaticMetaMethod,   getStaticMetaMethod,   initialize,   invokeMethod,   invokeStaticMethod,   isInitialized,   pickMethod,   retrieveConstructor,   retrieveStaticMethod,   setAttribute,   setProperties,   setProperty
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.codehaus.groovy.runtime.metaclass.ClosureMetaClass Detail:
 public  void addMetaBeanProperty(MetaBeanProperty mp) 
 public  void addMetaMethod(MetaMethod method) 
 public  void addNewInstanceMethod(Method method) 
 public  void addNewStaticMethod(Method method) 
 public CallSite createPogoCallCurrentSite(CallSite site,
    Class sender,
    Object[] args) 
 public CallSite createPogoCallSite(CallSite site,
    Object[] args) 
 public CallSite createPojoCallSite(CallSite site,
    Object receiver,
    Object[] args) 
 public Object getAttribute(Class sender,
    Object object,
    String attribute,
    boolean useSuper,
    boolean fromInsideClass) 
 public List<MetaMethod> getMetaMethods() 
 public MetaProperty getMetaProperty(String name) 
 public MetaMethod getMethodWithoutCaching(int index,
    Class sender,
    String methodName,
    Class[] arguments,
    boolean isCallToSuper) 
 public List<MetaMethod> getMethods() 
 public List<MetaProperty> getProperties() 
 public Object getProperty(Class sender,
    Object object,
    String name,
    boolean useSuper,
    boolean fromInsideClass) 
 public MetaMethod getStaticMetaMethod(String name,
    Object[] args) 
 public MetaMethod getStaticMetaMethod(String name,
    Class[] argTypes) 
 public synchronized  void initialize() 
 public Object invokeMethod(Class sender,
    Object object,
    String methodName,
    Object[] originalArguments,
    boolean isCallToSuper,
    boolean fromInsideClass) 
 public Object invokeStaticMethod(Object object,
    String methodName,
    Object[] arguments) 
 protected boolean isInitialized() 
 public MetaMethod pickMethod(String name,
    Class[] argTypes) 
 public Constructor retrieveConstructor(Class[] arguments) 
 public MetaMethod retrieveStaticMethod(String methodName,
    Class[] arguments) 
 public  void setAttribute(Class sender,
    Object object,
    String attribute,
    Object newValue,
    boolean useSuper,
    boolean fromInsideClass) 
 public  void setProperties(Object bean,
    Map map) 
 public  void setProperty(Class sender,
    Object object,
    String name,
    Object newValue,
    boolean useSuper,
    boolean fromInsideClass)