Fix update
This commit is contained in:
@@ -43,11 +43,14 @@ public final class IntVersionNumber extends VersionNumber {
|
||||
if (!(o instanceof IntVersionNumber))
|
||||
return 0;
|
||||
IntVersionNumber other = (IntVersionNumber) o;
|
||||
int len = Math.min(this.version.size(), other.version.size());
|
||||
for (int i = 0; i < len; ++i)
|
||||
if (!version.get(i).equals(other.version.get(i)))
|
||||
return version.get(i).compareTo(other.version.get(i));
|
||||
return Integer.compare(this.version.size(), other.version.size());
|
||||
int len = Math.max(this.version.size(), other.version.size());
|
||||
for (int i = 0; i < len; ++i) {
|
||||
int thisInt = Lang.get(this.version, i).orElse(0);
|
||||
int otherInt = Lang.get(other.version, i).orElse(0);
|
||||
if (thisInt != otherInt)
|
||||
return Integer.compare(thisInt, otherInt);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,13 +40,11 @@ public abstract class VersionNumber implements Comparable<VersionNumber> {
|
||||
throw new IllegalArgumentException("The version " + version + " is malformed, only dots and digits are allowed.");
|
||||
|
||||
String[] s = version.split("\\.");
|
||||
int last = s.length - 1;
|
||||
for (int i = s.length - 1; i >= 0; --i)
|
||||
if (Integer.parseInt(s[i]) == 0)
|
||||
last = i;
|
||||
ArrayList<Integer> versions = new ArrayList<>(last + 1);
|
||||
for (int i = 0; i <= last; ++i)
|
||||
versions.add(Integer.parseInt(s[i]));
|
||||
ArrayList<Integer> versions = new ArrayList<>(s.length);
|
||||
for (String value : s) versions.add(Integer.parseInt(value));
|
||||
while (!versions.isEmpty() && versions.get(versions.size() - 1) == 0)
|
||||
versions.remove(versions.size() - 1);
|
||||
|
||||
return new IntVersionNumber(Collections.unmodifiableList(versions));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user