Top Description Fields Constructors Methods
com.jogamp.common.util

public Class VersionNumber

extends Object
implements Comparable<Object>
Class Inheritance
All Implemented Interfaces
java.lang.Comparable
Known Direct Subclasses
com.jogamp.common.util.VersionNumberString
Imports
java.util.regex.Matcher

Simple version number class containing a version number either being defined explicit or derived from a string.

For the latter case, you can query whether a component has been defined explicitly by the given versionString, via hasMajor(), hasMinor() and hasSub().

The state whether a component is defined explicitly is not considered in the hashCode(), equals(Object) or compareTo(Object) methods, since the version number itself is treated regardless.

Field Summary

Modifier and TypeField and Description
private static volatile Pattern
protected static final short
protected static final short
protected static final short
protected final int
protected final int
protected final short
protected final int
protected final int
public static final VersionNumber
zeroVersion

A zero version instance, w/o any component defined explicitly.

Constructor Summary

AccessConstructor and Description
protected
VersionNumber(final int majorRev, final int minorRev, final int subMinorRev, final int _strEnd, final short _state)

public
VersionNumber(final int majorRev, final int minorRev, final int subMinorRev)

Explicit version number instantiation, with all components defined explicitly.

public
VersionNumber(final String
should be given as [MAJOR[.MINOR[.SUB]]]
versionString
)

String derived version number instantiation.

public
VersionNumber(final String
should be given as [MAJOR[.MINOR[.SUB]]]
versionString
,
final String
the delimiter, e.g. "."
delim
)

String derived version number instantiation.

public
VersionNumber(final String
should be given as [MAJOR[.MINOR[.SUB]]]
versionString
,
final Pattern
the pattern parser, must be compatible w/ getVersionNumberPattern(String)
versionPattern
)

String derived version number instantiation.

Method Summary

Modifier and TypeMethod and Description
public final int
compareTo(final Object
the object to be compared.
o
)

Implements java.lang.Comparable.compareTo.

Compares this object with the specified object for order.
public final int
compareTo(final VersionNumber
the object to be compared.
vo
)

Implements java.lang.Comparable.compareTo.

Compares this object with the specified object for order.
public final int
endOfStringMatch()

If constructed with version-string, returns the string offset after the last matching character, or 0 if none matched, or -1 if not constructed with a string.

