org.eclipse.pde.core.target

## Interface ITargetDefinition

    public interface ITargetDefinition

Defines a target platform. A target platform is a collection of bundles and features configured for a specific environment.

Since:
  3.8
See Also:
  `Use the target platform service to work with target definitions`
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
`TargetBundle[]` `getAllBundles()` Returns a list of all resolved bundles in this target definition or `null`.
`TargetFeature[]` `getAllFeatures()` Returns the list of feature models available in this target or `null` if this target has not been resolved.
`String` `getArch()` Returns the identifier of the architecture this target is configured for, or `null` to default to the running architecture.
`TargetBundle[]` `getBundles()` Returns all bundles included in this target definition or `null` if this container is not resolved.
`Document` `getDocument()` Returns the Document that represents this target, or `null` if none
`ITargetHandle` `getHandle()` Returns a handle to this target definition.
`NameVersionDescriptor[]` `getImplicitDependencies()` Returns the implicit dependencies set on this target or `null` if none.
`NameVersionDescriptor[]` `getIncluded()` Returns a list of descriptors that filter the resolved plug-ins in this target.
`IPath` `getJREContainer()` Returns JRE container path that this target definition should be built against, or `null` if the workspace default JRE should be used.
`String` `getName()` Returns the name of this target, or `null` if none
`String` `getNL()` Returns the identifier of the locale this target is configured for, or `null` for default.
`String` `getOS()` Returns the identifier of the operating system this target is configured for, possibly `null`.
`String` `getProgramArguments()` Returns any program arguments that should be used when launching this target or `null` if none.
`IStatus` `getStatus()` Returns a `MultiStatus` containing all problems with this target.
`ITargetLocation[]` `getTargetLocations()` Returns the locations defined by this target, possible `null`.
`String` `getVMArguments()` Returns any VM arguments that should be used when launching this target or `null` if none.
`String` `getWS()` Returns the identifier of the window system this target is configured for, possibly `null`.
`boolean` `isResolved()` Returns whether all `ITargetLocation`s in this target currently in a resolved state.
`IStatus` `resolve(IProgressMonitor monitor)` Resolves all contents of this target definition by resolving each `ITargetLocation` in this target definition.
`void` `setArch(String arch)` Sets the architecture this target is configured for, or `null` to default to the running architecture.
`void` `setDocument(Document document)` Sets the XML document that stores the state of this target.
`void` `setImplicitDependencies(NameVersionDescriptor[] bundles)` Sets implicit dependencies for this target.
`void` `setIncluded(NameVersionDescriptor[] included)` Sets a list of descriptors to filter the resolved plug-ins in this target.
`void` `setJREContainer(IPath containerPath)` Sets the JRE that this target definition should be built against, or `null` to use the workspace default JRE.
`void` `setName(String name)` Sets the name of this target.
`void` `setNL(String nl)` Sets the locale this target is configured for or `null` for default.
`void` `setOS(String os)` Sets the operating system this target is configured for or `null` to default to the running operating system.
`void` `setProgramArguments(String args)` Sets any program arguments that should be used when launching this target or `null` if none.
`void` `setTargetLocations(ITargetLocation[] containers)` Sets the locations in this target definition or `null` if none.
`void` `setVMArguments(String args)` Sets any VM arguments that should be used when launching this target or `null` if none.
`void` `setWS(String ws)` Sets the window system this target is configured for or `null` to default to the running window system.

### Method Detail

#### resolve

    IStatus resolve(IProgressMonitor monitor)

Resolves all contents of this target definition by resolving each `ITargetLocation` in this target definition.

Returns a `MultiStatus` containing any non-OK statuses produced when resolving each `ITargetLocation`. An OK status will be returned if no non-OK statuses are returned from the locations. A CANCEL status will be returned if the monitor is cancelled.

For more information on how a target resolves, see `ITargetLocation.resolve(ITargetDefinition, IProgressMonitor)`

Parameters:
  `monitor` - progress monitor or `null`
Returns:
  resolution multi-status

#### isResolved

    boolean isResolved()

Returns whether all `ITargetLocation`s in this target currently in a resolved state.

Returns:
  `true` if all locations are currently resolved

#### setDocument

    void setDocument(Document document)

Sets the XML document that stores the state of this target. The document is updated with each setter that has an affect on the target file source.

Parameters:
  `document` - xml document or `null`
Since:
  3.12

#### getDocument

    Document getDocument()

Returns the Document that represents this target, or `null` if none

Returns:
  document or `null`
Since:
  3.12

#### getBundles

    TargetBundle[] getBundles()

