in intellij-plugin-structure/structure-ide/src/main/java/com/jetbrains/plugin/structure/ide/VersionComparatorUtil.java [56:93]
public static int compare(@Nullable String ver1, @Nullable String ver2) {
if (ver1 == null) {
return (ver2 == null) ? 0 : -1;
} else if (ver2 == null) {
return 1;
}
ver1 = ver1.toLowerCase();
ver2 = ver2.toLowerCase();
final List<String> s1 = splitVersionString(ver1);
final List<String> s2 = splitVersionString(ver2);
padWithNulls(s1, s2);
int res = 0;
for (int i = 0; i < s1.size(); i++) {
final String e1 = s1.get(i);
final String e2 = s2.get(i);
final VersionTokenType t1 = VersionTokenType.lookup(e1);
final VersionTokenType t2 = VersionTokenType.lookup(e2);
if (!t1.equals(t2)) {
res = comparePriorities(t1, t2);
} else if (t1 == VersionTokenType._WORD) {
res = e1.compareTo(e2);
} else if (t1 == VersionTokenType._DIGITS) {
res = compareNumbers(e1, e2);
}
if (res != 0) {
return res;
}
}
return 0;
}