Class Extension


  • public final class Extension
    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 extension.
      static java.util.jar.Attributes.Name EXTENSION_LIST
      Manifest Attribute Name object for EXTENSION_LIST.
      static java.util.jar.Attributes.Name EXTENSION_NAME
      Manifest Attribute Name object for EXTENSION_NAME.
      static java.util.jar.Attributes.Name IMPLEMENTATION_URL
      Manifest Attribute Name object for IMPLEMENTATION_URL.
      static java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR
      Manifest Attribute Name object for IMPLEMENTATION_VENDOR.
      static java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR_ID
      Manifest Attribute Name object for IMPLEMENTATION_VENDOR_ID.
      static java.util.jar.Attributes.Name IMPLEMENTATION_VERSION
      Manifest Attribute Name object for IMPLEMENTATION_VERSION.
      static Compatibility INCOMPATIBLE
      Enum indicating that extension is incompatible with other extension in ways other than other enums indicate).
      static java.util.jar.Attributes.Name OPTIONAL_EXTENSION_LIST
      Name object for Optional-Extension-List manifest attribute used for declaring optional dependencies on installed extensions.
      static Compatibility REQUIRE_IMPLEMENTATION_UPGRADE
      Enum indicating that extension requires an upgrade of implementation to be compatible with other extension.
      static Compatibility REQUIRE_SPECIFICATION_UPGRADE
      Enum indicating that extension requires an upgrade of specification to be compatible with other extension.
      static Compatibility REQUIRE_VENDOR_SWITCH
      Enum indicating that extension requires a vendor switch to be compatible with other extension.
      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
      Extension​(java.lang.String extensionName, java.lang.String specificationVersion, java.lang.String specificationVendor, java.lang.String implementationVersion, java.lang.String implementationVendor, java.lang.String implementationVendorId, java.lang.String implementationURL)
      The constructor to create Extension object.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void addExtension​(Extension extension, java.lang.String prefix, java.util.jar.Attributes attributes)
      Add Extension to the specified manifest Attributes.
      static void addExtension​(Extension extension, java.util.jar.Attributes attributes)
      Add Extension to the specified manifest Attributes.
      static Extension[] getAvailable​(java.util.jar.Manifest manifest)
      Return an array of Extension objects representing optional packages that are available in the JAR file associated with the specified Manifest.
      Compatibility getCompatibilityWith​(Extension required)
      Return a Compatibility enum indicating the relationship of this Extension with the specified Extension.
      java.lang.String getExtensionName()
      Get the name of the extension.
      java.lang.String getImplementationURL()
      Get the url of the extensions implementation.
      java.lang.String getImplementationVendor()
      Get the vendor of the extensions implementation.
      java.lang.String getImplementationVendorID()
      Get the vendorID of the extensions implementation.
      DeweyDecimal getImplementationVersion()
      Get the version of the extensions implementation.
      static Extension[] getOptions​(java.util.jar.Manifest manifest)
      Return the set of Extension objects representing "Optional Packages" that the application declares they will use if present.
      static Extension[] getRequired​(java.util.jar.Manifest manifest)
      Return the set of Extension objects representing optional packages that are required by the application contained in the JAR file associated with the specified Manifest.
      java.lang.String getSpecificationVendor()
      Get the vendor of the extensions specification.
      DeweyDecimal getSpecificationVersion()
      Get the version of the extensions specification.
      boolean isCompatibleWith​(Extension required)
      Return true if the specified Extension (which represents an optional package required by an application) is satisfied by this Extension (which represents an optional package that is already installed.
      java.lang.String toString()
      Return a String representation of this object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • EXTENSION_LIST

        public static final java.util.jar.Attributes.Name EXTENSION_LIST
        Manifest Attribute Name object for EXTENSION_LIST.
      • OPTIONAL_EXTENSION_LIST

        public static final java.util.jar.Attributes.Name OPTIONAL_EXTENSION_LIST
        Name object for Optional-Extension-List manifest attribute used for declaring optional dependencies on installed extensions. Note that the dependencies declared by this method are not required for the library to operate but if present will be used. It is NOT part of the official "Optional Package" specification.
        See Also:
        Installed extension dependency
      • EXTENSION_NAME

        public static final java.util.jar.Attributes.Name EXTENSION_NAME
        Manifest Attribute Name object for EXTENSION_NAME.
      • 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_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.
      • IMPLEMENTATION_URL

        public static final java.util.jar.Attributes.Name IMPLEMENTATION_URL
        Manifest Attribute Name object for IMPLEMENTATION_URL.
      • IMPLEMENTATION_VENDOR_ID

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

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

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

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

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

        public static final Compatibility INCOMPATIBLE
        Enum indicating that extension is incompatible with other extension in ways other than other enums indicate). For example the other extension may have a different ID.
    • Constructor Detail

      • Extension

        public Extension​(java.lang.String extensionName,
                         java.lang.String specificationVersion,
                         java.lang.String specificationVendor,
                         java.lang.String implementationVersion,
                         java.lang.String implementationVendor,
                         java.lang.String implementationVendorId,
                         java.lang.String implementationURL)
        The constructor to create Extension object. Note that every component is allowed to be specified but only the extensionName is mandatory.
        Parameters:
        extensionName - the name of extension.
        specificationVersion - the specification Version of extension.
        specificationVendor - the specification Vendor of extension.
        implementationVersion - the implementation Version of extension.
        implementationVendor - the implementation Vendor of extension.
        implementationVendorId - the implementation VendorId of extension.
        implementationURL - the implementation URL of extension.
    • Method Detail

      • getAvailable

        public static Extension[] getAvailable​(java.util.jar.Manifest manifest)
        Return an array of Extension objects representing optional packages that are available in the JAR file associated with the specified Manifest. If there are no such optional packages, a zero-length array is returned.
        Parameters:
        manifest - Manifest to be parsed
        Returns:
        the "available" extensions in specified manifest
      • getRequired

        public static Extension[] getRequired​(java.util.jar.Manifest manifest)
        Return the set of Extension objects representing optional packages that are required by the application contained in the JAR file associated with the specified Manifest. If there are no such optional packages, a zero-length list is returned.
        Parameters:
        manifest - Manifest to be parsed
        Returns:
        the dependencies that are specified in manifest
      • getOptions

        public static Extension[] getOptions​(java.util.jar.Manifest manifest)
        Return the set of Extension objects representing "Optional Packages" that the application declares they will use if present. If there are no such optional packages, a zero-length list is returned.
        Parameters:
        manifest - Manifest to be parsed
        Returns:
        the optional dependencies that are specified in manifest
      • addExtension

        public static void addExtension​(Extension extension,
                                        java.util.jar.Attributes attributes)
        Add Extension to the specified manifest Attributes.
        Parameters:
        attributes - the attributes of manifest to add to
        extension - the extension
      • addExtension

        public static void addExtension​(Extension extension,
                                        java.lang.String prefix,
                                        java.util.jar.Attributes attributes)
        Add Extension to the specified manifest Attributes. Use the specified prefix so that dependencies can added with a prefix such as "java3d-" etc.
        Parameters:
        attributes - the attributes of manifest to add to
        extension - the extension
        prefix - the name to prefix to extension
      • getExtensionName

        public java.lang.String getExtensionName()
        Get the name of the extension.
        Returns:
        the name of the extension
      • getSpecificationVendor

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

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

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

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

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

        public DeweyDecimal getImplementationVersion()
        Get the version of the extensions implementation.
        Returns:
        the version of the extensions implementation.
      • getCompatibilityWith

        public Compatibility getCompatibilityWith​(Extension required)
        Return a Compatibility enum indicating the relationship of this Extension with the specified Extension.
        Parameters:
        required - Description of the required optional package
        Returns:
        the enum indicating the compatibility (or lack thereof) of specified extension
      • isCompatibleWith

        public boolean isCompatibleWith​(Extension required)
        Return true if the specified Extension (which represents an optional package required by an application) is satisfied by this Extension (which represents an optional package that is already installed. Otherwise, return false.
        Parameters:
        required - Description of the required optional package
        Returns:
        true if the specified extension is compatible with this extension
      • 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.