summaryrefslogtreecommitdiffstats
path: root/component
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-11-18 15:59:58 +0100
committerMartin Polden <mpolden@mpolden.no>2019-11-18 15:59:58 +0100
commitf78805f93d30b3b89449ac3e14bad095e0bf2cd2 (patch)
tree97859f364b43bfbbeb0280874b8f124aab8a8126 /component
parent00c98abad2d7a98e8a16c5cbd4d3773720a90a54 (diff)
Include qualifier in isAfter/isBefore comparison
Diffstat (limited to 'component')
-rw-r--r--component/src/main/java/com/yahoo/component/Version.java18
-rw-r--r--component/src/test/java/com/yahoo/component/VersionTestCase.java8
2 files changed, 17 insertions, 9 deletions
diff --git a/component/src/main/java/com/yahoo/component/Version.java b/component/src/main/java/com/yahoo/component/Version.java
index 7c98af55be3..54a5dfed94a 100644
--- a/component/src/main/java/com/yahoo/component/Version.java
+++ b/component/src/main/java/com/yahoo/component/Version.java
@@ -347,17 +347,21 @@ public final class Version implements Comparable<Version> {
return getQualifier().compareTo(other.getQualifier());
}
-
- /** Returns whether this version number (ignoring qualifier) is strictly lower than the given version */
+
+ /**
+ * Returns whether this version number is strictly lower than the given version. This has the same semantics as
+ * {@link this#compareTo}.
+ */
public boolean isBefore(Version other) {
- if (this.major == other.major && this.minor == other.minor) return this.micro < other.micro;
- if (this.major == other.major) return this.minor < other.minor;
- return this.major < other.major;
+ return compareTo(other) < 0;
}
- /** Returns whether this version number (ignoring qualifier) is strictly higher than the given version */
+ /**
+ * Returns whether this version number is strictly higher than the given version. This has the same semantics as
+ * {@link this#compareTo}.
+ */
public boolean isAfter(Version other) {
- return ! this.isBefore(other) && ! this.equals(other);
+ return compareTo(other) > 0;
}
/** Creates a version specification that only matches this version */
diff --git a/component/src/test/java/com/yahoo/component/VersionTestCase.java b/component/src/test/java/com/yahoo/component/VersionTestCase.java
index 10862046dcb..9e4e8a5c702 100644
--- a/component/src/test/java/com/yahoo/component/VersionTestCase.java
+++ b/component/src/test/java/com/yahoo/component/VersionTestCase.java
@@ -93,11 +93,11 @@ public class VersionTestCase {
public void testOrder() {
assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3"))==0);
assertTrue(new Version("1.2.3").compareTo(new Version("1.2.4"))<0);
+ assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3.foo"))<0);
assertTrue(new Version("1.2.3").compareTo(new Version("1.2.2"))>0);
-
+ assertTrue(new Version("1.2.3.foo").compareTo(new Version("1.2.3"))>0);
assertTrue(new Version("1.2.3").compareTo(new Version("2"))<0);
assertTrue(new Version("1.2.3").compareTo(new Version("1.3"))<0);
-
assertTrue(new Version("1.0.0").compareTo(new Version("1"))==0);
}
@@ -107,9 +107,11 @@ public class VersionTestCase {
assertFalse(new Version("1.2.3").isBefore(new Version("1.1.3")));
assertFalse(new Version("1.2.3").isBefore(new Version("1.2.2")));
assertFalse(new Version("1.2.3").isBefore(new Version("1.2.3")));
+ assertFalse(new Version("1.2.3.foo").isBefore(new Version("1.2.3")));
assertTrue( new Version("1.2.3").isBefore(new Version("1.2.4")));
assertTrue( new Version("1.2.3").isBefore(new Version("1.3.3")));
assertTrue( new Version("1.2.3").isBefore(new Version("2.2.3")));
+ assertTrue( new Version("1.2.3").isBefore(new Version("1.2.3.foo")));
}
@Test
@@ -117,10 +119,12 @@ public class VersionTestCase {
assertTrue( new Version("1.2.3").isAfter(new Version("0.2.3")));
assertTrue( new Version("1.2.3").isAfter(new Version("1.1.3")));
assertTrue( new Version("1.2.3").isAfter(new Version("1.2.2")));
+ assertTrue( new Version("1.2.3.foo").isAfter(new Version("1.2.3")));
assertFalse(new Version("1.2.3").isAfter(new Version("1.2.3")));
assertFalse(new Version("1.2.3").isAfter(new Version("1.2.4")));
assertFalse(new Version("1.2.3").isAfter(new Version("1.3.3")));
assertFalse(new Version("1.2.3").isAfter(new Version("2.2.3")));
+ assertFalse(new Version("1.2.3").isAfter(new Version("1.2.3.foo")));
}
}