org.eclipse.pde.core.plugin

## Class ModelEntry

- java.lang.Object
- - org.eclipse.core.runtime.PlatformObject
  - - org.eclipse.pde.core.plugin.ModelEntry

All Implemented Interfaces:
  IAdaptable

    public class ModelEntry
    extends PlatformObject

A ModelEntry object has an ID and keeps track of all workspace plug-ins and target plug-ins that have that ID.

This class is not meant to be extended or instantiated by clients.

Since:
  3.3
Restriction:
  This class is not intended to be subclassed by clients.
Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`protected ArrayList<IPluginModelBase>` `fExternalEntries` The list of external models with the same entry ID
`protected ArrayList<IPluginModelBase>` `fWorkspaceEntries` The list of workspace models with the same entry ID

### Constructor Summary

Constructors
Constructor and Description
`ModelEntry(String id)` Constructor

### Method Summary

All Methods Instance Methods Concrete Methods
`IPluginModelBase[]` `getActiveModels()` Returns all the plug-ins, with the model entry ID, that are currently active.
`IPluginModelBase[]` `getExternalModels()` Returns all plug-ins in the target platform that have the model entry ID.
`String` `getId()` Returns the model entry ID
`IPluginModelBase` `getModel()` Returns the plug-in model for the best match plug-in with the given ID.
`IPluginModelBase` `getModel(BundleDescription desc)` Return the plug-in model associated with the given bundle description or `null` if none is found.
`IPluginModelBase[]` `getWorkspaceModels()` Returns all the workspace plug-ins that have the model entry ID
`boolean` `hasExternalModels()` Returns `true` if there are target plug-ins associated with the ID of this model entry; `false`otherwise.
`boolean` `hasWorkspaceModels()` Returns `true` if there are workspace plug-ins associated with the ID of this model entry; `false`otherwise.

### Methods inherited from class org.eclipse.core.runtime.PlatformObject

`getAdapter`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### fWorkspaceEntries

    protected ArrayList<IPluginModelBase> fWorkspaceEntries

The list of workspace models with the same entry ID

#### fExternalEntries

    protected ArrayList<IPluginModelBase> fExternalEntries

The list of external models with the same entry ID

### Constructor Detail

#### ModelEntry

    public ModelEntry(String id)

Constructor

Parameters:
  `id` - the entry ID

### Method Detail

#### getWorkspaceModels

    public IPluginModelBase[] getWorkspaceModels()

Returns all the workspace plug-ins that have the model entry ID

Returns:
  an array of workspace plug-ins that have the model entry ID

#### getExternalModels

    public IPluginModelBase[] getExternalModels()

Returns all plug-ins in the target platform that have the model entry ID. The returned result contains both plug-ins that are enabled (ie. checked on the Plug-in Development > Target Platform preference page) and disabled.

Returns:
  an array of plug-ins in the target platform that have the model entry ID

#### getModel

    public IPluginModelBase getModel()

Returns the plug-in model for the best match plug-in with the given ID. A null value is returned if no such bundle is found in the workspace or target platform.

A workspace plug-in is always preferably returned over a target plug-in. A plug-in that is checked/enabled on the Target Platform preference page is always preferably returned over a target plug-in that is unchecked/disabled.

In the case of a tie among workspace plug-ins or among target plug-ins, the plug-in with the highest version is returned.

In the case of a tie among more than one suitable plug-in that have the same version, one of those plug-ins is randomly returned.

Returns:
  the plug-in model for the best match plug-in with the given ID

#### getActiveModels

    public IPluginModelBase[] getActiveModels()

Returns all the plug-ins, with the model entry ID, that are currently active.

Workspace plug-ins are always active. Target plug-ins are only active if:

- they are checked on the Plug-in Development > Target Platform preference page
- there does not exist a workspace plug-in that has the same ID

Returns:
  an array of the currently active plug-ins with the model entry ID

#### getId

    public String getId()

Returns the model entry ID

Returns:
  the model entry ID

#### getModel

    public IPluginModelBase getModel(BundleDescription desc)

Return the plug-in model associated with the given bundle description or `null` if none is found.

Parameters:
  `desc` - the given bundle description
Returns:
  the plug-in model associated with the given bundle description if such a model exists.

#### hasWorkspaceModels

    public boolean hasWorkspaceModels()

Returns `true` if there are workspace plug-ins associated with the ID of this model entry; `false`otherwise.

Returns:
  `true` if there are workspace plug-ins associated with the ID of this model entry; `false`otherwise.

#### hasExternalModels

    public boolean hasExternalModels()

Returns `true` if there are target plug-ins associated with the ID of this model entry; `false`otherwise.

Returns:
  `true` if there are target plug-ins associated with the ID of this model entry; `false`otherwise.