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