public final class ClosureMetaClass extends MetaClassImpl
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!
Fields inherited from class | Fields |
---|---|
class MetaClassImpl |
EMPTY_ARGUMENTS, INVOKE_METHOD_METHOD, METHOD_MISSING, PROPERTY_MISSING, STATIC_METHOD_MISSING, STATIC_PROPERTY_MISSING, getPropertyMethod, invokeMethodMethod, isGroovyObject, isMap, metaMethodIndex, registry, setPropertyMethod, theCachedClass, theClass |
Constructor and description |
---|
ClosureMetaClass
(MetaClassRegistry registry, Class theClass) |
Type Params | Return Type | Name and description |
---|---|---|
|
void |
addMetaBeanProperty(MetaBeanProperty mp) |
|
void |
addMetaMethod(MetaMethod method) |
|
void |
addNewInstanceMethod(Method method) |
|
void |
addNewStaticMethod(Method method) |
|
protected void |
applyPropertyDescriptors(PropertyDescriptor[] propertyDescriptors) |
|
CallSite |
createPogoCallCurrentSite(CallSite site, Class sender, Object[] args) |
|
CallSite |
createPogoCallSite(CallSite site, Object[] args) |
|
CallSite |
createPojoCallSite(CallSite site, Object receiver, Object[] args) |
|
Object |
getAttribute(Class sender, Object object, String attribute, boolean useSuper, boolean fromInsideClass) |
|
List<MetaMethod> |
getMetaMethods() |
|
MetaProperty |
getMetaProperty(String name) |
|
MetaMethod |
getMethodWithoutCaching(int index, Class sender, String methodName, Class[] arguments, boolean isCallToSuper) |
|
List<MetaMethod> |
getMethods() |
|
List<MetaProperty> |
getProperties() |
|
Object |
getProperty(Class sender, Object object, String name, boolean useSuper, boolean fromInsideClass) |
|
MetaMethod |
getStaticMetaMethod(String name, Object[] args) |
|
MetaMethod |
getStaticMetaMethod(String name, Class[] argTypes) |
|
void |
initialize() |
|
Object |
invokeMethod(Class sender, Object object, String methodName, Object[] originalArguments, boolean isCallToSuper, boolean fromInsideClass) |
|
Object |
invokeStaticMethod(Object object, String methodName, Object[] arguments) |
|
protected boolean |
isInitialized() |
|
MetaMethod |
pickMethod(String name, Class[] argTypes) |
|
static void |
resetCachedMetaClasses() |
|
List |
respondsTo(Object obj, String name, Object[] argTypes) |
|
List |
respondsTo(Object obj, String name) |
|
Constructor |
retrieveConstructor(Class[] arguments) |
|
MetaMethod |
retrieveStaticMethod(String methodName, Class[] arguments) |
|
void |
setAttribute(Class sender, Object object, String attribute, Object newValue, boolean useSuper, boolean fromInsideClass) |
|
protected void |
setInitialized(boolean initialized) |
|
void |
setProperties(Object bean, Map map) |
|
void |
setProperty(Class sender, Object object, String name, Object newValue, boolean useSuper, boolean fromInsideClass) |
Methods inherited from class | Name |
---|---|
class MetaClassImpl |
getMetaMethod, getMetaProperty, getRegistry, getStaticMetaMethod, getSuperClasses, getTheCachedClass, getTheClass, hasProperty, isGroovyObject, methodNameAction, respondsTo, respondsTo, skipClass |
Copyright © 2003-2020 The Apache Software Foundation. All rights reserved.