package org.docear.plugin.core.util;
public class CompareVersion {
final public static int LESSER = -1; // versionA is lesser than versionB
final public static int EQUALS = 0; // versionA equal to versionB
final public static int GREATER = 1; // versionA is greater then versionB
public static int compareVersions(String versionA, String versionB) throws NumberFormatException{
if(versionA == null && versionB == null){
return EQUALS;
}
if(versionA == null && versionB != null){
return LESSER;
}
if(versionA != null && versionB == null){
return GREATER;
}
String[] a = versionA.split("\\.");
String[] b = versionB.split("\\.");
int i, j;
int index = 0;
while ((index < a.length) && (index < b.length)) {
i = Integer.parseInt(a[index]);
j = Integer.parseInt(b[index]);
if (i > j) {
return CompareVersion.GREATER;
} else if (i < j) {
return CompareVersion.LESSER;
}
index++;
}
if ((index < a.length) && (index == b.length)) {
return CompareVersion.GREATER;
} else if ((index == a.length) && (index < b.length)) {
return CompareVersion.LESSER;
} else {
return CompareVersion.EQUALS;
}
}
}