public final boolean
equals(final Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
public static Pattern
getDefaultVersionNumberPattern()

Returns the default pattern using getVersionNumberPattern(String) with delimiter ".

public final int
public final int
public final int
public static Pattern
getVersionNumberPattern(final String
the delimiter, e.g. "."
delim
)

Returns the pattern with Perl regular expression:

  "\\D*(\\d+)[^\\"+delim+"\\s]*(?:\\"+delim+"\\D*(\\d+)[^\\"+delim+"\\s]*(?:\\"+delim+"\\D*(\\d+))?)?"
public final int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.
public final boolean
hasMajor()

Returns true, if the major component is defined explicitly, otherwise false.

public final boolean
hasMinor()

Returns true, if the optional minor component is defined explicitly, otherwise false.

public final boolean
hasSub()

Returns true, if the optional sub component is defined explicitly, otherwise false.

public final boolean
isZero()

Returns true, if all version components are zero, otherwise false.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

defPatternback to summary
private static volatile Pattern defPattern
HAS_MAJORback to summary
protected static final short HAS_MAJOR
HAS_MINORback to summary
protected static final short HAS_MINOR
HAS_SUBback to summary
protected static final short HAS_SUB
majorback to summary
protected final int major
minorback to summary
protected final int minor
stateback to summary
protected final short state
strEndback to summary
protected final int strEnd
subback to summary
protected final int sub
zeroVersionback to summary
public static final VersionNumber zeroVersion

A zero version instance, w/o any component defined explicitly.

See Also
hasMajor(), hasMinor(), hasSub()

Constructor Detail

VersionNumberback to summary
protected VersionNumber(final int majorRev, final int minorRev, final int subMinorRev, final int _strEnd, final short _state)
VersionNumberback to summary
public VersionNumber(final int majorRev, final int minorRev, final int subMinorRev)

Explicit version number instantiation, with all components defined explicitly.

See Also
hasMajor(), hasMinor(), hasSub()
VersionNumberback to summary
public VersionNumber(final String versionString)

String derived version number instantiation.

Utilizing the default pattern parser with delimiter ".", see getDefaultVersionNumberPattern().

You can query whether a component has been defined explicitly by the given versionString, via hasMajor(), hasMinor() and hasSub().

Parameters
versionString:String

should be given as [MAJOR[.MINOR[.SUB]]]

See Also
hasMajor(), hasMinor(), hasSub()
VersionNumberback to summary
public VersionNumber(final String versionString, final String delim)

String derived version number instantiation.

Utilizing pattern parser created via getVersionNumberPattern(String).

You can query whether a component has been defined explicitly by the given versionString, via hasMajor(), hasMinor() and hasSub().

Parameters
versionString:String

should be given as [MAJOR[.MINOR[.SUB]]]

delim:String

the delimiter, e.g. "."

See Also
hasMajor(), hasMinor(), hasSub()
VersionNumberback to summary
public VersionNumber(final String versionString, final Pattern versionPattern)

String derived version number instantiation.

You can query whether a component has been defined explicitly by the given versionString, via hasMajor(), hasMinor() and hasSub().

Parameters
versionString:String

should be given as [MAJOR[.MINOR[.SUB]]]

versionPattern:Pattern

the pattern parser, must be compatible w/ getVersionNumberPattern(String)

See Also
hasMajor(), hasMinor(), hasSub()

Method Detail

compareToback to summary
public final int compareTo(final Object o)

Implements java.lang.Comparable.compareTo.

Doc from java.lang.Comparable.compareTo.

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z)) == signum(y.compareTo(z)), for all z.

Parameters
o:Object

the object to be compared.

Returns:int

a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Annotations
@Override
compareToback to summary
public final int compareTo(final VersionNumber vo)

Implements java.lang.Comparable.compareTo.

Doc from java.lang.Comparable.compareTo.

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z)) == signum(y.compareTo(z)), for all z.

Parameters
vo:VersionNumber

the object to be compared.

Returns:int

a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

endOfStringMatchback to summary
public final int endOfStringMatch()

If constructed with version-string, returns the string offset after the last matching character, or 0 if none matched, or -1 if not constructed with a string.

equalsback to summary
public final boolean equals(final Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getDefaultVersionNumberPatternback to summary
public static Pattern getDefaultVersionNumberPattern()

Returns the default pattern using getVersionNumberPattern(String) with delimiter ".".

Instance is cached.

getMajorback to summary
public final int getMajor()
getMinorback to summary
public final int getMinor()
getSubback to summary
public final int getSub()
getVersionNumberPatternback to summary
public static Pattern getVersionNumberPattern(final String delim)

Returns the pattern with Perl regular expression:

  "\\D*(\\d+)[^\\"+delim+"\\s]*(?:\\"+delim+"\\D*(\\d+)[^\\"+delim+"\\s]*(?:\\"+delim+"\\D*(\\d+))?)?"

A whitespace within the version number will end the parser.

Capture groups represent the major (1), optional minor (2) and optional sub version number (3) component in this order.

Each capture group ignores any leading non-digit and uses only contiguous digits, i.e. ignores pending non-digits.

Parameters
delim:String

the delimiter, e.g. "."

hashCodeback to summary
public final int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
hasMajorback to summary
public final boolean hasMajor()

Returns true, if the major component is defined explicitly, otherwise false. Undefined components has the value 0.

hasMinorback to summary
public final boolean hasMinor()

Returns true, if the optional minor component is defined explicitly, otherwise false. Undefined components has the value 0.

hasSubback to summary
public final boolean hasSub()

Returns true, if the optional sub component is defined explicitly, otherwise false. Undefined components has the value 0.

isZeroback to summary
public final boolean isZero()

Returns true, if all version components are zero, otherwise false.

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object

Annotations
@Override