[jsemver] 72/95: Implement fluent interface for Version.Builder

Alexandre Viau reazem-guest at moszumanska.debian.org
Mon Feb 16 14:58:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

reazem-guest pushed a commit to branch master
in repository jsemver.

commit 371d1000657dd57f6a79e1eab5298008baeca2bf
Author: Zafar Khaja <zafarkhaja at gmail.com>
Date:   Thu Jan 23 18:49:27 2014 +0400

    Implement fluent interface for Version.Builder
---
 src/main/java/com/github/zafarkhaja/semver/Version.java     | 12 +++++++++---
 src/test/java/com/github/zafarkhaja/semver/VersionTest.java | 11 +++++++++++
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/github/zafarkhaja/semver/Version.java b/src/main/java/com/github/zafarkhaja/semver/Version.java
index 6cd3477..9d9a3a2 100644
--- a/src/main/java/com/github/zafarkhaja/semver/Version.java
+++ b/src/main/java/com/github/zafarkhaja/semver/Version.java
@@ -106,27 +106,33 @@ public class Version implements Comparable<Version> {
          * Sets the normal version.
          *
          * @param normal the string representation of the normal version
+         * @return this builder instance
          */
-        public void setNormalVersion(String normal) {
+        public Builder setNormalVersion(String normal) {
             this.normal = normal;
+            return this;
         }
 
         /**
          * Sets the pre-release version.
          *
          * @param preRelease the string representation of the pre-release version
+         * @return this builder instance
          */
-        public void setPreReleaseVersion(String preRelease) {
+        public Builder setPreReleaseVersion(String preRelease) {
             this.preRelease = preRelease;
+            return this;
         }
 
         /**
          * Sets the build metadata.
          *
          * @param build the string representation of the build metadata
+         * @return this builder instance
          */
-        public void setBuildMetadata(String build) {
+        public Builder setBuildMetadata(String build) {
             this.build = build;
+            return this;
         }
 
         /**
diff --git a/src/test/java/com/github/zafarkhaja/semver/VersionTest.java b/src/test/java/com/github/zafarkhaja/semver/VersionTest.java
index edae560..979b251 100644
--- a/src/test/java/com/github/zafarkhaja/semver/VersionTest.java
+++ b/src/test/java/com/github/zafarkhaja/semver/VersionTest.java
@@ -429,6 +429,17 @@ public class VersionTest {
             builder.setBuildMetadata("build");
             assertEquals(Version.valueOf("1.0.0-alpha+build"), builder.build());
         }
+
+        @Test
+        public void shouldImplementFluentInterface() {
+            Version.Builder builder = new Version.Builder();
+            Version version = builder
+                .setNormalVersion("1.0.0")
+                .setPreReleaseVersion("alpha")
+                .setBuildMetadata("build")
+                .build();
+            assertEquals(Version.valueOf("1.0.0-alpha+build"), version);
+        }
     }
 
     public static class BuildAwareOrderTest {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jsemver.git



More information about the pkg-java-commits mailing list