org.codehaus.spice.extension
Class Extension

java.lang.Object
  |
  +--org.codehaus.spice.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.

Version:
$Revision: 1.1 $ $Date: 2003/12/02 07:56:59 $
Author:
Craig R. McClanahan
, Peter Donald

Field Summary
static Compatability COMPATIBLE
          Enum indicating that extension is compatible with other extension.
static Attributes.Name EXTENSION_LIST
          Manifest Attribute Name object for EXTENSION_LIST.
static Attributes.Name EXTENSION_NAME
          Manifest Attribute Name object for EXTENSION_NAME.
static Attributes.Name IMPLEMENTATION_URL
          Manifest Attribute Name object for IMPLEMENTATION_URL.
static Attributes.Name IMPLEMENTATION_VENDOR
          Manifest Attribute Name object for IMPLEMENTATION_VENDOR.
static Attributes.Name IMPLEMENTATION_VENDOR_ID
          Manifest Attribute Name object for IMPLEMENTATION_VENDOR_ID.
static Attributes.Name IMPLEMENTATION_VERSION
          Manifest Attribute Name object for IMPLEMENTATION_VERSION.
static Compatability INCOMPATIBLE
          Enum indicating that extension is incompatible with other extension in ways other than other enums indicate).
static Attributes.Name OPTIONAL_EXTENSION_LIST
          Name object for Optional-Extension-List manifest attribute used for declaring optional dependencies on installed extensions.
static Compatability REQUIRE_IMPLEMENTATION_UPGRADE
          Enum indicating that extension requires an upgrade of implementation to be compatible with other extension.
static Compatability REQUIRE_SPECIFICATION_UPGRADE
          Enum indicating that extension requires an upgrade of specification to be compatible with other extension.
static Compatability REQUIRE_VENDOR_SWITCH
          Enum indicating that extension requires a vendor switch to be compatible with other extension.
static Attributes.Name SPECIFICATION_VENDOR
          Manifest Attribute Name object for SPECIFICATION_VENDOR.
static Attributes.Name SPECIFICATION_VERSION
          Manifest Attribute Name object for SPECIFICATION_VERSION.
 
Constructor Summary
Extension(String extensionName, String specificationVersion, String specificationVendor, String implementationVersion, String implementationVendor, String implementationVendorId, String implementationURL)
          The constructor to create Extension object.
 
Method Summary
static void addExtension(Extension extension, Attributes attributes)
          Add Extension to the specified manifest Attributes.
static void addExtension(Extension extension, String prefix, 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.
static Extension[] getAvailable(Manifest[] manifests)
          Retrieve the set of Extension objects that are available by the specified Manifest objects.
 Compatability 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.
 String 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.
static Extension[] getRequired(Manifest[] manifests)
          Retrieve the set of Extension objects that are required by the specified Manifest objects.
 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 Detail

EXTENSION_LIST

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

See Also:
Attributes.Name#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.

See Also:
Attributes.Name#EXTENSION_NAME

SPECIFICATION_VERSION

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

See Also:
Attributes.Name#SPECIFICATION_VERSION

SPECIFICATION_VENDOR

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

See Also:
Attributes.Name#SPECIFICATION_VENDOR

IMPLEMENTATION_VERSION

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

See Also:
Attributes.Name#IMPLEMENTATION_VERSION

IMPLEMENTATION_VENDOR

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

See Also:
Attributes.Name#IMPLEMENTATION_VENDOR

IMPLEMENTATION_URL

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

See Also:
Attributes.Name#IMPLEMENTATION_URL

IMPLEMENTATION_VENDOR_ID

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

See Also:
Attributes.Name#IMPLEMENTATION_VENDOR_ID

COMPATIBLE

public static final Compatability COMPATIBLE
Enum indicating that extension is compatible with other extension.


REQUIRE_SPECIFICATION_UPGRADE

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


REQUIRE_VENDOR_SWITCH

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


REQUIRE_IMPLEMENTATION_UPGRADE

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


INCOMPATIBLE

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

Constructor Detail

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 Detail

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

getAvailable

public static Extension[] getAvailable(Manifest[] manifests)
Retrieve the set of Extension objects that are available by the specified Manifest objects. If there are no such optional packages, a zero-length list is returned.

Parameters:
manifests - the manifests to scan
Returns:
the extensions

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 manifes

getRequired

public static Extension[] getRequired(Manifest[] manifests)
Retrieve the set of Extension objects that are required by the specified Manifest objects. If there are no such optional packages, a zero-length list is returned.

Parameters:
manifests - the manifests to scan
Returns:
the extensions

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:
attributes - the attributes of manifest to add to
extension - the extension

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:
attributes - the attributes of manifest to add to
extension - the extension
prefix - the name to prefix to extension

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 String getImplementationVersion()
Get the version of the extensions implementation.

Returns:
the version of the extensions implementation.

getCompatibilityWith

public Compatability 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 compatability (or lack thereof) of specifed 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.


Copyright © 2000-2003 Codehaus. All Rights Reserved.