Eclipse Platform
Release 3.1

org.eclipse.core.runtime
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.

public interface IPluginPrerequisite

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.

This interface is not intended to be implemented by developers.

See Also:
IPluginDescriptor.getPluginPrerequisites()

Method Summary
 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();
 
 String getUniqueIdentifier()
          Deprecated. Given a manifest element equivalent of a plug-in prerequisite (see the class comment), this method is replaced by:
     element.getValue();
 
 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();
 
 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);
 
 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;	
 
 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;
 
 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;
 
 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;
 
 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;
 
 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);
 
 

Method Detail

getResolvedVersionIdentifier

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.