Package org.eclipse.core.runtime

## Interface IPluginPrerequisite

    @Deprecated
    public interface IPluginPrerequisite

Deprecated.
In Eclipse 3.0 the plug-in prerequisite representation was changed. Clients of `IPluginPrerequisite` are directed to the headers associated with the relevant bundle. In particular, the `Require-Bundle` header contains all available information about the prerequisites of a plug-in. Having retrieved the header, the `ManifestElement` helper class can be used to parse the value and discover the individual prerequisite plug-ins. The various header attributes are defined in `Constants`.

For example,

        String header = bundle.getHeaders().get(Constants.REQUIRE_BUNDLE);
         ManifestElement[] elements = ManifestElement.parseHeader(
             Constants.REQUIRE_BUNDLE, header);
         if (elements == null)
             return;
         elements[0].getValue();   // the prerequisite plug-in id
         elements[0].getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE);   // the prerequisite plug-in version
         ...

See `IPluginDescriptor` for information on the relationship between plug-in descriptors and bundles.

This interface must only be used by plug-ins which explicitly require the org.eclipse.core.runtime.compatibility plug-in.

A prerequisite entry declared by a plug-in. The declaration causes classes defined by the prerequisite plug-in to be visible to the plug-in that declared the dependency.

See Also:
  `IPluginDescriptor.getPluginPrerequisites()`
Restriction:
  This interface is not intended to be implemented by clients. This interface is planned to be deleted, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=544339
Restriction:
  This interface is not intended to be extended by clients.
Restriction:
  This interface is not intended to be referenced by clients.

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`PluginVersionIdentifier` `getResolvedVersionIdentifier()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`String` `getUniqueIdentifier()` Deprecated. Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:
`PluginVersionIdentifier` `getVersionIdentifier()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`boolean` `isExported()` Deprecated. Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:
`boolean` `isMatchedAsCompatible()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`boolean` `isMatchedAsEquivalent()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`boolean` `isMatchedAsExact()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`boolean` `isMatchedAsGreaterOrEqual()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`boolean` `isMatchedAsPerfect()` Deprecated. Callers of this method should interrogate the current `State` of the platform.
`boolean` `isOptional()` Deprecated. Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:

### Method Detail

#### getResolvedVersionIdentifier

    @Deprecated
    PluginVersionIdentifier getResolvedVersionIdentifier()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         BundleDescription prereq = spec.getSupplier();

Returns the actual version identifier that is used at runtime to resolve this prerequisite dependency, or null, if the dependency is not resolved.

Returns:
  the plug-in version identifier, or null

#### getUniqueIdentifier

    @Deprecated
    String getUniqueIdentifier()

Deprecated.
Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:

         element.getValue();

Returns the plug-in identifier of the prerequisite plug-in.

Returns:
  the plug-in identifier

#### getVersionIdentifier

    @Deprecated
    PluginVersionIdentifier getVersionIdentifier()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         Version reqMinVersion = spec.getVersionRange().getMinimum();

Returns the version identifier of the prerequisite plug-in, or `null` if none.

Returns:
  the plug-in version identifier, or `null` if none was specified

#### isExported

    @Deprecated
    boolean isExported()

Deprecated.
Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:

         element.getAttribute(Constants.REPROVIDE_ATTRIBUTE);

Indicates whether this prerequisite plug-in is further exposed to any plug-ins that declare a dependency on this plug-in. This allows for chaining of dependencies. For example, if plug-in A depends on plug-in B which depends on plug-in C, the classes from C are typically visible to B, but not to A. A can get around this if either B explicitly exports its dependency on C, or A explicitly declares C as a prerequisite in addition to B.

Returns:
  `true` if this prerequisite plug-in is exposed, `false` otherwise

#### isMatchedAsGreaterOrEqual

    @Deprecated
    boolean isMatchedAsGreaterOrEqual()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         VersionRange versionRange = spec.getVersionRange();
         if (versionRange == null || versionRange.getMinimum() == null)
             return false;
         Version minimum = versionRange.getMinimum();
         Version maximum = versionRange.getMaximum() == null ? Version.maxVersion : versionRange.getMaximum();
         if (maximum.equals(Version.maxVersion))
             return true;
         return false;

