Groovy 2.2.0

groovy.lang
[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

Authors:
John Wilson
Graeme Rocher
Jochen Theodorou
See Also:
MetaClass


Nested Class Summary
class MetaClassRegistry.MetaClassCreationHandle

Class used as base for the creation of MetaClass implementations.

 
Method Summary
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)

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)

void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)

Sets the MetaClassCreationHandle instance that is responsible for constructing instances

 

Method Detail

addMetaClassRegistryChangeEventListener

public void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
adds a meta class change listener for constant meta classes
Parameters:
listener - - the update listener


addNonRemovableMetaClassRegistryChangeEventListener

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


getMetaClass

public MetaClass getMetaClass(Class theClass)


getMetaClassCreationHandler

public MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances
Returns:
The MetaClassCreationHandle instance


getMetaClassRegistryChangeEventListeners

public MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
Returns all registered class change listener for constant meta classes.
Returns:
an array containing all change listener


iterator

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


removeMetaClass

public void removeMetaClass(Class theClass)
Removes a cached MetaClass from the registry
Parameters:
theClass - The Java class of the MetaClass to remove


removeMetaClassRegistryChangeEventListener

public void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
removes a meta class change listener for constant meta classes
Parameters:
listener - - the update listener


setMetaClass

public void setMetaClass(Class theClass, MetaClass theMetaClass)


setMetaClassCreationHandle

public void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
Sets the MetaClassCreationHandle instance that is responsible for constructing instances
Parameters:
handle - The handle instance


 

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