Package org.eclipse.pde.core

## Interface IModelChangeProvider

All Known Subinterfaces:
  `IBuildModel`, `IExtensionsModel`, `IFragmentModel`, `IPluginModel`, `IPluginModelBase`, `ISharedExtensionsModel`, `ISharedPluginModel`

    public interface IModelChangeProvider

Classes that implement this interface are capable of notifying listeners about model changes. Interested parties should implement `IModelChangedListener` and add as listeners to be able to receive change notification.

Since:
  2.0
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addModelChangedListener​(IModelChangedListener listener)` Adds the listener to the list of listeners that will be notified on model changes.
`void` `fireModelChanged​(IModelChangedEvent event)` Delivers change event to all the registered listeners.
`void` `fireModelObjectChanged​(Object object, String property, Object oldValue, Object newValue)` Notifies listeners that a property of a model object changed.
`void` `removeModelChangedListener​(IModelChangedListener listener)` Takes the listener off the list of registered change listeners.

### Method Detail

#### addModelChangedListener

    void addModelChangedListener​(IModelChangedListener listener)

Adds the listener to the list of listeners that will be notified on model changes.

Parameters:
  `listener` - a model change listener to be added

#### fireModelChanged

    void fireModelChanged​(IModelChangedEvent event)

Delivers change event to all the registered listeners.

Parameters:
  `event` - a change event that will be passed to all the listeners

#### fireModelObjectChanged

    void fireModelObjectChanged​(Object object,
                                String property,
                                Object oldValue,
                                Object newValue)

Notifies listeners that a property of a model object changed. This is a utility method that will create a model event and fire it.

Parameters:
  `object` - an affected model object
  `property` - name of the property that has changed
  `oldValue` - the old value of the property
  `newValue` - the new value of the property

#### removeModelChangedListener

    void removeModelChangedListener​(IModelChangedListener listener)

Takes the listener off the list of registered change listeners.

Parameters:
  `listener` - a model change listener to be removed