groovy.lang
Interface MetaClassRegistry

All Known Implementing Classes:
MetaClassRegistryImpl

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

Author:
John Wilson, Graeme Rocher, Jochen Theodorou
See Also:
MetaClass

Nested Class Summary
Modifier and Type Interface and Description
static class MetaClassRegistry.MetaClassCreationHandle
          Class used as base for the creation of MetaClass implementations.
 
Method Summary
Modifier and Type Method and Description
 void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
          adds a ConstantMetaClassChangeListener
 MetaClass getMetaClass(Class theClass)
           
 MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
          Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances
 MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
          Returns all registered ConstantMetaClassChangeListener objects.
 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 ConstantMetaClassChangeListener
 void setMetaClass(Class theClass, MetaClass theMetaClass)
           
 void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
          Sets the MetaClassCreationHandle instance that is responsible for constructing instances
 

Method Detail

getMetaClass

MetaClass getMetaClass(Class theClass)

setMetaClass

void setMetaClass(Class theClass,
                  MetaClass theMetaClass)

removeMetaClass

void removeMetaClass(Class theClass)
Removes a cached MetaClass from the registry

Parameters:
theClass - The Java class of the MetaClass to remove

getMetaClassCreationHandler

MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances

Returns:
The MetaClassCreationHandle instance

setMetaClassCreationHandle

void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
Sets the MetaClassCreationHandle instance that is responsible for constructing instances

Parameters:
handle - The handle instance

addMetaClassRegistryChangeEventListener

void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
adds a ConstantMetaClassChangeListener

Parameters:
listener - - the update listener

removeMetaClassRegistryChangeEventListener

void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
removes a ConstantMetaClassChangeListener

Parameters:
listener - - the update listener

getMetaClassRegistryChangeEventListeners

MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
Returns all registered ConstantMetaClassChangeListener objects.

Returns:
an array containing all change listener

iterator

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 ConcurrentMoidificationExcpetion. 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.
This Iterator may not used in multiple threads.

Returns:
Iterator for the constant meta classes

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