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) {
184 public VersionNumber(
final String versionString,
final java.util.regex.Pattern versionPattern) {
188 final int[] val =
new int[3];
192 final Matcher matcher = versionPattern.matcher( versionString );
193 if( matcher.lookingAt() ) {
194 _strEnd = matcher.end();
195 final int groupCount = matcher.groupCount();
196 if( 1 <= groupCount ) {
197 val[0] = Integer.parseInt(matcher.group(1));
199 if( 2 <= groupCount ) {
200 val[1] = Integer.parseInt(matcher.group(2));
202 if( 3 <= groupCount ) {
203 val[2] = Integer.parseInt(matcher.group(3));
209 }
catch (
final Exception e) { }
239 int hash = 31 +
major;
240 hash = ((hash << 5) - hash) +
minor;
241 return ((hash << 5) - hash) +
sub;
245 public final boolean equals(
final Object o) {
255 final Class<?> c = (
null != o) ? o.getClass() : null ;
256 throw new ClassCastException(
"Not a VersionNumber object: " + c);
270 }
else if (
sub > vo.
sub) {
272 }
else if (
sub < vo.
sub) {
297 return Integer.toString(
major);
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.
VersionNumber(final int majorRev, final int minorRev)
Explicit version number instantiation, with major and minor components defined explicitly,...
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,...