Package groovy.lang

## Class MetaClassRegistryChangeEvent

- java.lang.Object
- - java.util.EventObject
  - - groovy.lang.MetaClassRegistryChangeEvent

- All Implemented Interfaces:
    `java.io.Serializable`

      public class MetaClassRegistryChangeEvent
      extends java.util.EventObject

  An event used to propagate meta class updates
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class java.util.EventObject

      `source`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MetaClassRegistryChangeEvent​(java.lang.Object source, java.lang.Object instance, java.lang.Class clazz, MetaClass oldMetaClass, MetaClass newMetaClass)` | Constructs a new MetaClassRegistryChangeEvent Object

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Class` | `getClassToUpdate()` | Get the class that is updated.
    `java.lang.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.

    - ### Methods inherited from class java.util.EventObject

      `getSource, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MetaClassRegistryChangeEvent

          public MetaClassRegistryChangeEvent​(java.lang.Object source,
                                              java.lang.Object instance,
                                              java.lang.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

    - #### getClassToUpdate

          public java.lang.Class getClassToUpdate()

      Get the class that is updated.
      Returns:
        The updated class

    - #### getNewMetaClass

          public MetaClass getNewMetaClass()

      Get the new MetaClass
      Returns:
        The new MetaClass

    - #### getOldMetaClass

          public MetaClass getOldMetaClass()

      Get the old MetaClass
      Returns:
        The old MetaClass

    - #### isPerInstanceMetaClassChange

          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

    - #### getInstance

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

    - #### getRegistry

          public MetaClassRegistry getRegistry()

      Get the MetaClassRegistry that originates this change
      Returns:
        the source MetaClassRegistry