Groovy Documentation

## groovy.lang
[Java] Interface MutableMetaClass

    groovy.lang.MetaClass
      groovy.lang.MutableMetaClass
          groovy.lang.MetaObjectProtocol

All Superinterfaces:
  MetaClass, MetaObjectProtocol

    public interface MutableMetaClass
    extends MetaClass

An interface that defines methods that implementers of mutable Meta classes should specify. It provides operations to perform mutations on the MetaClass instance.

Whether a MetaClass allows mutation is up to the MetaClass itself and considerations of Thread safety need to be taken into account when making a MetaClass mutable

The default implementation allows mutation of MetaClass instances before initialisation (before the initialize() method is called) but not after, thus ensuring Thread safety once a MetaClass has been constructed and placed in the registry

Authors:
  Graeme Rocher

See Also:
  MetaClassImpl
  MetaClass

Since:
  1.5

Method Summary
`void` | `addMetaBeanProperty(MetaBeanProperty metaBeanProperty)` Adds a new MetaBeanProperty to the MetaClass
`void` | `addMetaMethod(MetaMethod metaMethod)` Adds a new MetaMethod to the MetaClass
`void` | `addNewInstanceMethod(java.lang.reflect.Method method)` adds a new instance method to this MetaClass.
`void` | `addNewStaticMethod(java.lang.reflect.Method method)` adds a new static method to this MetaClass.
`boolean` | `isModified()` Return whether the MetaClass has been modified or not

Methods inherited from interface MetaClass
getAttribute, getClassNode, getMetaMethods, getMethods, getProperties, getProperty, initialize, invokeMethod, invokeMissingMethod, invokeMissingProperty, pickMethod, selectConstructorAndTransformArguments, setAttribute, setProperty

Methods inherited from interface MetaObjectProtocol
getAttribute, getMetaMethod, getMetaProperty, getMethods, getProperties, getProperty, getStaticMetaMethod, getTheClass, hasProperty, invokeConstructor, invokeMethod, invokeMethod, invokeStaticMethod, respondsTo, respondsTo, setAttribute, setProperty

Method Detail

### addMetaBeanProperty

    public void addMetaBeanProperty(MetaBeanProperty metaBeanProperty)

  Adds a new MetaBeanProperty to the MetaClass
  Parameters:
    `metaBeanProperty` - The MetaBeanProperty instance

### addMetaMethod

    public void addMetaMethod(MetaMethod metaMethod)

  Adds a new MetaMethod to the MetaClass
  Parameters:
    `metaMethod` - The MetaMethod to add

### addNewInstanceMethod

    public void addNewInstanceMethod(java.lang.reflect.Method method)

  adds a new instance method to this MetaClass. Instance methods are able to overwrite the original methods of the class. Calling this method should not be done after initialise was called.
  Parameters:
    `method` - the method to be added

### addNewStaticMethod

    public void addNewStaticMethod(java.lang.reflect.Method method)

  adds a new static method to this MetaClass. This is only possible as long as initialise was not called.
  Parameters:
    `method` - the method to be added

### isModified

    public boolean isModified()

  Return whether the MetaClass has been modified or not
  Returns:
    True if it has

Groovy Documentation