Class Specification


  • public final class Specification
    extends java.lang.Object

    Utility class that represents either an available "Optional Package" (formerly known as "Standard Extension") as described in the manifest of a JAR file, or the requirement for such an optional package.

    For more information about optional packages, see the document Optional Package Versioning in the documentation bundle for your Java2 Standard Edition package, in file guide/extensions/versioning.html.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Compatibility COMPATIBLE
      Enum indicating that extension is compatible with other Package Specification.
      static java.util.jar.Attributes.Name IMPLEMENTATION_TITLE
      Manifest Attribute Name object for IMPLEMENTATION_TITLE.
      static java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR
      Manifest Attribute Name object for IMPLEMENTATION_VENDOR.
      static java.util.jar.Attributes.Name IMPLEMENTATION_VERSION
      Manifest Attribute Name object for IMPLEMENTATION_VERSION.
      static Compatibility INCOMPATIBLE
      This enum indicates that an extension is incompatible with other Package Specification in ways other than other enums indicate.
      static Compatibility REQUIRE_IMPLEMENTATION_CHANGE
      Enum indicating that extension requires an upgrade of implementation to be compatible with other Package Specification.
      static Compatibility REQUIRE_SPECIFICATION_UPGRADE
      Enum indicating that extension requires an upgrade of specification to be compatible with other Package Specification.
      static Compatibility REQUIRE_VENDOR_SWITCH
      Enum indicating that extension requires a vendor switch to be compatible with other Package Specification.
      static java.util.jar.Attributes.Name SPECIFICATION_TITLE
      Manifest Attribute Name object for SPECIFICATION_TITLE.
      static java.util.jar.Attributes.Name SPECIFICATION_VENDOR
      Manifest Attribute Name object for SPECIFICATION_VENDOR.
      static java.util.jar.Attributes.Name SPECIFICATION_VERSION
      Manifest Attribute Name object for SPECIFICATION_VERSION.
    • Constructor Summary

      Constructors 
      Constructor Description
      Specification​(java.lang.String specificationTitle, java.lang.String specificationVersion, java.lang.String specificationVendor, java.lang.String implementationTitle, java.lang.String implementationVersion, java.lang.String implementationVendor)
      The constructor to create Package Specification object.
      Specification​(java.lang.String specificationTitle, java.lang.String specificationVersion, java.lang.String specificationVendor, java.lang.String implementationTitle, java.lang.String implementationVersion, java.lang.String implementationVendor, java.lang.String[] sections)
      The constructor to create Package Specification object.
    • Field Detail

      • SPECIFICATION_TITLE

        public static final java.util.jar.Attributes.Name SPECIFICATION_TITLE
        Manifest Attribute Name object for SPECIFICATION_TITLE.
      • SPECIFICATION_VERSION

        public static final java.util.jar.Attributes.Name SPECIFICATION_VERSION
        Manifest Attribute Name object for SPECIFICATION_VERSION.
      • SPECIFICATION_VENDOR

        public static final java.util.jar.Attributes.Name SPECIFICATION_VENDOR
        Manifest Attribute Name object for SPECIFICATION_VENDOR.
      • IMPLEMENTATION_TITLE

        public static final java.util.jar.Attributes.Name IMPLEMENTATION_TITLE
        Manifest Attribute Name object for IMPLEMENTATION_TITLE.
      • IMPLEMENTATION_VERSION

        public static final java.util.jar.Attributes.Name IMPLEMENTATION_VERSION
        Manifest Attribute Name object for IMPLEMENTATION_VERSION.
      • IMPLEMENTATION_VENDOR

        public static final java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR
        Manifest Attribute Name object for IMPLEMENTATION_VENDOR.
      • COMPATIBLE

        public static final Compatibility COMPATIBLE
        Enum indicating that extension is compatible with other Package Specification.
      • REQUIRE_SPECIFICATION_UPGRADE

        public static final Compatibility REQUIRE_SPECIFICATION_UPGRADE
        Enum indicating that extension requires an upgrade of specification to be compatible with other Package Specification.
      • REQUIRE_VENDOR_SWITCH

        public static final Compatibility REQUIRE_VENDOR_SWITCH
        Enum indicating that extension requires a vendor switch to be compatible with other Package Specification.
      • REQUIRE_IMPLEMENTATION_CHANGE

        public static final Compatibility REQUIRE_IMPLEMENTATION_CHANGE
        Enum indicating that extension requires an upgrade of implementation to be compatible with other Package Specification.
      • INCOMPATIBLE

        public static final Compatibility INCOMPATIBLE
        This enum indicates that an extension is incompatible with other Package Specification in ways other than other enums indicate. For example, the other Package Specification may have a different ID.
    • Constructor Detail

      • Specification

        public Specification​(java.lang.String specificationTitle,
                             java.lang.String specificationVersion,
                             java.lang.String specificationVendor,
                             java.lang.String implementationTitle,
                             java.lang.String implementationVersion,
                             java.lang.String implementationVendor)
        The constructor to create Package Specification object. Note that every component is allowed to be specified but only the specificationTitle is mandatory.
        Parameters:
        specificationTitle - the name of specification.
        specificationVersion - the specification Version.
        specificationVendor - the specification Vendor.
        implementationTitle - the title of implementation.
        implementationVersion - the implementation Version.
        implementationVendor - the implementation Vendor.
      • Specification

        public Specification​(java.lang.String specificationTitle,
                             java.lang.String specificationVersion,
                             java.lang.String specificationVendor,
                             java.lang.String implementationTitle,
                             java.lang.String implementationVersion,
                             java.lang.String implementationVendor,
                             java.lang.String[] sections)
        The constructor to create Package Specification object. Note that every component is allowed to be specified but only the specificationTitle is mandatory.
        Parameters:
        specificationTitle - the name of specification.
        specificationVersion - the specification Version.
        specificationVendor - the specification Vendor.
        implementationTitle - the title of implementation.
        implementationVersion - the implementation Version.
        implementationVendor - the implementation Vendor.
        sections - the sections/packages that Specification applies to.
    • Method Detail

      • getSpecifications

        public static Specification[] getSpecifications​(java.util.jar.Manifest manifest)
                                                 throws java.text.ParseException
        Return an array of Package Specification objects. If there are no such optional packages, a zero-length array is returned.
        Parameters:
        manifest - Manifest to be parsed
        Returns:
        the Package Specifications extensions in specified manifest
        Throws:
        java.text.ParseException - if the attributes of the specifications cannot be parsed according to their expected formats.
      • getSpecificationTitle

        public java.lang.String getSpecificationTitle()
        Get the title of the specification.
        Returns:
        the title of specification
      • getSpecificationVendor

        public java.lang.String getSpecificationVendor()
        Get the vendor of the specification.
        Returns:
        the vendor of the specification.
      • getImplementationTitle

        public java.lang.String getImplementationTitle()
        Get the title of the specification.
        Returns:
        the title of the specification.
      • getSpecificationVersion

        public DeweyDecimal getSpecificationVersion()
        Get the version of the specification.
        Returns:
        the version of the specification.
      • getImplementationVendor

        public java.lang.String getImplementationVendor()
        Get the vendor of the extensions implementation.
        Returns:
        the vendor of the extensions implementation.
      • getImplementationVersion

        public java.lang.String getImplementationVersion()
        Get the version of the implementation.
        Returns:
        the version of the implementation.
      • getSections

        public java.lang.String[] getSections()
        Return an array containing sections to which specification applies or null if relevant to no sections.
        Returns:
        an array containing sections to which specification applies or null if relevant to no sections.
      • getCompatibilityWith

        public Compatibility getCompatibilityWith​(Specification other)
        Return a Compatibility enum indicating the relationship of this Package Specification with the specified Extension.
        Parameters:
        other - the other specification
        Returns:
        the enum indicating the compatibility (or lack thereof) of specified Package Specification
      • isCompatibleWith

        public boolean isCompatibleWith​(Specification other)
        Return true if the specified package is satisfied by this Specification. Otherwise, return false.
        Parameters:
        other - the specification
        Returns:
        true if the specification is compatible with this specification
      • toString

        public java.lang.String toString()
        Return a String representation of this object.
        Overrides:
        toString in class java.lang.Object
        Returns:
        string representation of object.