[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 class -
theMetaClass
- 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-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/groovy/lang/MetaClassRegistry.html