public final class VersionNumber extends java.lang.Object implements java.lang.Comparable, StringConversion
8.1.7.0.0.
VersionNumber has methods that can compare one instance
of VersionNumber to another. During comparison,
VersionNumber attempts to interpret the parts of the
version string as numbers; if two corresponding parts cannot be
compared as numbers, they are compared lexicographically.
Whether or not two VersionNumber instances have the
same number of parts, comparisons occur in a left-to-right
manner, part by part. As soon as a difference is detected, then
it can be determined which version number is earlier or later.
Examples:
8.1.7 comes after 8.1.6.
9.0 comes after 8.9.9.9.9.9.9.
8.0.5 equals 8.0.5.
8.0.6 comes before
8.0.6.0.
2.0a comes before 2.0b.
abc.xyz.qrs comes before qrs.xyz.
Comparable so that collections of
VersionNumber can be easily sorted.
This class implements StringConversion so that instances of
VersionNumber can be persisted and reloaded by
Objecg2Dom.
| Constructor and Description |
|---|
VersionNumber(java.lang.String versionString)
This creates an instance of
VersionNumber based on the
dot-separated version string that is passed in. |
| Modifier and Type | Method and Description |
|---|---|
int |
compareTo(java.lang.Object o) |
int |
countParts()
Returns the number of dot-separated fields contained in the
version.
|
boolean |
equals(java.lang.Object o)
Compares this instance of
VersionNumber with the
specified VersionNumber and returns true
if the version represented are identical. |
java.lang.String |
getPart(int offset)
Returns the part of the version string requested or
null if the offset is out of bounds. |
int |
hashCode() |
boolean |
isAfter(VersionNumber version)
Returns
true if this VersionNumber is after the specified
VersionNumber. |
boolean |
isAfter(VersionNumber version,
boolean orEquals)
This is a convenience method that simply calls
!isBefore(version, !orEquals). |
boolean |
isBefore(VersionNumber version)
Returns
true if this VersionNumber is before the specified
VersionNumber. |
boolean |
isBefore(VersionNumber version,
boolean orEquals)
Compares the parts of the this
VersionNumber with the
parts of the specified VersionNumber to determine
whether this VersionNumber represents a version that
comes before the specified version. |
java.lang.String |
toString()
Returns the
VersionNumber in dot-separated notation
as a String. |
public VersionNumber(java.lang.String versionString)
VersionNumber based on the
dot-separated version string that is passed in.public int countParts()
2. If the version string is "3",
then this method returns 1.public java.lang.String getPart(int offset)
null if the offset is out of bounds.public final boolean isAfter(VersionNumber version)
true if this VersionNumber is after the specified
VersionNumber. Returns false if this VersionNumber is
equal to or before the specified VersionNumber.public final boolean isAfter(VersionNumber version, boolean orEquals)
!isBefore(version, !orEquals).public final boolean isBefore(VersionNumber version)
true if this VersionNumber is before the specified
VersionNumber. Returns false if this VersionNumber is
equal to or after the specified VersionNumber.public boolean isBefore(VersionNumber version, boolean orEquals)
VersionNumber with the
parts of the specified VersionNumber to determine
whether this VersionNumber represents a version that
comes before the specified version. Parts are compared one at a
time, and the result is returned as soon as it is determined. For
each comparison, an attempt is first made to convert both version
parts to an int using Integer.parseInt().
If this succeeds, then the version parts are compared numerically.
If the conversion to int fails because of a
NumberFormatException, the version
parts are compared lexicographically using
String.compareTo(...). These
steps are followed for each version part, so it may be the case
that some parts are compared numerically and others
lexicographically.
If one VersionNumber instance has extra zeros at
the end, while the one it is being compared to does not have extra
zeros, then the VersionNumber with the extra zeros
is considered to be later than the VersionNumber
without the extra zeros.
public int compareTo(java.lang.Object o)
compareTo in interface java.lang.Comparablepublic boolean equals(java.lang.Object o)
VersionNumber with the
specified VersionNumber and returns true
if the version represented are identical.equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
VersionNumber in dot-separated notation
as a String.toString in class java.lang.Object