com.atlassian.plugin.util
Class VersionStringComparator
java.lang.Object
com.atlassian.plugin.util.VersionStringComparator
- All Implemented Interfaces:
- java.util.Comparator<java.lang.String>
public class VersionStringComparator
- extends java.lang.Object
- implements java.util.Comparator<java.lang.String>
Compares dotted version strings of varying length. Makes a best effort with
other delimiters and non-numeric versions.
For dotted decimals, comparison is as you'd expect: 0.1 is before 0.2 is before
1.0 is before 2.0. This works for any number of dots.
More complicated version numbers are compared by splitting the version strings
into components using the DELIMITER_PATTERN and comparing each
component in order. The first difference found when comparing components
left-to-right is returned.
Two numeric components (containing only digits) are compared as integers. A
numeric component comes after any non-numeric one. Two non-numeric components
are ordered by String.compareToIgnoreCase(String).
|
Method Summary |
int |
compare(java.lang.String version1,
java.lang.String version2)
Compares two version strings using the algorithm described above. |
static boolean |
isValidVersionString(java.lang.String version)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface java.util.Comparator |
equals |
DELIMITER_PATTERN
public static final java.lang.String DELIMITER_PATTERN
- See Also:
- Constant Field Values
COMPONENT_PATTERN
public static final java.lang.String COMPONENT_PATTERN
- See Also:
- Constant Field Values
VALID_VERSION_PATTERN
public static final java.lang.String VALID_VERSION_PATTERN
- See Also:
- Constant Field Values
VersionStringComparator
public VersionStringComparator()
isValidVersionString
public static boolean isValidVersionString(java.lang.String version)
compare
public int compare(java.lang.String version1,
java.lang.String version2)
- Compares two version strings using the algorithm described above.
- Specified by:
compare in interface java.util.Comparator<java.lang.String>
- Returns:
- -1 if version1 is before version2, 1 if version2 is before
version1, or 0 if the versions are equal.
- Throws:
java.lang.IllegalArgumentException - if either argument does not match VALID_VERSION_PATTERN.- See Also:
isValidVersionString(String)
Copyright © 2009 Atlassian Pty Ltd. All Rights Reserved.