groovy.lang
Interface MutableMetaClass

All Superinterfaces:
MetaClass, MetaObjectProtocol
All Known Implementing Classes:
ClosureMetaClass, DelegatingMetaClass, ExpandoMetaClass, HandleMetaClass, MetaClassImpl, MixedInMetaClass, MockProxyMetaClass, OwnedMetaClass, ProxyMetaClass

public interface MutableMetaClass
extends MetaClass

An interface that defines methods that implementors of mutable Meta classes should specifiy. 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

Since:
1.1

Created: Feb 24, 2007 Time: 4:05:44 PM

Author:
Graeme Rocher
See Also:
MetaClassImpl, MetaClass

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(Method method)
          adds a new instance method to this MetaClass.
 void addNewStaticMethod(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 groovy.lang.MetaClass
getAttribute, getClassNode, getMetaMethods, getMethods, getProperties, getProperty, initialize, invokeMethod, invokeMissingMethod, invokeMissingProperty, pickMethod, selectConstructorAndTransformArguments, setAttribute, setProperty
 
Methods inherited from interface groovy.lang.MetaObjectProtocol
getAttribute, getMetaMethod, getMetaProperty, getProperty, getStaticMetaMethod, getTheClass, hasProperty, invokeConstructor, invokeMethod, invokeMethod, invokeStaticMethod, respondsTo, respondsTo, setAttribute, setProperty
 

Method Detail

isModified

boolean isModified()
Return whether the MetaClass has been modified or not

Returns:
True if it has

addNewInstanceMethod

void addNewInstanceMethod(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 initlise was called.

Parameters:
method - the method to be added

addNewStaticMethod

void addNewStaticMethod(Method method)
adds a new static method to this MetaClass. This is only possible as long as initilise was not called.

Parameters:
method - the method to be added

addMetaMethod

void addMetaMethod(MetaMethod metaMethod)
Adds a new MetaMethod to the MetaClass

Parameters:
metaMethod - The MetaMethod to add

addMetaBeanProperty

void addMetaBeanProperty(MetaBeanProperty metaBeanProperty)
Adds a new MetaBeanProperty to the MetaClass

Parameters:
metaBeanProperty - The MetaBeanProperty instance

Copyright © 2003-2009 The Codehaus. All rights reserved.