org.apache.tools.ant.taskdefs.optional.extensionClass Specification
- java.lang.Object
- org.apache.tools.ant.taskdefs.optional.extension.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 and 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 and 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.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description Compatibility
getCompatibilityWith(Specification other)
Return a Compatibility enum indicating the relationship of thisPackage Specification
with the specifiedExtension
.java.lang.String
getImplementationTitle()
Get the title of the specification.java.lang.String
getImplementationVendor()
Get the vendor of the extensions implementation.java.lang.String
getImplementationVersion()
Get the version of the implementation.java.lang.String[]
getSections()
Return an array containing sections to which specification applies or null if relevant to no sections.static Specification[]
getSpecifications(java.util.jar.Manifest manifest)
Return an array ofPackage Specification
objects.java.lang.String
getSpecificationTitle()
Get the title of the specification.java.lang.String
getSpecificationVendor()
Get the vendor of the specification.DeweyDecimal
getSpecificationVersion()
Get the version of the specification.boolean
isCompatibleWith(Specification other)
Returntrue
if the specifiedpackage
is satisfied by thisSpecification
.java.lang.String
toString()
Return a String representation of this object.
Field Detail
SPECIFICATION_TITLE
public static final java.util.jar.Attributes.Name SPECIFICATION_TITLEManifest Attribute Name object for SPECIFICATION_TITLE.
SPECIFICATION_VERSION
public static final java.util.jar.Attributes.Name SPECIFICATION_VERSIONManifest Attribute Name object for SPECIFICATION_VERSION.
SPECIFICATION_VENDOR
public static final java.util.jar.Attributes.Name SPECIFICATION_VENDORManifest Attribute Name object for SPECIFICATION_VENDOR.
IMPLEMENTATION_TITLE
public static final java.util.jar.Attributes.Name IMPLEMENTATION_TITLEManifest Attribute Name object for IMPLEMENTATION_TITLE.
IMPLEMENTATION_VERSION
public static final java.util.jar.Attributes.Name IMPLEMENTATION_VERSIONManifest Attribute Name object for IMPLEMENTATION_VERSION.
IMPLEMENTATION_VENDOR
public static final java.util.jar.Attributes.Name IMPLEMENTATION_VENDORManifest Attribute Name object for IMPLEMENTATION_VENDOR.
COMPATIBLE
public static final Compatibility COMPATIBLEEnum indicating that extension is compatible with other Package Specification.
REQUIRE_SPECIFICATION_UPGRADE
public static final Compatibility REQUIRE_SPECIFICATION_UPGRADEEnum indicating that extension requires an upgrade of specification to be compatible with other Package Specification.
REQUIRE_VENDOR_SWITCH
public static final Compatibility REQUIRE_VENDOR_SWITCHEnum indicating that extension requires a vendor switch to be compatible with other Package Specification.
REQUIRE_IMPLEMENTATION_CHANGE
public static final Compatibility REQUIRE_IMPLEMENTATION_CHANGEEnum indicating that extension requires an upgrade of implementation to be compatible with other Package Specification.
INCOMPATIBLE
public static final Compatibility INCOMPATIBLEThis 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.ParseExceptionReturn an array ofPackage 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 thisPackage Specification
with the specifiedExtension
.
- Parameters:
other
- the other specification- Returns:
- the enum indicating the compatibility (or lack thereof) of specified Package Specification
isCompatibleWith
public boolean isCompatibleWith(Specification other)Returntrue
if the specifiedpackage
is satisfied by thisSpecification
. Otherwise, returnfalse
.
- 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 classjava.lang.Object
- Returns:
- string representation of object.