org.apache.archiva.common.utils
Class VersionComparator
java.lang.Object
org.apache.archiva.common.utils.VersionComparator
- All Implemented Interfaces:
- Comparator<String>
public class VersionComparator
- extends Object
- implements Comparator<String>
VersionComparator - compare the parts of two version strings.
Technique.
* Split the version strings into parts by splitting on "-._"
first, then breaking apart words from numbers.
"1.0" = "1", "0"
"1.0-alpha-1" = "1", "0", "alpha", "1"
"2.0-rc2" = "2", "0", "rc", "2"
"1.3-m2" = "1", "3", "m", "3"
compare each part individually, and when they do not match, perform the following test.
Numbers are calculated per normal comparison rules.
Words that are part of the "special word list" will be treated as their index within that heirarchy.
Words that cannot be identified as special, are treated using normal case-insensitive comparison rules.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
INSTANCE
private static Comparator<String> INSTANCE
specialWords
private List<String> specialWords
VersionComparator
public VersionComparator()
getInstance
public static Comparator<String> getInstance()
compare
public int compare(String o1,
String o2)
- Specified by:
compare
in interface Comparator<String>
safePart
private String safePart(String[] parts,
int idx)
comparePart
private int comparePart(String s1,
String s2)
toParts
public static String[] toParts(String version)
Copyright © 2006-2013 The Apache Software Foundation. All Rights Reserved.