Package

public class Package extends Object
implements AnnotatedElement

Package objects contain version information about the implementation and specification of a Java package. This versioning information is retrieved and made available by the ClassLoader instance that loaded the class(es). Typically, it is stored in the manifest that is distributed with the classes.

The set of classes that make up the package may implement a particular specification and if so the specification title, version number, and vendor strings identify that specification. An application can ask if the package is compatible with a particular version, see the isCompatibleWith method for details.

Specification version numbers use a syntax that consists of nonnegative decimal integers separated by periods ".", for example "2.0" or "1.2.3.4.5.6.7". This allows an extensible number to be used to represent major, minor, micro, etc. versions. The version specification is described by the following formal grammar:

SpecificationVersion:
Digits RefinedVersionopt

RefinedVersion:
. Digits
. Digits RefinedVersion

Digits:
Digit
Digits

Digit:
any character for which isDigit(char) returns true, e.g. 0, 1, 2, ...

The implementation title, version, and vendor strings identify an implementation and are made available conveniently to enable accurate reporting of the packages involved when a problem occurs. The contents all three implementation strings are vendor specific. The implementation version strings have no specified syntax and should only be compared for equality with desired version identifiers.

Within each ClassLoader instance all classes from the same java package have the same Package object. The static methods allow a package to be found by name or the set of all packages known to the current class loader to be found.

Public Method Summary

<A extends Annotation> A
getAnnotation(Class<A> annotationClass)
Annotation[]
getAnnotations()
Returns annotations that are present on this element.
<T extends Annotation> T[]
getAnnotationsByType(Class<T> annotationClass)
Returns annotations that are associated with this element.
<T extends Annotation> T
getDeclaredAnnotation(Class<T> annotationClass)
Returns this element's annotation for the specified type if such an annotation is directly present, else null.
Annotation[]
getDeclaredAnnotations()
Returns annotations that are directly present on this element.
<T extends Annotation> T[]
getDeclaredAnnotationsByType(Class<T> annotationClass)
Returns this element's annotation(s) for the specified type if such annotations are either directly present or indirectly present.
String
getImplementationTitle()
Return the title of this package.
String
getImplementationVendor()
Returns the name of the organization, vendor or company that provided this implementation.
String
getImplementationVersion()
Return the version of this implementation.
String
getName()
Return the name of this package.
static Package
getPackage(String packageName)
Find a package by name in the callers ClassLoader instance.
static Package[]
getPackages()
Get all the packages currently known for the caller's ClassLoader instance.
String
getSpecificationTitle()
Return the title of the specification that this package implements.
String
getSpecificationVendor()
Return the name of the organization, vendor, or company that owns and maintains the specification of the classes that implement this package.
String
getSpecificationVersion()
Returns the version number of the specification that this package implements.
int
hashCode()
Return the hash code computed from the package name.
boolean
isAnnotationPresent(Class<? extends Annotation> annotationClass)
Returns true if an annotation for the specified type is present on this element, else false.
boolean
isCompatibleWith(String desired)
Compare this package's specification version with a desired version.
boolean
isSealed(URL url)
Returns true if this package is sealed with respect to the specified code source url.
boolean
isSealed()
Returns true if this package is sealed.
String
toString()
Returns the string representation of this Package.

Inherited Method Summary