Package groovy.lang
Interface MutableMetaClass
- All Superinterfaces:
MetaClass
,MetaObjectProtocol
- All Known Implementing Classes:
ClosureMetaClass
,DelegatingMetaClass
,ExpandoMetaClass
,HandleMetaClass
,MetaClassImpl
,MixedInMetaClass
,MockProxyMetaClass
,OwnedMetaClass
,ProxyMetaClass
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
- Since:
- 1.5
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addMetaBeanProperty
(MetaBeanProperty metaBeanProperty) Adds a new MetaBeanProperty to the MetaClassvoid
addMetaMethod
(MetaMethod metaMethod) Adds a new MetaMethod to the MetaClassvoid
addNewInstanceMethod
(Method method) adds a new instance method to this MetaClass.void
addNewStaticMethod
(Method method) adds a new static method to this MetaClass.boolean
Return whether the MetaClass has been modified or notMethods 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 Details
-
isModified
boolean isModified()Return whether the MetaClass has been modified or not- Returns:
- True if it has
-
addNewInstanceMethod
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
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
-
addMetaMethod
Adds a new MetaMethod to the MetaClass- Parameters:
metaMethod
- The MetaMethod to add
-
addMetaBeanProperty
Adds a new MetaBeanProperty to the MetaClass- Parameters:
metaBeanProperty
- The MetaBeanProperty instance
-