Package 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
    • Method Detail

      • getMetaClass

        MetaClass getMetaClass​(java.lang.Class theClass)
      • setMetaClass

        void setMetaClass​(java.lang.Class theClass,
                          MetaClass theMetaClass)
      • removeMetaClass

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

        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