MetadataGeneratingExpandoMetaClass (Grails 2.4.4)
Date: 2014-10-28

Package: org.codehaus.groovy.grails.documentation

## [Java] Class MetadataGeneratingExpandoMetaClass

- org.codehaus.groovy.grails.documentation.MetadataGeneratingExpandoMetaClass

- A specialized version of ExpandoMetaClass that is capable of generating metadata about the dynamic methods and properties that are added to artefact types at runtime by plugins. A project with sufficient code coverage will have metadata about the methods and properties it provides generated at runtime.

  Authors:
    Graeme Rocher
  Since:
    1.2

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class groovy.lang.ExpandoMetaClass` | `STATIC_QUALIFIER, CONSTRUCTOR, inRegistry, EMPTY_ARGUMENTS`
    `class groovy.lang.MetaClassImpl` | `EMPTY_ARGUMENTS`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `MetadataGeneratingExpandoMetaClass (java.lang.Class<?> theClass)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `addMetaBeanProperty(groovy.lang.MetaBeanProperty mp)`
    `void` | `registerInstanceMethod(groovy.lang.MetaMethod method)`
    `protected void` | `registerStaticMethod(java.lang.String name, groovy.lang.Closure callable)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class groovy.lang.ExpandoMetaClass` | `groovy.lang.ExpandoMetaClass#setProperty(java.lang.Class, java.lang.Object, java.lang.String, java.lang.Object, boolean, boolean), groovy.lang.ExpandoMetaClass#setProperty(java.lang.String, java.lang.Object), groovy.lang.ExpandoMetaClass#getProperty(java.lang.Object, java.lang.String), groovy.lang.ExpandoMetaClass#getProperty(java.lang.Class, java.lang.Object, java.lang.String, boolean, boolean), groovy.lang.ExpandoMetaClass#getProperty(java.lang.String), groovy.lang.ExpandoMetaClass#getMethods(), groovy.lang.ExpandoMetaClass#getProperties(), groovy.lang.ExpandoMetaClass#isSetter(java.lang.String, [Lorg.codehaus.groovy.reflection.CachedClass;), groovy.lang.ExpandoMetaClass#initialize(), groovy.lang.ExpandoMetaClass#getMetaProperty(java.lang.String), groovy.lang.ExpandoMetaClass#invokeConstructor([Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#invokeStaticMethod(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#invokeMethod(java.lang.String, java.lang.Object), groovy.lang.ExpandoMetaClass#invokeMethod(java.lang.Class, java.lang.Object, java.lang.String, [Ljava.lang.Object;, boolean, boolean), groovy.lang.ExpandoMetaClass#createPojoCallSite(org.codehaus.groovy.runtime.callsite.CallSite, java.lang.Object, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#getExpandoMethods(), groovy.lang.ExpandoMetaClass#getExpandoSubclassMethods(), groovy.lang.ExpandoMetaClass#registerInstanceMethod(java.lang.String, groovy.lang.Closure), groovy.lang.ExpandoMetaClass#registerInstanceMethod(groovy.lang.MetaMethod), groovy.lang.ExpandoMetaClass#retrieveConstructor([Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#setMetaClass(groovy.lang.MetaClass), groovy.lang.ExpandoMetaClass#getMetaClass(), groovy.lang.ExpandoMetaClass#castToMixedType(java.lang.Object, java.lang.Class), groovy.lang.ExpandoMetaClass#define(groovy.lang.Closure), groovy.lang.ExpandoMetaClass#findMixinMethod(java.lang.String, [Ljava.lang.Class;), groovy.lang.ExpandoMetaClass#isModified(), groovy.lang.ExpandoMetaClass#registerSubclassInstanceMethod(groovy.lang.MetaMethod), groovy.lang.ExpandoMetaClass#registerSubclassInstanceMethod(java.lang.String, java.lang.Class, groovy.lang.Closure), groovy.lang.ExpandoMetaClass#addMixinClass(org.codehaus.groovy.reflection.MixinInMetaClass), groovy.lang.ExpandoMetaClass#enableGlobally(), groovy.lang.ExpandoMetaClass#disableGlobally(), groovy.lang.ExpandoMetaClass#isValidExpandoProperty(java.lang.String), groovy.lang.ExpandoMetaClass#registerBeanProperty(java.lang.String, java.lang.Object), groovy.lang.ExpandoMetaClass#getJavaClass(), groovy.lang.ExpandoMetaClass#refreshInheritedMethods(java.util.Set), groovy.lang.ExpandoMetaClass#getExpandoProperties(), groovy.lang.ExpandoMetaClass#hasMetaProperty(java.lang.String), groovy.lang.ExpandoMetaClass#hasMetaMethod(java.lang.String, [Ljava.lang.Class;), groovy.lang.ExpandoMetaClass#getPropertyForSetter(java.lang.String), groovy.lang.ExpandoMetaClass#createStaticSite(org.codehaus.groovy.runtime.callsite.CallSite, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#createPogoCallSite(org.codehaus.groovy.runtime.callsite.CallSite, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#createPogoCallCurrentSite(org.codehaus.groovy.runtime.callsite.CallSite, java.lang.Class, java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#createConstructorSite(org.codehaus.groovy.runtime.callsite.CallSite, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#setProperty(java.lang.Object, java.lang.String, java.lang.Object), groovy.lang.ExpandoMetaClass#toString(), groovy.lang.ExpandoMetaClass#setProperties(java.lang.Object, java.util.Map), groovy.lang.ExpandoMetaClass#respondsTo(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#respondsTo(java.lang.Object, java.lang.String), groovy.lang.ExpandoMetaClass#invokeMissingMethod(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#invokeMissingProperty(java.lang.Object, java.lang.String, java.lang.Object, boolean), groovy.lang.ExpandoMetaClass#getClassNode(), groovy.lang.ExpandoMetaClass#getMetaMethods(), groovy.lang.ExpandoMetaClass#selectConstructorAndTransformArguments(int, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#getStaticMetaMethod(java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#getMetaMethod(java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#invokeMethod(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#invokeMethod(java.lang.Object, java.lang.String, java.lang.Object), groovy.lang.ExpandoMetaClass#isGroovyObject(), groovy.lang.ExpandoMetaClass#addNewInstanceMethod(java.lang.reflect.Method), groovy.lang.ExpandoMetaClass#addNewStaticMethod(java.lang.reflect.Method), groovy.lang.ExpandoMetaClass#getMethodWithCaching(java.lang.Class, java.lang.String, [Ljava.lang.Object;, boolean), groovy.lang.ExpandoMetaClass#retrieveConstructor([Ljava.lang.Class;), groovy.lang.ExpandoMetaClass#retrieveStaticMethod(java.lang.String, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#getEffectiveGetMetaProperty(java.lang.Class, java.lang.Object, java.lang.String, boolean), groovy.lang.ExpandoMetaClass#addMetaMethod(groovy.lang.MetaMethod), groovy.lang.ExpandoMetaClass#getAdditionalMetaMethods(), groovy.lang.ExpandoMetaClass#setAttribute(java.lang.Object, java.lang.String, java.lang.Object), groovy.lang.ExpandoMetaClass#setAttribute(java.lang.Class, java.lang.Object, java.lang.String, java.lang.Object, boolean, boolean), groovy.lang.ExpandoMetaClass#hasProperty(java.lang.Object, java.lang.String), groovy.lang.ExpandoMetaClass#pickMethod(java.lang.String, [Ljava.lang.Class;), groovy.lang.ExpandoMetaClass#incVersion(), groovy.lang.ExpandoMetaClass#getTheClass(), groovy.lang.ExpandoMetaClass#getClassInfo(), groovy.lang.ExpandoMetaClass#getTheCachedClass(), groovy.lang.ExpandoMetaClass#getMethodWithoutCaching(java.lang.Class, java.lang.String, [Ljava.lang.Class;, boolean), groovy.lang.ExpandoMetaClass#addMetaBeanProperty(groovy.lang.MetaBeanProperty), groovy.lang.ExpandoMetaClass#createPogoCallCurrentSite(org.codehaus.groovy.runtime.callsite.CallSite, java.lang.Class, [Ljava.lang.Object;), groovy.lang.ExpandoMetaClass#getVersion(), groovy.lang.ExpandoMetaClass#getRegistry(), groovy.lang.ExpandoMetaClass#getAttribute(java.lang.Class, java.lang.Object, java.lang.String, boolean), groovy.lang.ExpandoMetaClass#getAttribute(java.lang.Class, java.lang.Object, java.lang.String, boolean, boolean), groovy.lang.ExpandoMetaClass#getAttribute(java.lang.Object, java.lang.String), groovy.lang.ExpandoMetaClass#wait(long, int), groovy.lang.ExpandoMetaClass#wait(long), groovy.lang.ExpandoMetaClass#wait(), groovy.lang.ExpandoMetaClass#equals(java.lang.Object), groovy.lang.ExpandoMetaClass#hashCode(), groovy.lang.ExpandoMetaClass#getClass(), groovy.lang.ExpandoMetaClass#notify(), groovy.lang.ExpandoMetaClass#notifyAll()`
    `class groovy.lang.MetaClassImpl` | `groovy.lang.MetaClassImpl#setProperty(java.lang.Class, java.lang.Object, java.lang.String, java.lang.Object, boolean, boolean), groovy.lang.MetaClassImpl#setProperty(java.lang.Object, java.lang.String, java.lang.Object), groovy.lang.MetaClassImpl#getProperty(java.lang.Class, java.lang.Object, java.lang.String, boolean, boolean), groovy.lang.MetaClassImpl#getProperty(java.lang.Object, java.lang.String), groovy.lang.MetaClassImpl#toString(), groovy.lang.MetaClassImpl#getMethods(), groovy.lang.MetaClassImpl#getProperties(), groovy.lang.MetaClassImpl#setProperties(java.lang.Object, java.util.Map), groovy.lang.MetaClassImpl#initialize(), groovy.lang.MetaClassImpl#respondsTo(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#respondsTo(java.lang.Object, java.lang.String), groovy.lang.MetaClassImpl#invokeMissingMethod(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#invokeMissingProperty(java.lang.Object, java.lang.String, java.lang.Object, boolean), groovy.lang.MetaClassImpl#getClassNode(), groovy.lang.MetaClassImpl#getMetaMethods(), groovy.lang.MetaClassImpl#selectConstructorAndTransformArguments(int, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#getMetaProperty(java.lang.String), groovy.lang.MetaClassImpl#getStaticMetaMethod(java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#getMetaMethod(java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#invokeConstructor([Ljava.lang.Object;), groovy.lang.MetaClassImpl#invokeStaticMethod(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#invokeMethod(java.lang.Object, java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#invokeMethod(java.lang.Class, java.lang.Object, java.lang.String, [Ljava.lang.Object;, boolean, boolean), groovy.lang.MetaClassImpl#invokeMethod(java.lang.Object, java.lang.String, java.lang.Object), groovy.lang.MetaClassImpl#createPojoCallSite(org.codehaus.groovy.runtime.callsite.CallSite, java.lang.Object, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#isGroovyObject(), groovy.lang.MetaClassImpl#addNewInstanceMethod(java.lang.reflect.Method), groovy.lang.MetaClassImpl#addNewStaticMethod(java.lang.reflect.Method), groovy.lang.MetaClassImpl#getMethodWithCaching(java.lang.Class, java.lang.String, [Ljava.lang.Object;, boolean), groovy.lang.MetaClassImpl#retrieveConstructor([Ljava.lang.Class;), groovy.lang.MetaClassImpl#retrieveConstructor([Ljava.lang.Object;), groovy.lang.MetaClassImpl#retrieveStaticMethod(java.lang.String, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#getEffectiveGetMetaProperty(java.lang.Class, java.lang.Object, java.lang.String, boolean), groovy.lang.MetaClassImpl#addMetaMethod(groovy.lang.MetaMethod), groovy.lang.MetaClassImpl#getAdditionalMetaMethods(), groovy.lang.MetaClassImpl#setAttribute(java.lang.Object, java.lang.String, java.lang.Object), groovy.lang.MetaClassImpl#setAttribute(java.lang.Class, java.lang.Object, java.lang.String, java.lang.Object, boolean, boolean), groovy.lang.MetaClassImpl#hasProperty(java.lang.Object, java.lang.String), groovy.lang.MetaClassImpl#pickMethod(java.lang.String, [Ljava.lang.Class;), groovy.lang.MetaClassImpl#incVersion(), groovy.lang.MetaClassImpl#getTheClass(), groovy.lang.MetaClassImpl#getClassInfo(), groovy.lang.MetaClassImpl#getTheCachedClass(), groovy.lang.MetaClassImpl#getMethodWithoutCaching(java.lang.Class, java.lang.String, [Ljava.lang.Class;, boolean), groovy.lang.MetaClassImpl#addMetaBeanProperty(groovy.lang.MetaBeanProperty), groovy.lang.MetaClassImpl#isModified(), groovy.lang.MetaClassImpl#createStaticSite(org.codehaus.groovy.runtime.callsite.CallSite, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#createPogoCallSite(org.codehaus.groovy.runtime.callsite.CallSite, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#createPogoCallCurrentSite(org.codehaus.groovy.runtime.callsite.CallSite, java.lang.Class, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#createConstructorSite(org.codehaus.groovy.runtime.callsite.CallSite, [Ljava.lang.Object;), groovy.lang.MetaClassImpl#getVersion(), groovy.lang.MetaClassImpl#getRegistry(), groovy.lang.MetaClassImpl#getAttribute(java.lang.Class, java.lang.Object, java.lang.String, boolean), groovy.lang.MetaClassImpl#getAttribute(java.lang.Class, java.lang.Object, java.lang.String, boolean, boolean), groovy.lang.MetaClassImpl#getAttribute(java.lang.Object, java.lang.String), groovy.lang.MetaClassImpl#wait(long, int), groovy.lang.MetaClassImpl#wait(long), groovy.lang.MetaClassImpl#wait(), groovy.lang.MetaClassImpl#equals(java.lang.Object), groovy.lang.MetaClassImpl#hashCode(), groovy.lang.MetaClassImpl#getClass(), groovy.lang.MetaClassImpl#notify(), groovy.lang.MetaClassImpl#notifyAll()`

- - ### Constructor Detail

    - #### public MetadataGeneratingExpandoMetaClass(java.lang.Class<?> theClass)

  - ### Method Detail

    - #### @java.lang.Override public void addMetaBeanProperty(groovy.lang.MetaBeanProperty mp)

    - #### @java.lang.Override public void registerInstanceMethod(groovy.lang.MetaMethod method)

    - #### @java.lang.Override protected void registerStaticMethod(java.lang.String name, @java.lang.SuppressWarnings("rawtypes") groovy.lang.Closure callable)