org.eclipse.pde.core

## Interface IModelProvider

    public interface IModelProvider

Classes that implement this interface are responsible for holding a table of models associated with the underlying objects. They have several responsibilities:

- To hold model objects in one place
- To allow requesters to connect to the models or to disconnect from them.
- To notify interested parties when models are added and removed.

Model providers are responsible for listening to the workspace, updating models whose underlying resources have been updated, and removing them from the table when those resources have been deleted.

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` `addModelProviderListener(IModelProviderListener listener)` Registers a listener that will be notified about changes in the managed models.
`IModel` `getModel(IFile file)` Returns the model for the provided file resource.
`void` `removeModelProviderListener(IModelProviderListener listener)` Deregisters a listener from notification.

### Method Detail

#### addModelProviderListener

    void addModelProviderListener(IModelProviderListener listener)

Registers a listener that will be notified about changes in the managed models.

Parameters:
  `listener` - the listener that will be registered

#### getModel

    IModel getModel(IFile file)

Returns the model for the provided file resource.

Parameters:
  `file` - the file resource we need the model for
Returns:
  the object that represents a structured representation of the file content

#### removeModelProviderListener

    void removeModelProviderListener(IModelProviderListener listener)

Deregisters a listener from notification.

Parameters:
  `listener` - the listener to be deregistered