Package: groovy.lang

## [Java] Class MetaClassRegistryChangeEvent

- groovy.lang.MetaClassRegistryChangeEvent

-     public class MetaClassRegistryChangeEvent
      extends EventObject

  An event used to propagate metaclass updates

- - ### 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
    --- | --- | ---
    `` | `public Class` | `getClassToUpdate()` Get the class that is updated.
    `` | `public Object` | `getInstance()` Returns the instance this event is for.
    `` | `public MetaClass` | `getNewMetaClass()` Get the new MetaClass
    `` | `public MetaClass` | `getOldMetaClass()` Get the old MetaClass
    `` | `public MetaClassRegistry` | `getRegistry()` Get the MetaClassRegistry that originates this change
    `` | `public 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` | `equals, getClass, getSource, hashCode, notify, notifyAll, toString, 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 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