summaryrefslogtreecommitdiffstats
path: root/component
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-04-03 13:31:16 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-04-03 13:31:16 +0200
commitbd59ab7a07d2ee5e56419e53058a58fecdec4644 (patch)
tree53ddf48fa3324624a51e9ff051edb52cc72f0b8d /component
parent124bd9621af39329d2dcc3dcb1009cd9a8ed6595 (diff)
Add toFullString for Version.
Diffstat (limited to 'component')
-rw-r--r--component/src/main/java/com/yahoo/component/Version.java26
-rw-r--r--component/src/test/java/com/yahoo/component/VersionTestCase.java8
2 files changed, 31 insertions, 3 deletions
diff --git a/component/src/main/java/com/yahoo/component/Version.java b/component/src/main/java/com/yahoo/component/Version.java
index 9f874716bc0..7b07cbebdde 100644
--- a/component/src/main/java/com/yahoo/component/Version.java
+++ b/component/src/main/java/com/yahoo/component/Version.java
@@ -3,7 +3,6 @@ package com.yahoo.component;
import com.yahoo.text.Utf8;
import com.yahoo.text.Utf8Array;
-import com.yahoo.text.Utf8String;
import java.nio.ByteBuffer;
@@ -226,7 +225,7 @@ public final class Version implements Comparable<Version> {
private String toStringValue() {
StringBuilder b = new StringBuilder();
- if (! qualifier.equals("")) {
+ if (! qualifier.isEmpty()) {
b.append(getMajor());
b.append(".");
b.append(getMinor());
@@ -250,6 +249,26 @@ public final class Version implements Comparable<Version> {
return b.toString();
}
+ /**
+ * Returns the string representation of this version identifier as major.minor.micro.qualifier,
+ * omitting .qualifier if qualifier was empty or unspecified
+ */
+ public String toFullString() {
+ StringBuilder b = new StringBuilder();
+ b.append(getMajor());
+ b.append(".");
+ b.append(getMinor());
+ b.append(".");
+ b.append(getMicro());
+
+ if (! qualifier.isEmpty()) {
+ b.append(".");
+ b.append(qualifier);
+ }
+
+ return b.toString();
+ }
+
/** Returns the major component of this version, or 0 if not specified */
public int getMajor() { return major; }
@@ -264,7 +283,8 @@ public final class Version implements Comparable<Version> {
/**
* Returns the string representation of this version identifier as major.minor.micro.qualifier,
- * omitting .qualifier if qualifier was empty or unspecified
+ * omitting the remaining parts after reaching the first unspecified component.
+ * Unspecified version component is equivalent to 0 (or the empty string for qualifier).
*/
public String toString() { return stringValue; }
diff --git a/component/src/test/java/com/yahoo/component/VersionTestCase.java b/component/src/test/java/com/yahoo/component/VersionTestCase.java
index 1d28de853a8..99a27347d5f 100644
--- a/component/src/test/java/com/yahoo/component/VersionTestCase.java
+++ b/component/src/test/java/com/yahoo/component/VersionTestCase.java
@@ -67,6 +67,14 @@ public class VersionTestCase extends junit.framework.TestCase {
assertEquals("1.2.3.qualifier",new Version(1,2,3,"qualifier").toString());
}
+ public void testToFullString() {
+ assertEquals("0.0.0",new Version().toFullString());
+ assertEquals("1.0.0",new Version(1).toFullString());
+ assertEquals("1.2.0",new Version(1,2).toFullString());
+ assertEquals("1.2.3",new Version(1,2,3).toFullString());
+ assertEquals("1.2.3.qualifier",new Version(1,2,3,"qualifier").toFullString());
+ }
+
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);