Package 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

Author:
  Jochen Theodorou
See Also:
  - Serialized Form

## Field Summary

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

`source`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
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 Details

### MetaClassRegistryChangeEvent

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 Details

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