Indicates that this plug-in prerequisite can be resolved against a configured plug-in with an identifier that is greater than or equal to it.

Returns:
  `true` if greater or equal match is allowed, `false` otherwise.
Since:
  2.0

#### isMatchedAsCompatible

    @Deprecated
    boolean isMatchedAsCompatible()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         VersionRange versionRange = spec.getVersionRange();
         if (versionRange == null || versionRange.getMinimum() == null)
             return false;
         Version minimum = versionRange.getMinimum();
         Version maximum = versionRange.getMaximum() == null ? Version.maxVersion : versionRange.getMaximum();
         if (!minimum.isInclusive() || maximum.isInclusive())
             return false;
         else if (minimum.getMajorComponent() == maximum.getMajorComponent() - 1)
             return true;
         return false;

Indicates that this plug-in prerequisite can be resolved against a configured plug-in with a compatible identifier.

Returns:
  `true` if compatible match is allowed, `false` if exact match is required.

#### isMatchedAsEquivalent

    @Deprecated
    boolean isMatchedAsEquivalent()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         VersionRange versionRange = spec.getVersionRange();
         if (versionRange == null || versionRange.getMinimum() == null)
             return false;
         Version minimum = versionRange.getMinimum();
         Version maximum = versionRange.getMaximum() == null ? Version.maxVersion : versionRange.getMaximum();
         if (!minimum.isInclusive() || maximum.isInclusive())
             return false;
         else if (minimum.getMajorComponent() == maximum.getMajorComponent() - 1)
             return false;
         else if (minimum.getMajorComponent() != maximum.getMajorComponent())
             return false;
         else if (minimum.getMinorComponent() == maximum.getMinorComponent() - 1)
             return true;
         return false;

Indicates that this plug-in prerequisite can only be resolved against a configured plug-in with an equivalent plug-in identifier.

Returns:
  `true` if only equivalent identifier match satisfies this dependency, `false` otherwise.
Since:
  2.0

#### isMatchedAsPerfect

    @Deprecated
    boolean isMatchedAsPerfect()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         VersionRange versionRange = spec.getVersionRange();
         if (versionRange == null || versionRange.getMinimum() == null)
             return false;
         Version minimum = versionRange.getMinimum();
         Version maximum = versionRange.getMaximum() == null ? Version.maxVersion : versionRange.getMaximum();
         if (minimum.equals(maximum))
             return true;
         return false;

Indicates that this plug-in prerequisite can only be resolved against a configured plug-in with a plug-in identifier that is perfectly equal.

Returns:
  `true` if only perfectly equal identifier match satisfies this dependency, `false` otherwise.
Since:
  2.0

#### isMatchedAsExact

    @Deprecated
    boolean isMatchedAsExact()

Deprecated.
Callers of this method should interrogate the current `State` of the platform. For example,

         State state = Platform.getPlatformAdmin().getState();
         BundleDescription bundle = state.getBundle("my plug-in id", my plug-in version);
         BundleSpecification spec = bundle.getRequiredBundle("required plug-in id");
         VersionRange versionRange = spec.getVersionRange();
         if (versionRange == null || versionRange.getMinimum() == null)
             return false;
         Version minimum = versionRange.getMinimum();
         Version maximum = versionRange.getMaximum() == null ? Version.maxVersion : versionRange.getMaximum();
         if (!minimum.isInclusive() || maximum.isInclusive())
             return false;
         else if (minimum.getMajorComponent() == maximum.getMajorComponent() - 1)
             return false;
         else if (minimum.getMajorComponent() != maximum.getMajorComponent())
             return false;
         else if (minimum.getMinorComponent() == maximum.getMinorComponent() - 1)
             return true;
         return false;

Indicates that this plug-in prerequisite can only be resolved against a configured plug-in with exactly the same plug-in identifier.

Returns:
  `true` if only exact identifier match satisfies this dependency, `false` if compatible plug-in will satisfy this dependency.

#### isOptional

    @Deprecated
    boolean isOptional()

Deprecated.
Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:

         "true".equals(element.getAttribute(Constants.OPTIONAL_ATTRIBUTE);

Indicates whether this plug-in prerequisite is optional. If a required (i.e., non-optional) prerequisite is missing, this plugin is disabled.

Returns:
  `true` if this prerequisite is optional, `false` otherwise