Package: groovy.lang

## [Java] Class MetaClassRegistryChangeEvent

- groovy.lang.MetaClassRegistryChangeEvent

- An event used to propagate meta class updates

  Authors:
    Jochen Theodorou

- - ### Constructor Summary

    Constructors
    Constructor and description
    `MetaClassRegistryChangeEvent (Object source, Object instance, Class clazz, MetaClass oldMetaClass, MetaClass newMetaClass)` Constructs a new MetaClassRegistryChangeEvent Object

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `Class` | `getClassToUpdate()` Get the class that is updated.
    `` | `Object` | `getInstance()` Returns the instance this event is for.
    `` | `MetaClass` | `getNewMetaClass()` Get the new MetaClass
    `` | `MetaClass` | `getOldMetaClass()` Get the old MetaClass
    `` | `MetaClassRegistry` | `getRegistry()` Get the MetaClassRegistry that originates this change
    `` | `boolean` | `isPerInstanceMetaClassChange()` Determines if this event is for a change for a single instance or all instances of the Class.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class EventObject` | `toString, getSource, equals, hashCode, getClass, notify, notifyAll, wait, wait, wait`
    `class Object` | `equals, toString, hashCode, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### public MetaClassRegistryChangeEvent(Object source, Object instance, Class clazz, MetaClass oldMetaClass, MetaClass newMetaClass)

      Constructs a new MetaClassRegistryChangeEvent Object

      Parameters:
        `source` - The object the the event originates at.
        `instance` - Object instance the MetaClass change is on.
        `clazz` - The class that is affected by the registry change
        `oldMetaClass` - The old MetaClass
        `newMetaClass` - The new MetaClass

  - ### Method Detail

    - #### public Class getClassToUpdate()

      Get the class that is updated.

      Returns:
        The updated class

    - #### public Object getInstance()

      Returns the instance this event is for.

      Returns:
        the instance or null if this event is for a change for all instances of a class

    - #### public MetaClass getNewMetaClass()

      Get the new MetaClass

      Returns:
        The new MetaClass

    - #### public MetaClass getOldMetaClass()

      Get the old MetaClass

      Returns:
        The old MetaClass

    - #### public MetaClassRegistry getRegistry()

      Get the MetaClassRegistry that originates this change

      Returns:
        the source MetaClassRegistry

    - #### public boolean isPerInstanceMetaClassChange()

      Determines if this event is for a change for a single instance or all instances of the Class.

      Returns:
        whether this event is for a single instance