public class ProxyMetaClass extends MetaClassImpl implements AdaptingMetaClass
WARNING: This implementation of ProxyMetaClass is NOT thread-safe and hence should only be used for as a per-instance MetaClass running in a single thread. Do not place this MetaClass in the MetaClassRegistry as it will result in unpredictable behaviour
MetaClassRegistryMetaClassImpl.Index, MetaClassImpl.MetaConstructor| Modifier and Type | Field and Description |
|---|---|
protected MetaClass |
adaptee |
protected Interceptor |
interceptor |
EMPTY_ARGUMENTS, getPropertyMethod, INVOKE_METHOD_METHOD, invokeMethodMethod, isGroovyObject, isMap, metaMethodIndex, METHOD_MISSING, PROPERTY_MISSING, registry, setPropertyMethod, STATIC_METHOD_MISSING, STATIC_PROPERTY_MISSING, theCachedClass, theClass| Constructor and Description |
|---|
ProxyMetaClass(MetaClassRegistry registry,
java.lang.Class theClass,
MetaClass adaptee) |
| Modifier and Type | Method and Description |
|---|---|
MetaClass |
getAdaptee()
Returns the MetaClass that this adapter adapts
|
static ProxyMetaClass |
getInstance(java.lang.Class theClass)
convenience factory method for the most usual case.
|
Interceptor |
getInterceptor() |
java.lang.Object |
getProperty(java.lang.Class aClass,
java.lang.Object object,
java.lang.String property,
boolean b,
boolean b1)
Interceptors the call to getProperty if a PropertyAccessInterceptor is
available
|
void |
initialize()
Complete the initialisation process.
|
java.lang.Object |
invokeConstructor(java.lang.Object[] arguments)
Call invokeConstructor on adaptee with logic like in MetaClass unless we have an Interceptor.
|
java.lang.Object |
invokeMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] arguments)
Call invokeMethod on adaptee with logic like in MetaClass unless we have an Interceptor.
|
java.lang.Object |
invokeStaticMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] arguments)
Call invokeStaticMethod on adaptee with logic like in MetaClass unless we have an Interceptor.
|
void |
setAdaptee(MetaClass metaClass)
Sets the MetaClass adapted by this MetaClass
|
void |
setInterceptor(Interceptor interceptor) |
void |
setProperty(java.lang.Class aClass,
java.lang.Object object,
java.lang.String property,
java.lang.Object newValue,
boolean b,
boolean b1)
Interceptors the call to a property setter if a PropertyAccessInterceptor
is available
|
java.lang.Object |
use(Closure closure)
Use the ProxyMetaClass for the given Closure.
|
java.lang.Object |
use(GroovyObject object,
Closure closure)
Use the ProxyMetaClass for the given Closure.
|
addMetaBeanProperty, addMetaMethod, addMetaMethodToIndex, addNewInstanceMethod, addNewStaticMethod, applyPropertyDescriptors, checkIfGroovyObjectMethod, checkInitalised, chooseMethod, clearInvocationCaches, createConstructorSite, createPogoCallCurrentSite, createPogoCallSite, createPojoCallSite, createStaticSite, dropMethodCache, dropStaticMethodCache, findMethodInClassHierarchy, findMixinMethod, findOwnMethod, findPropertyInClassHierarchy, getAdditionalMetaMethods, getAttribute, getAttribute, getAttribute, getClassInfo, getClassNode, getEffectiveGetMetaProperty, getMetaMethod, getMetaMethods, getMetaProperty, getMethods, getMethodWithCaching, getMethodWithoutCaching, getProperties, getProperty, getRegistry, getStaticMetaMethod, getSubclassMetaMethods, getSuperClasses, getTheCachedClass, getTheClass, getVersion, hasCustomInvokeMethod, hasCustomStaticInvokeMethod, hasProperty, incVersion, invokeMethod, invokeMethod, invokeMissingMethod, invokeMissingProperty, invokeStaticMissingProperty, isGroovyObject, isInitialized, isModified, onGetPropertyFoundInHierarchy, onInvokeMethodFoundInHierarchy, onMixinMethodFound, onSetPropertyFoundInHierarchy, onSuperMethodFoundInHierarchy, onSuperPropertyFoundInHierarchy, pickMethod, respondsTo, respondsTo, retrieveConstructor, retrieveConstructor, retrieveStaticMethod, selectConstructorAndTransformArguments, setAttribute, setAttribute, setProperties, setProperty, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAttribute, getClassNode, getMetaMethods, getMethods, getProperties, invokeMethod, invokeMissingMethod, invokeMissingProperty, pickMethod, selectConstructorAndTransformArguments, setAttributegetAttribute, getMetaMethod, getMetaProperty, getProperty, getStaticMetaMethod, getTheClass, hasProperty, invokeMethod, respondsTo, respondsTo, setAttribute, setPropertyprotected MetaClass adaptee
protected Interceptor interceptor
public ProxyMetaClass(MetaClassRegistry registry, java.lang.Class theClass, MetaClass adaptee)
adaptee - the MetaClass to decorate with interceptabilitypublic static ProxyMetaClass getInstance(java.lang.Class theClass)
public void initialize()
MetaClassImplinitialize in interface MetaClassinitialize in class MetaClassImplpublic java.lang.Object use(Closure closure)
closure - piece of code to be executed with registered ProxyMetaClasspublic java.lang.Object use(GroovyObject object, Closure closure)
closure - piece of code to be executed with ProxyMetaClasspublic Interceptor getInterceptor()
public void setInterceptor(Interceptor interceptor)
interceptor - may be null to reset any interceptionpublic java.lang.Object invokeMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] arguments)
invokeMethod in interface MetaObjectProtocolinvokeMethod in class MetaClassImplobject - The object which the method was invoked onmethodName - The name of the methodarguments - The arguments to the methodMetaClass.invokeMethod(Class, Object, String, Object[], boolean, boolean)public java.lang.Object invokeStaticMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] arguments)
invokeStaticMethod in interface MetaObjectProtocolinvokeStaticMethod in class MetaClassImplobject - An instance of the class returned by the getTheClass() method or the class itselfmethodName - The name of the methodarguments - The arguments to the methodMissingMethodExceptionpublic java.lang.Object invokeConstructor(java.lang.Object[] arguments)
invokeConstructor in interface MetaObjectProtocolinvokeConstructor in class MetaClassImplarguments - The arguments to the constructorpublic java.lang.Object getProperty(java.lang.Class aClass,
java.lang.Object object,
java.lang.String property,
boolean b,
boolean b1)
getProperty in interface MetaClassgetProperty in class MetaClassImplobject - the object to invoke the getter onproperty - the property nameaClass - The java.lang.Class instance that requested the propertyb - Whether the call is to a super class propertyb1 - ??public void setProperty(java.lang.Class aClass,
java.lang.Object object,
java.lang.String property,
java.lang.Object newValue,
boolean b,
boolean b1)
setProperty in interface MetaClasssetProperty in class MetaClassImplobject - The object to invoke the setter onproperty - The property name to setnewValue - The new value of the propertyaClass - The java.lang.Class instance that is mutating the propertyb - Whether the call is to a super class propertyb1 - Whether the call was invoked from the inside or the outside of the class.public MetaClass getAdaptee()
AdaptingMetaClassgetAdaptee in interface AdaptingMetaClasspublic void setAdaptee(MetaClass metaClass)
AdaptingMetaClasssetAdaptee in interface AdaptingMetaClassmetaClass - The MetaClass to adapt