Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD

## 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(java.lang.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.
`java.util.Iterator` | `iterator()` gets a snapshot of the current constant meta classes and returns it as Iterator.
`void` | `removeMetaClass(java.lang.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(java.lang.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(java.lang.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 java.util.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.
  This Iterator may not used in multiple threads.
  Returns:
    Iterator for the constant meta classes

### removeMetaClass

    public void removeMetaClass(java.lang.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(java.lang.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

Groovy Documentation