Returns all bundles included in this target definition or `null` if this container is not resolved. Takes all the bundles available from the set target locations (returned by `getAllBundles()` and applies the filters (returned by `getIncluded()`) to determine the final list of bundles in this target.

Some of the returned bundles may have non-OK statuses. These bundles may be missing some information (location, version, source target). To get a bundle's status call `TargetBundle.getStatus()`. Calling `getStatus()` will return all problems in this target definition.

Returns:
  resolved bundles or `null`

#### getAllBundles

    TargetBundle[] getAllBundles()

Returns a list of all resolved bundles in this target definition or `null`. Does not filter based on any filters (`getIncluded()`. Returns `null` if this target has not been resolved. Use `getBundles()` to get the filtered list of bundles.

Some of the returned bundles may have non-OK statuses. These bundles may be missing some information (location, version, source target). To get a bundle's status call `TargetBundle.getStatus()`. Calling `getStatus()` will return all problems in this target definition.

Returns:
  collection of resolved bundles or `null`

#### getAllFeatures

    TargetFeature[] getAllFeatures()

Returns the list of feature models available in this target or `null` if this target has not been resolved.

Returns:
  collection of feature models or `null`

#### getStatus

    IStatus getStatus()

Returns a `MultiStatus` containing all problems with this target. Returns an OK status if there are no problems. Returns `null` if this target has not been resolved.

The returned status will include all non-OK statuses returned by `resolve(IProgressMonitor)` as well as any non-OK statuses found in `TargetBundle`s returned by `getBundles()`. For more information on the statuses that can be returned see `ITargetLocation.getStatus()` and `TargetBundle.getStatus()`.

Returns:
  `MultiStatus` containing all problems with this target or `null`

#### getHandle

    ITargetHandle getHandle()

Returns a handle to this target definition.

Returns:
  target handle

#### getName

    String getName()

Returns the name of this target, or `null` if none

Returns:
  name or `null`

#### setName

    void setName(String name)

Sets the name of this target.

Parameters:
  `name` - target name or `null`

#### getTargetLocations

    ITargetLocation[] getTargetLocations()

Returns the locations defined by this target, possible `null`.

Returns:
  target locations or `null`

#### setTargetLocations

    void setTargetLocations(ITargetLocation[] containers)

Sets the locations in this target definition or `null` if none.

Parameters:
  `containers` - target locations or `null`

#### getIncluded

    NameVersionDescriptor[] getIncluded()

Returns a list of descriptors that filter the resolved plug-ins in this target. The list may include both plug-ins and features. The returned descriptors will have an id, may have a version and will have either `NameVersionDescriptor.TYPE_FEATURE` or `NameVersionDescriptor.TYPE_PLUGIN` as their type. If the target is set to include all units (no filtering is being done), this method will return `null`.

Returns:
  list of name version descriptors or `null`
See Also:
  `getBundles()`, `setIncluded(NameVersionDescriptor[])`

#### setIncluded

    void setIncluded(NameVersionDescriptor[] included)

Sets a list of descriptors to filter the resolved plug-ins in this target. The list may include both plug-ins and features. To include all plug-ins in the target, pass `null` as the argument.

The descriptions passed to this method must have an ID set. The version may be `null` to include any version of the matches the ID. Only descriptors with a type of `NameVersionDescriptor.TYPE_FEATURE` or `NameVersionDescriptor.TYPE_PLUGIN` will be considered.

Parameters:
  `included` - list of descriptors to include in the target or `null` to include all plug-ins
See Also:
  `getBundles()`, `getIncluded()`

#### getJREContainer

    IPath getJREContainer()

Returns JRE container path that this target definition should be built against, or `null` if the workspace default JRE should be used. JavaRuntime can be used to resolve JRE's and execution environments from a container path.

Returns:
  JRE container path or `null`
See Also:
  `JavaRuntime`

#### setJREContainer

    void setJREContainer(IPath containerPath)

Sets the JRE that this target definition should be built against, or `null` to use the workspace default JRE. JavaRuntime should be used to generate and parse JRE container paths.

Parameters:
  `containerPath` - JRE container path
See Also:
  `JavaRuntime`

#### getOS

    String getOS()

Returns the identifier of the operating system this target is configured for, possibly `null`.

Returns:
  operating system identifier or `null` to default to the running operating system

#### setOS

    void setOS(String os)

Sets the operating system this target is configured for or `null` to default to the running operating system.

Parameters:
  `os` - operating system identifier - one of the operating system constants defined by `Constants` or `null` to default to the running operating system

#### getWS

    String getWS()

Returns the identifier of the window system this target is configured for, possibly `null`.

Returns:
  window system identifier - one of the window system constants defined by `Constants`, or `null` to default to the running window system

#### setWS

    void setWS(String ws)

Sets the window system this target is configured for or `null` to default to the running window system.

Parameters:
  `ws` - window system identifier or `null` to default to the running window system

#### getArch

    String getArch()

Returns the identifier of the architecture this target is configured for, or `null` to default to the running architecture.

Returns:
  architecture identifier - one of the architecture constants defined by `Constants` or `null` to default to the running architecture

#### setArch

    void setArch(String arch)

Sets the architecture this target is configured for, or `null` to default to the running architecture.

Parameters:
  `arch` - architecture identifier or `null` to default to the running architecture.

#### getNL

    String getNL()

Returns the identifier of the locale this target is configured for, or `null` for default.

Returns:
  locale identifier or `null` for default

#### setNL

    void setNL(String nl)

Sets the locale this target is configured for or `null` for default.

Parameters:
  `nl` - locale identifier or `null` for default

#### getProgramArguments

    String getProgramArguments()

Returns any program arguments that should be used when launching this target or `null` if none.

Returns:
  program arguments or `null` if none

#### setProgramArguments

    void setProgramArguments(String args)

Sets any program arguments that should be used when launching this target or `null` if none.

Parameters:
  `args` - program arguments or `null`

#### getVMArguments

    String getVMArguments()

Returns any VM arguments that should be used when launching this target or `null` if none.

Returns:
  VM arguments or `null` if none

#### setVMArguments

    void setVMArguments(String args)

Sets any VM arguments that should be used when launching this target or `null` if none.

Parameters:
  `args` - VM arguments or `null`

#### setImplicitDependencies

    void setImplicitDependencies(NameVersionDescriptor[] bundles)

Sets implicit dependencies for this target. Bundles in this collection are always considered by PDE when computing plug-in dependencies. Only symbolic names need to be specified in the given descriptors.

Parameters:
  `bundles` - implicit dependencies or `null` if none

#### getImplicitDependencies

    NameVersionDescriptor[] getImplicitDependencies()

Returns the implicit dependencies set on this target or `null` if none.

Returns:
  implicit dependencies or `null`