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 split in a leading number, if
  present, and a trailing non-number, and then compared numerically
  and lexicographically, e.g. 9-eb is before 10-ea and 9-ea
  is before 9-eb.
  If one VersionNumber part has more digits and/or
  letters than the other, with the first portion of that part
  matching, then the VersionNumber with the longer
  part is considered to be later than the other
  VersionNumber, e.g. 9-e is before 9-ea and
  9 is before 9.0.
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.
    9-eb comes before 10-ea.
    9-ea comes before 9-eb.
    9-e comes before 9-eb.
    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
  Object2Dom.
| 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()
Determine how many dot-separated parts this VersionNumber has. 
 | 
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 | 
getJdkSourceTargetString()
Looking at the version number as a JDK version, derive the value
 that is acceptable for the -source and -target Javac options,
 e.g. 
 | 
java.lang.String | 
getPart(int index)
Get a specific dot-separated part of this VersionNumber. 
 | 
int | 
hashCode()  | 
boolean | 
isAfter(java.lang.String version)
Determine if this VersionNumber is after the other version,
 e.g. 
 | 
boolean | 
isAfter(java.lang.String version,
       boolean orEquals)
Determine if this VersionNumber is after or equal to the other version,
 e.g. 
 | 
boolean | 
isAfter(VersionNumber version)
Determine if this VersionNumber is after the other VersionNumber,
 e.g. 
 | 
boolean | 
isAfter(VersionNumber version,
       boolean orEquals)
Determine if this VersionNumber is after or equal to the other VersionNumber,
 e.g. 
 | 
boolean | 
isBefore(java.lang.String version)
Determine if this VersionNumber is before the other version,
 e.g. 
 | 
boolean | 
isBefore(java.lang.String version,
        boolean orEquals)
Determine if this VersionNumber is before or equal to the other version,
 e.g. 
 | 
boolean | 
isBefore(VersionNumber version)
Determine if this VersionNumber is before the other VersionNumber,
 e.g. 
 | 
boolean | 
isBefore(VersionNumber version,
        boolean orEquals)
Determine if this VersionNumber is before or equal to the other VersionNumber,
 e.g. 
 | 
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.versionString - A version which cannot be nulljava.lang.IllegalArgumentException - if versionString is nullpublic int countParts()
2 and
 if the version string is "3", this method returns 1.public java.lang.String getPart(int index)
index - The index of the requested partnull if index is out of boundspublic final boolean isAfter(VersionNumber version)
version - the other VersionNumbertrue if this VersionNumber is after the other
  VersionNumber, false otherwise.public final boolean isAfter(java.lang.String version)
version - the other versiontrue if this VersionNumber is after the other
  version, false otherwise.public final boolean isAfter(VersionNumber version, boolean orEquals)
version - the other VersionNumberorEquals - if false, only consider after, otherwise consider after and equals totrue if this VersionNumber is after or equal to the other
  VersionNumber, false otherwise.public final boolean isAfter(java.lang.String version,
                             boolean orEquals)
version - the other versionorEquals - if false, only consider after, otherwise consider after and equals totrue if this VersionNumber is after or equal to the other
  version, false otherwise.public final boolean isBefore(VersionNumber version)
version - the other VersionNumbertrue if this VersionNumber is before the other
  VersionNumber, false otherwise.public final boolean isBefore(java.lang.String version)
version - the other versiontrue if this VersionNumber is before the other
  version, false otherwise.public boolean isBefore(VersionNumber version, boolean orEquals)
version - the other VersionNumberorEquals - if false, only consider before, otherwise consider before and equals totrue if this VersionNumber is before or equal to the other
  VersionNumber, false otherwise.public boolean isBefore(java.lang.String version,
                        boolean orEquals)
version - the other versionorEquals - if false, only consider before, otherwise consider before and equals totrue if this VersionNumber is before or equal to the other
  version, false otherwise.public java.lang.String getJdkSourceTargetString()
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