diff options
-rw-r--r-- | component/src/main/java/com/yahoo/component/Version.java | 26 | ||||
-rw-r--r-- | component/src/test/java/com/yahoo/component/VersionTestCase.java | 8 |
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); |