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