[Java] 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

Nested classes
Modifiers Name Description
class MetaClassRegistry.MetaClassCreationHandle Class used as base for the creation of MetaClass implementations.

Properties Summary

Properties
Type Name and description
MetaClass metaClass

Methods Summary

Methods
Type Params Return Type Name and description
void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a meta class change listener for constant meta classes
void addNonRemovableMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a meta class change listener for constant meta classes.
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
MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances
MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
Returns all registered class change listener for constant meta classes.
Iterator iterator()
Gets a snapshot of the current constant meta classes and returns it as Iterator.
void removeMetaClass(Class theClass)
Removes a cached MetaClass from the registry
void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Removes a meta class change listener for constant meta classes
void setMetaClass(Class theClass, MetaClass theMetaClass)
Adds a metaclass to the registry for the given class
void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
Sets the MetaClassCreationHandle instance that is responsible for constructing instances

Property Detail

MetaClass metaClass

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 MetaClassRegistry.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(MetaClassRegistry.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/2.5.14/html/gapi/groovy/lang/MetaClassRegistry.html