groovy.lang

## Class MetaClassRegistryChangeEvent

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

- All Implemented Interfaces:
    Serializable

      public class MetaClassRegistryChangeEvent
      extends 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 and Description
    `MetaClassRegistryChangeEvent(Object source, Object instance, Class clazz, MetaClass oldMetaClass, MetaClass newMetaClass)` Constructs a new MetaClassRegistryChangeEvent Object

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method 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.

    - ### 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(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

    - #### getClassToUpdate

          public 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 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