Package groovy.mock.interceptor

# Class MockProxyMetaClass

java.lang.Object
groovy.lang.MetaClassImpl
groovy.lang.ProxyMetaClass
groovy.mock.interceptor.MockProxyMetaClass

All Implemented Interfaces:
  `AdaptingMetaClass`, `MetaClass`, `MetaObjectProtocol`, `MutableMetaClass`

public class MockProxyMetaClass extends ProxyMetaClass
The ProxyMetaClass for the MockInterceptor. Instance and class methods are intercepted, but constructors are not to allow mocking of aggregated objects.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class groovy.lang.MetaClassImpl

  `MetaClassImpl.Index, MetaClassImpl.MetaConstructor`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final boolean`
  `interceptConstruction`

  ### Fields inherited from class groovy.lang.ProxyMetaClass

  `adaptee, interceptor`

  ### Fields inherited from class groovy.lang.MetaClassImpl

  `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 Summary

  Constructors
  Constructor
  Description
  `MockProxyMetaClass(MetaClassRegistry registry, Class theClass, MetaClass adaptee)`
  `MockProxyMetaClass(MetaClassRegistry registry, Class theClass, MetaClass adaptee, boolean interceptConstruction)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getProperty(Class aClass, Object object, String property, boolean b, boolean b1)`
  Interceptors the call to getProperty if a PropertyAccessInterceptor is available
  `Object`
  `invokeConstructor(Object[] arguments)`
  Unlike general impl in superclass, ctors are not intercepted but relayed unless interceptConstruction is set.
  `Object`
  `invokeMethod(Class sender, Object object, String methodName, Object[] arguments, boolean isCallToSuper, boolean fromInsideClass)`
  Call invokeMethod 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.
  `static MockProxyMetaClass`
  `make(Class theClass)`
  convenience factory method for the most usual case.
  `static MockProxyMetaClass`
  `make(Class theClass, boolean interceptConstruction)`
  convenience factory method allowing interceptConstruction to be set.
  `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

  ### Methods inherited from class groovy.lang.ProxyMetaClass

  `getAdaptee, getInstance, getInterceptor, initialize, setAdaptee, setInterceptor, use, use`

  ### Methods inherited from class groovy.lang.MetaClassImpl

  `addMetaBeanProperty, addMetaMethod, addMetaMethodToIndex, addNewInstanceMethod, addNewStaticMethod, applyPropertyDescriptors, checkIfGroovyObjectMethod, checkInitalised, chooseMethod, clearInvocationCaches, createConstructorSite, createErrorMessageForAmbiguity, createPogoCallCurrentSite, createPogoCallSite, createPojoCallSite, createStaticSite, createTransformMetaMethod, doChooseMostSpecificParams, 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, handleMatches, hasCustomInvokeMethod, hasCustomStaticInvokeMethod, hasProperty, incVersion, invokeMethod, invokeMissingMethod, invokeMissingProperty, invokeStaticMissingProperty, isGroovyObject, isInitialized, isModified, isPermissivePropertyAccess, onGetPropertyFoundInHierarchy, onInvokeMethodFoundInHierarchy, onMixinMethodFound, onSetPropertyFoundInHierarchy, onSuperMethodFoundInHierarchy, onSuperPropertyFoundInHierarchy, pickMethod, reinitialize, respondsTo, respondsTo, retrieveConstructor, retrieveConstructor, retrieveStaticMethod, selectConstructorAndTransformArguments, setAttribute, setAttribute, setInitialized, setPermissivePropertyAccess, setProperties, setProperty, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface groovy.lang.MetaClass

  `getAttribute, getClassNode, getMetaMethods, getMethods, getProperties, invokeMissingMethod, invokeMissingProperty, pickMethod, selectConstructorAndTransformArguments, setAttribute`

  ### Methods inherited from interface groovy.lang.MetaObjectProtocol

  `getAttribute, getMetaMethod, getMetaProperty, getProperty, getStaticMetaMethod, getTheClass, hasProperty, invokeMethod, respondsTo, respondsTo, setAttribute, setProperty`

- ## Field Details

  - ### interceptConstruction

    public final boolean interceptConstruction

- ## Constructor Details

  - ### MockProxyMetaClass

    public MockProxyMetaClass(MetaClassRegistry registry, Class theClass, MetaClass adaptee)
    Parameters:
      `adaptee` - the MetaClass to decorate with interceptability

  - ### MockProxyMetaClass

    public MockProxyMetaClass(MetaClassRegistry registry, Class theClass, MetaClass adaptee, boolean interceptConstruction)
    Parameters:
      `adaptee` - the MetaClass to decorate with interceptability

