Extension SDK 10.1.2

oracle.ide.util
Class VersionNumber

java.lang.Object
  extended byoracle.ide.util.VersionNumber
All Implemented Interfaces:
StringConversion

public class VersionNumber
extends java.lang.Object
implements StringConversion

This class encapsulates the notion of a version number or version string, which can be defined as a string of characters, usually digits, separated by dots ('.'). An example is 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:

The handling of the case where a version number differs solely by the addition of extra ".0" fields is arbitrarily chosen. Currently, extra ".0" means that the version number is later than the version string without the extra ".0" fields. This may change in the future, pending peer review.

This class implements StringConversion so that instances of VersionNumber can be persisted and reloaded by the marshalling framework.


Constructor Summary
VersionNumber(java.lang.String versionString)
          This creates an instance of VersionNumber based on the dot-separated version string that is passed in.
 
Method Summary
 int countParts()
          Returns the number of dot-separated fields contained in the version.
 boolean equals(VersionNumber version)
          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.
 boolean isAfter(VersionNumber version, boolean orEquals)
          This is a convenience method that simply calls !isBefore(version, !orEquals).
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VersionNumber

public VersionNumber(java.lang.String versionString)
This creates an instance of VersionNumber based on the dot-separated version string that is passed in.

Method Detail

countParts

public int countParts()
Returns the number of dot-separated fields contained in the version. For example, if the version string is "9.0", then this method returns 2. If the version string is "3", then this method returns 1.


getPart

public java.lang.String getPart(int offset)
Returns the part of the version string requested or null if the offset is out of bounds.


equals

public boolean equals(VersionNumber version)
Compares this instance of VersionNumber with the specified VersionNumber and returns true if the version represented are identical.


isAfter

public final boolean isAfter(VersionNumber version,
                             boolean orEquals)
This is a convenience method that simply calls !isBefore(version, !orEquals).


isBefore

public 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. 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.


toString

public java.lang.String toString()
Returns the VersionNumber in dot-separated notation as a String.


Extension SDK

 

Copyright © 1997, 2004, Oracle. All rights reserved.