org.apache.archiva.common.utils
Class VersionComparator

java.lang.Object
  extended by 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.


Field Summary
private static Comparator<String> INSTANCE
           
private  List<String> specialWords
           
 
Constructor Summary
VersionComparator()
           
 
Method Summary
 int compare(String o1, String o2)
           
private  int comparePart(String s1, String s2)
           
static Comparator<String> getInstance()
           
private  String safePart(String[] parts, int idx)
           
static String[] toParts(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
 

Field Detail

INSTANCE

private static Comparator<String> INSTANCE

specialWords

private List<String> specialWords
Constructor Detail

VersionComparator

public VersionComparator()
Method Detail

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.