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

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

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