- ## Method Details

  - ### make

    public static MockProxyMetaClass make(Class theClass)
    convenience factory method for the most usual case.

  - ### make

    public static MockProxyMetaClass make(Class theClass, boolean interceptConstruction)
    convenience factory method allowing interceptConstruction to be set.

  - ### invokeMethod

    public Object invokeMethod(Object object, String methodName, Object[] arguments)
    Description copied from class: `ProxyMetaClass`
    Call invokeMethod on adaptee with logic like in MetaClass unless we have an Interceptor. With Interceptor the call is nested in its beforeInvoke and afterInvoke methods. The method call is suppressed if Interceptor.doInvoke() returns false. See Interceptor for details.
    Specified by:
      `invokeMethod` in interface `MetaObjectProtocol`
    Overrides:
      `invokeMethod` in class `ProxyMetaClass`
    Parameters:
      `object` - The object which the method was invoked on
      `methodName` - The name of the method
      `arguments` - The arguments to the method
    Returns:
      The return value of the method
    See Also:
      - `MetaClass.invokeMethod(Class, Object, String, Object[], boolean, boolean)`

  - ### invokeMethod

    public Object invokeMethod(Class sender, Object object, String methodName, Object[] arguments, boolean isCallToSuper, boolean fromInsideClass)
    Description copied from class: `ProxyMetaClass`
    Call invokeMethod on adaptee with logic like in MetaClass unless we have an Interceptor. With Interceptor the call is nested in its beforeInvoke and afterInvoke methods. The method call is suppressed if Interceptor.doInvoke() returns false. See Interceptor for details.
    Specified by:
      `invokeMethod` in interface `MetaClass`
    Overrides:
      `invokeMethod` in class `ProxyMetaClass`
    Parameters:
      `sender` - The java.lang.Class instance that invoked the method
      `object` - The object which the method was invoked on
      `methodName` - The name of the method
      `arguments` - The arguments to the method
      `isCallToSuper` - Whether the method is a call to a super class method
      `fromInsideClass` - Whether the call was invoked from the inside or the outside of the class
    Returns:
      The return value of the method
    See Also:
      - `MetaClass.invokeMethod(Class, Object, String, Object[], boolean, boolean)`

  - ### invokeStaticMethod

    public Object invokeStaticMethod(Object object, String methodName, Object[] arguments)
    Description copied from class: `ProxyMetaClass`
    Call invokeStaticMethod on adaptee with logic like in MetaClass unless we have an Interceptor. With Interceptor the call is nested in its beforeInvoke and afterInvoke methods. The method call is suppressed if Interceptor.doInvoke() returns false. See Interceptor for details.
    Specified by:
      `invokeStaticMethod` in interface `MetaObjectProtocol`
    Overrides:
      `invokeStaticMethod` in class `ProxyMetaClass`
    Parameters:
      `object` - An instance of the class returned by the getTheClass() method or the class itself
      `methodName` - The name of the method
      `arguments` - The arguments to the method
    Returns:
      The return value of the method which is null if the return type is void
    See Also:
      - `MissingMethodException`

  - ### getProperty

    public Object getProperty(Class aClass, Object object, String property, boolean b, boolean b1)
    Description copied from class: `ProxyMetaClass`
    Interceptors the call to getProperty if a PropertyAccessInterceptor is available
    Specified by:
      `getProperty` in interface `MetaClass`
    Overrides:
      `getProperty` in class `ProxyMetaClass`
    Parameters:
      `aClass` - The java.lang.Class instance that requested the property
      `object` - the object to invoke the getter on
      `property` - the property name
      `b` - Whether the call is to a super class property
      `b1` - ??
    Returns:
      the value of the property

  - ### setProperty

    public void setProperty(Class aClass, Object object, String property, Object newValue, boolean b, boolean b1)
    Description copied from class: `ProxyMetaClass`
    Interceptors the call to a property setter if a PropertyAccessInterceptor is available
    Specified by:
      `setProperty` in interface `MetaClass`
    Overrides:
      `setProperty` in class `ProxyMetaClass`
    Parameters:
      `aClass` - The java.lang.Class instance that is mutating the property
      `object` - The object to invoke the setter on
      `property` - The property name to set
      `newValue` - The new value of the property
      `b` - Whether the call is to a super class property
      `b1` - Whether the call was invoked from the inside or the outside of the class.

  - ### invokeConstructor

    public Object invokeConstructor(Object[] arguments)
    Unlike general impl in superclass, ctors are not intercepted but relayed unless interceptConstruction is set.
    Specified by:
      `invokeConstructor` in interface `MetaObjectProtocol`
    Overrides:
      `invokeConstructor` in class `ProxyMetaClass`
    Parameters:
      `arguments` - The arguments to the constructor
    Returns:
      An instance of the java.lang.Class that this MetaObjectProtocol object applies to