29package com.jogamp.common.util;
31import java.util.regex.Matcher;
76 return java.util.regex.Pattern.compile(
"\\D*(\\d+)[^\\"+delim+
"\\s]*(?:\\"+delim+
"\\D*(\\d+)[^\\"+delim+
"\\s]*(?:\\"+delim+
"\\D*(\\d+))?)?");
87 if(
null == defPattern ) {
88 synchronized( VersionNumber.class ) {
89 if(
null == defPattern ) {
96 private static volatile java.util.regex.Pattern defPattern =
null;
103 protected final static short HAS_SUB = 1 << 2 ;
105 protected VersionNumber(
final int majorRev,
final int minorRev,
final int subMinorRev,
final int _strEnd,
final short _state) {
119 public VersionNumber(
final int majorRev,
final int minorRev,
final int subMinorRev) {
175 public VersionNumber(
final String versionString,
final java.util.regex.Pattern versionPattern) {
179 final int[] val =
new int[3];
183 final Matcher matcher = versionPattern.matcher( versionString );
184 if( matcher.lookingAt() ) {
185 _strEnd = matcher.end();
186 final int groupCount = matcher.groupCount();
187 if( 1 <= groupCount ) {
188 val[0] = Integer.parseInt(matcher.group(1));
190 if( 2 <= groupCount ) {
191 val[1] = Integer.parseInt(matcher.group(2));
193 if( 3 <= groupCount ) {
194 val[2] = Integer.parseInt(matcher.group(3));
200 }
catch (
final Exception e) { }
230 int hash = 31 +
major;
231 hash = ((hash << 5) - hash) +
minor;
232 return ((hash << 5) - hash) +
sub;
236 public final boolean equals(
final Object o) {
246 final Class<?> c = (
null != o) ? o.getClass() : null ;
247 throw new ClassCastException(
"Not a VersionNumber object: " + c);
261 }
else if (
sub > vo.
sub) {
263 }
else if (
sub < vo.
sub) {
Simple version number class containing a version number either being defined explicit or derived from...
static final short HAS_MAJOR
VersionNumber(final String versionString, final java.util.regex.Pattern versionPattern)
String derived version number instantiation.
static java.util.regex.Pattern getVersionNumberPattern(final String delim)
Returns the pattern with Perl regular expression:
final boolean isZero()
Returns true, if all version components are zero, otherwise false.
final int compareTo(final Object o)
static final short HAS_SUB
static final short HAS_MINOR
static java.util.regex.Pattern getDefaultVersionNumberPattern()
Returns the default pattern using getVersionNumberPattern(String) with delimiter "<b>....
VersionNumber(final String versionString, final String delim)
String derived version number instantiation.
final int compareTo(final VersionNumber vo)
VersionNumber(final int majorRev, final int minorRev, final int subMinorRev)
Explicit version number instantiation, with all components defined explicitly.
static final VersionNumber zeroVersion
A zero version instance, w/o any component defined explicitly.
VersionNumber(final int majorRev, final int minorRev, final int subMinorRev, final int _strEnd, final short _state)
final boolean hasSub()
Returns true, if the optional sub component is defined explicitly, otherwise false.
VersionNumber(final String versionString)
String derived version number instantiation.
final boolean hasMajor()
Returns true, if the major component is defined explicitly, otherwise false.
final boolean hasMinor()
Returns true, if the optional minor component is defined explicitly, otherwise false.
final boolean equals(final Object o)
final int endOfStringMatch()
If constructed with version-string, returns the string offset after the last matching character,...