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,
              Class theClass,
              MetaClass adaptee) | 
| Modifier and Type | Method and Description | 
|---|---|
| MetaClass | getAdaptee()Returns the MetaClass that this adapter adapts | 
| static ProxyMetaClass | getInstance(Class theClass)convenience factory method for the most usual case. | 
| Interceptor | getInterceptor() | 
| Object | getProperty(Class aClass,
           Object object,
           String property,
           boolean b,
           boolean b1)Interceptors the call to getProperty if a PropertyAccessInterceptor is
 available | 
| void | initialize()Complete the initialisation process. | 
| Object | invokeConstructor(Object[] arguments)Call invokeConstructor on adaptee with logic like in MetaClass unless we have an Interceptor. | 
| Object | invokeMethod(Object object,
            String methodName,
            Object[] arguments)Call invokeMethod on adaptee with logic like in MetaClass unless we have an Interceptor. | 
| Object | invokeStaticMethod(Object object,
                  String methodName,
                  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(Class aClass,
           Object object,
           String property,
           Object newValue,
           boolean b,
           boolean b1)Interceptors the call to a property setter if a PropertyAccessInterceptor
 is available | 
| Object | use(Closure closure)Use the ProxyMetaClass for the given Closure. | 
| 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, Class theClass, MetaClass adaptee)
adaptee - the MetaClass to decorate with interceptabilitypublic static ProxyMetaClass getInstance(Class theClass)
public void initialize()
MetaClassImplinitialize in interface MetaClassinitialize in class MetaClassImplpublic Object use(Closure closure)
closure - piece of code to be executed with registered ProxyMetaClasspublic 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 Object invokeMethod(Object object, String methodName, 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 Object invokeStaticMethod(Object object, String methodName, 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 Object invokeConstructor(Object[] arguments)
invokeConstructor in interface MetaObjectProtocolinvokeConstructor in class MetaClassImplarguments - The arguments to the constructorpublic Object getProperty(Class aClass, Object object, 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(Class aClass, Object object, String property, 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