On this page
[Java] Interface MetaClassRegistry
public interface MetaClassRegistry
A MetaClassRegistry is an object that is responsible for managing the a cache of MetaClass instances. Each java.lang.Class instance has an associated MetaClass and client code can query this interface for the MetaClass for a given associated java.lang.Class
- See Also:
- MetaClass
Nested Class Summary
Modifiers | Name | Description |
---|---|---|
class |
MetaClassRegistry.MetaClassCreationHandle |
Class used as base for the creation of MetaClass implementations. |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
public void |
addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener) Adds a meta class change listener for constant meta classes |
|
public void |
addNonRemovableMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener) Adds a meta class change listener for constant meta classes. |
|
public MetaClass |
getMetaClass(Class theClass) The main function of the registry If a meta class exists then return it otherwise create one, put it in the registry and return it |
|
public MetaClassCreationHandle |
getMetaClassCreationHandler() Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances |
|
public MetaClassRegistryChangeEventListener[] |
getMetaClassRegistryChangeEventListeners() Returns all registered class change listener for constant meta classes. |
|
public Iterator |
iterator() Gets a snapshot of the current constant meta classes and returns it as Iterator. |
|
public void |
removeMetaClass(Class theClass) Removes a cached MetaClass from the registry |
|
public void |
removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener) Removes a meta class change listener for constant meta classes |
|
public void |
setMetaClass(Class theClass, MetaClass theMetaClass) Adds a metaclass to the registry for the given class |
|
public void |
setMetaClassCreationHandle(MetaClassCreationHandle handle) Sets the MetaClassCreationHandle instance that is responsible for constructing instances |
Method Detail
public void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a meta class change listener for constant meta classes
- Parameters:
listener
- - the update listener
public void addNonRemovableMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a meta class change listener for constant meta classes. This listener cannot be removed!
- Parameters:
listener
- - the update listener
public MetaClass getMetaClass(Class theClass)
The main function of the registry If a meta class exists then return it otherwise create one, put it in the registry and return it
public MetaClassCreationHandle getMetaClassCreationHandler()
Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances
- Returns:
- The MetaClassCreationHandle instance
public MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
Returns all registered class change listener for constant meta classes.
- Returns:
- an array containing all change listener
public Iterator iterator()
Gets a snapshot of the current constant meta classes and returns it as Iterator. Modifications done using this Iterator will not cause a ConcurrentModificationException. If a MetaClass is removed using this Iterator, then the MetaClass will only be removed if the MetaClass was not replaced by another MetaClass in the meantime. If a MetaClass is added while using this Iterator, then it will be part of the Iteration. If a MetaClass replaces another constant meta class, then the Iteration might show two meta classes for the same class.
Note: This Iterator may not used with multiple threads.
- Returns:
- Iterator for the constant meta classes
public void removeMetaClass(Class theClass)
Removes a cached MetaClass from the registry
- Parameters:
theClass
- The Java class of the MetaClass to remove
public void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Removes a meta class change listener for constant meta classes
- Parameters:
listener
- - the update listener
public void setMetaClass(Class theClass, MetaClass theMetaClass)
Adds a metaclass to the registry for the given class
- Parameters:
theClass
- The classtheMetaClass
- The MetaClass for theClass
public void setMetaClassCreationHandle(MetaClassCreationHandle handle)
Sets the MetaClassCreationHandle instance that is responsible for constructing instances
- Parameters:
handle
- The handle instance
© 2003-2022 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/4.0.0/html/gapi/groovy/lang/MetaClassRegistry.html