diff --git a/src/com/company/Version.java b/src/com/company/Version.java index 116c8c2..a5d45c5 100644 --- a/src/com/company/Version.java +++ b/src/com/company/Version.java @@ -68,53 +68,29 @@ public enum Version { // 2 at the top // 3 above private static int correlate(String min, String last, String value){ - //init - int i_min = 0, i_last = 0, i_value = 0; + int min_check = compare(value,min); + int max_check = compare(value,last); + int range_check = compare(min,last); - //go down each integer (separated by points) until it is the last one - while (value.contains(".")) { - - //prepare for checks - i_min = Integer.parseInt(min.substring(0,min.indexOf("."))); - i_last = Integer.parseInt(last.substring(0,last.indexOf("."))); - i_value = Integer.parseInt(value.substring(0,value.indexOf("."))); - - if (i_value < i_min) return 0; - if (i_value > i_last) return 3; - - //check in range correlation - int result = correlate(min.substring(min.indexOf(".")+1),last.substring(last.indexOf(".")+1),value.substring(value.indexOf(".")+1)); - - if (i_value == i_last) { - switch (result){ + switch (range_check) { + case 2: + throw new Error("Minimum Version higher than Last Version"); + case 1: //min == last + switch (min_check) { case 0: return 0; case 1: - return 1; - case 2: - if (i_value < i_last ) return 1; - if (i_value == i_last) return 2; - case 3: + return 2; + default: return 3; } - } else { //value in range + default: + if (max_check >1) return 3; + if (max_check == 1) return 2; + if (min_check < 1) return 0; return 1; - } } - i_min = Integer.parseInt(min); - i_last = Integer.parseInt(last); - i_value = Integer.parseInt(value); - - //check last integer - if (i_min > i_last){ - if (i_value == i_last) return 2; - if (i_value < i_last) return 1; - } - if (i_value < i_min) return 0; - if (i_value >= i_min && i_value < i_last) return 1; - if (i_value == i_last) return 2; - return 3; } /**