# 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
Modifier and Type
Field
Description
`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
Description
`ModelEntry(String id)`
Constructor

## Method Summary

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

`getAdapter`

### Methods inherited from class Object

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

## Field Details

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

### ModelEntry

public ModelEntry(String id)
Constructor

Parameters:
  `id` - the entry ID

## Method Details

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