Package org.apache.tools.ant.taskdefs.optional.extension

# Class Extension

java.lang.Object
org.apache.tools.ant.taskdefs.optional.extension.Extension

public final class Extension extends 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 final Compatibility`
  `COMPATIBLE`
  Enum indicating that extension is compatible with other extension.
  `static final Attributes.Name`
  `EXTENSION_LIST`
  Manifest Attribute Name object for EXTENSION_LIST.
  `static final Attributes.Name`
  `EXTENSION_NAME`
  Manifest Attribute Name object for EXTENSION_NAME.
  `static final Attributes.Name`
  `IMPLEMENTATION_URL`
  Manifest Attribute Name object for IMPLEMENTATION_URL.
  `static final Attributes.Name`
  `IMPLEMENTATION_VENDOR`
  Manifest Attribute Name object for IMPLEMENTATION_VENDOR.
  `static final Attributes.Name`
  `IMPLEMENTATION_VENDOR_ID`
  Manifest Attribute Name object for IMPLEMENTATION_VENDOR_ID.
  `static final Attributes.Name`
  `IMPLEMENTATION_VERSION`
  Manifest Attribute Name object for IMPLEMENTATION_VERSION.
  `static final Compatibility`
  `INCOMPATIBLE`
  Enum indicating that extension is incompatible with other extension in ways other than other enums indicate).
  `static final Attributes.Name`
  `OPTIONAL_EXTENSION_LIST`
  `Name` object for `Optional-Extension-List` manifest attribute used for declaring optional dependencies on installed extensions.
  `static final Compatibility`
  `REQUIRE_IMPLEMENTATION_UPGRADE`
  Enum indicating that extension requires an upgrade of implementation to be compatible with other extension.
  `static final Compatibility`
  `REQUIRE_SPECIFICATION_UPGRADE`
  Enum indicating that extension requires an upgrade of specification to be compatible with other extension.
  `static final Compatibility`
  `REQUIRE_VENDOR_SWITCH`
  Enum indicating that extension requires a vendor switch to be compatible with other extension.
  `static final Attributes.Name`
  `SPECIFICATION_VENDOR`
  Manifest Attribute Name object for SPECIFICATION_VENDOR.
  `static final Attributes.Name`
  `SPECIFICATION_VERSION`
  Manifest Attribute Name object for SPECIFICATION_VERSION.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Extension(String extensionName, String specificationVersion, String specificationVendor, String implementationVersion, String implementationVendor, String implementationVendorId, String implementationURL)`
  The constructor to create Extension object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `addExtension(Extension extension, String prefix, Attributes attributes)`
  Add Extension to the specified manifest Attributes.
  `static void`
  `addExtension(Extension extension, Attributes attributes)`
  Add Extension to the specified manifest Attributes.
  `static Extension[]`
  `getAvailable(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`.
  `String`
  `getExtensionName()`
  Get the name of the extension.
  `String`
  `getImplementationURL()`
  Get the url of the extensions implementation.
  `String`
  `getImplementationVendor()`
  Get the vendor of the extensions implementation.
  `String`
  `getImplementationVendorID()`
  Get the vendorID of the extensions implementation.
  `DeweyDecimal`
  `getImplementationVersion()`
  Get the version of the extensions implementation.
  `static Extension[]`
  `getOptions(Manifest manifest)`
  Return the set of `Extension` objects representing "Optional Packages" that the application declares they will use if present.
  `static Extension[]`
  `getRequired(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`.
  `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.
  `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 Details

  - ### EXTENSION_LIST

    public static final Attributes.Name EXTENSION_LIST
    Manifest Attribute Name object for EXTENSION_LIST.

  - ### OPTIONAL_EXTENSION_LIST

    public static final 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 Attributes.Name EXTENSION_NAME
    Manifest Attribute Name object for EXTENSION_NAME.

  - ### SPECIFICATION_VERSION

    public static final Attributes.Name SPECIFICATION_VERSION
    Manifest Attribute Name object for SPECIFICATION_VERSION.

  - ### SPECIFICATION_VENDOR

    public static final Attributes.Name SPECIFICATION_VENDOR
    Manifest Attribute Name object for SPECIFICATION_VENDOR.

  - ### IMPLEMENTATION_VERSION

    public static final Attributes.Name IMPLEMENTATION_VERSION
    Manifest Attribute Name object for IMPLEMENTATION_VERSION.

  - ### IMPLEMENTATION_VENDOR

    public static final Attributes.Name IMPLEMENTATION_VENDOR
    Manifest Attribute Name object for IMPLEMENTATION_VENDOR.

  - ### IMPLEMENTATION_URL

    public static final Attributes.Name IMPLEMENTATION_URL
    Manifest Attribute Name object for IMPLEMENTATION_URL.

  - ### IMPLEMENTATION_VENDOR_ID

    public static final 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 Details

  - ### Extension

    public Extension(String extensionName, String specificationVersion, String specificationVendor, String implementationVersion, String implementationVendor, String implementationVendorId, 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 Details

  - ### getAvailable

    public static Extension[] getAvailable(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(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(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, Attributes attributes)
    Add Extension to the specified manifest Attributes.
    Parameters:
      `extension` - the extension
      `attributes` - the attributes of manifest to add to

  - ### addExtension

    public static void addExtension(Extension extension, String prefix, 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:
      `extension` - the extension
      `prefix` - the name to prefix to extension
      `attributes` - the attributes of manifest to add to

  - ### getExtensionName

    public String getExtensionName()
    Get the name of the extension.
    Returns:
      the name of the extension

  - ### getSpecificationVendor

    public 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 String getImplementationURL()
    Get the url of the extensions implementation.
    Returns:
      the url of the extensions implementation.

  - ### getImplementationVendor

    public String getImplementationVendor()
    Get the vendor of the extensions implementation.
    Returns:
      the vendor of the extensions implementation.

  - ### getImplementationVendorID

    public 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 String toString()
    Return a String representation of this object.
    Overrides:
      `toString` in class `Object`
    Returns:
      string representation of object.