From 07a1ecd92d932c6de1fa4a95fc3587d1ba20511b Mon Sep 17 00:00:00 2001 From: Dmitry Zaystev Date: Sat, 25 Apr 2015 12:33:27 +0500 Subject: [PATCH 1/5] #113 refactored RsWithHeaders --- src/main/java/org/takes/rs/RsWithHeaders.java | 39 ++++++++----------- .../java/org/takes/rs/RsWithHeadersTest.java | 5 ++- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/takes/rs/RsWithHeaders.java b/src/main/java/org/takes/rs/RsWithHeaders.java index e6cf2678f..aa796a664 100644 --- a/src/main/java/org/takes/rs/RsWithHeaders.java +++ b/src/main/java/org/takes/rs/RsWithHeaders.java @@ -23,11 +23,7 @@ */ package org.takes.rs; -import java.io.IOException; -import java.io.InputStream; import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; import lombok.EqualsAndHashCode; import org.takes.Response; @@ -59,25 +55,22 @@ public RsWithHeaders(final Response res, final CharSequence... headers) { */ public RsWithHeaders(final Response res, final Iterable headers) { - super( - new Response() { - @Override - public List head() throws IOException { - final List head = new LinkedList(); - for (final String hdr : res.head()) { - head.add(hdr); - } - for (final CharSequence header : headers) { - head.add(header.toString().trim()); - } - return head; - } - @Override - public InputStream body() throws IOException { - return res.body(); - } - } - ); + super(RsWithHeaders.build(res, headers)); } + /** + * Build a response. + * @param res Original response + * @param headers Headers + * @return Response with headers + */ + @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") + private static Response build(final Response res, + final Iterable headers) { + Response resp = res; + for (final CharSequence hdr: headers) { + resp = new RsWithHeader(resp, hdr); + } + return resp; + } } diff --git a/src/test/java/org/takes/rs/RsWithHeadersTest.java b/src/test/java/org/takes/rs/RsWithHeadersTest.java index 9175d164f..8df9f2c57 100644 --- a/src/test/java/org/takes/rs/RsWithHeadersTest.java +++ b/src/test/java/org/takes/rs/RsWithHeadersTest.java @@ -40,6 +40,7 @@ public final class RsWithHeadersTest { /** * RsWithHeaders can add headers. * @throws IOException If some problem inside + * @checkstyle MultipleStringLiteralsCheck (20 lines) */ @Test public void addsHeadersToResponse() throws IOException { @@ -47,8 +48,8 @@ public void addsHeadersToResponse() throws IOException { new RsPrint( new RsWithHeaders( new RsEmpty(), - "Host: www.example.com ", - "Content-Type: text/xml " + "Host: www.example.com", + "Content-Type: text/xml" ) ).print(), Matchers.equalTo( From 35b48e92bed39a14325e7f79e6961afa164b9743 Mon Sep 17 00:00:00 2001 From: Dmitry Zaystev Date: Sat, 25 Apr 2015 21:55:41 +0500 Subject: [PATCH 2/5] #113 got rid the checkstyle suppression --- src/test/java/org/takes/rs/RsWithHeadersTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/test/java/org/takes/rs/RsWithHeadersTest.java b/src/test/java/org/takes/rs/RsWithHeadersTest.java index 8df9f2c57..5c0844617 100644 --- a/src/test/java/org/takes/rs/RsWithHeadersTest.java +++ b/src/test/java/org/takes/rs/RsWithHeadersTest.java @@ -40,23 +40,24 @@ public final class RsWithHeadersTest { /** * RsWithHeaders can add headers. * @throws IOException If some problem inside - * @checkstyle MultipleStringLiteralsCheck (20 lines) */ @Test public void addsHeadersToResponse() throws IOException { + final String host = "Host: www.example.com"; + final String type = "Content-Type: text/xml"; MatcherAssert.assertThat( new RsPrint( new RsWithHeaders( new RsEmpty(), - "Host: www.example.com", - "Content-Type: text/xml" + host, + type ) ).print(), Matchers.equalTo( Joiner.on("\r\n").join( "HTTP/1.1 200 OK", - "Host: www.example.com", - "Content-Type: text/xml", + host, + type, "", "" ) From 2d85d15497b35499dde4ab1d1fe31faab0fa0966 Mon Sep 17 00:00:00 2001 From: Dmitry Zaytsev Date: Tue, 5 May 2015 16:05:03 +0500 Subject: [PATCH 3/5] removed the logic from the ctor --- src/main/java/org/takes/rs/RsWithHeaders.java | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/takes/rs/RsWithHeaders.java b/src/main/java/org/takes/rs/RsWithHeaders.java index aa796a664..7330613a1 100644 --- a/src/main/java/org/takes/rs/RsWithHeaders.java +++ b/src/main/java/org/takes/rs/RsWithHeaders.java @@ -23,7 +23,11 @@ */ package org.takes.rs; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import lombok.EqualsAndHashCode; import org.takes.Response; @@ -55,22 +59,38 @@ public RsWithHeaders(final Response res, final CharSequence... headers) { */ public RsWithHeaders(final Response res, final Iterable headers) { - super(RsWithHeaders.build(res, headers)); + super( + new Response() { + @Override + public List head() throws IOException { + return RsWithHeaders.extend(res, headers); + } + @Override + public InputStream body() throws IOException { + return res.body(); + } + } + ); } /** - * Build a response. + * Add to head additional headers. * @param res Original response - * @param headers Headers - * @return Response with headers + * @param headers Values witch will be added to head + * @return Head with additional headers + * @throws IOException If fails */ @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") - private static Response build(final Response res, - final Iterable headers) { + private static List extend(final Response res, + final Iterable headers) throws IOException { Response resp = res; for (final CharSequence hdr: headers) { resp = new RsWithHeader(resp, hdr); } - return resp; + final List ret = new ArrayList(1); + for (final String hdr: resp.head()) { + ret.add(hdr); + } + return ret; } } From 690d60333a2a73d4dd4c8eb9e0253085fa6ee6ac Mon Sep 17 00:00:00 2001 From: Dmitry Zaystev Date: Tue, 5 May 2015 23:53:34 +0500 Subject: [PATCH 4/5] simplified --- src/main/java/org/takes/rs/RsWithHeaders.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/takes/rs/RsWithHeaders.java b/src/main/java/org/takes/rs/RsWithHeaders.java index 7330613a1..c1b978b68 100644 --- a/src/main/java/org/takes/rs/RsWithHeaders.java +++ b/src/main/java/org/takes/rs/RsWithHeaders.java @@ -62,7 +62,7 @@ public RsWithHeaders(final Response res, super( new Response() { @Override - public List head() throws IOException { + public Iterable head() throws IOException { return RsWithHeaders.extend(res, headers); } @Override @@ -81,16 +81,12 @@ public InputStream body() throws IOException { * @throws IOException If fails */ @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") - private static List extend(final Response res, + private static Iterable extend(final Response res, final Iterable headers) throws IOException { Response resp = res; for (final CharSequence hdr: headers) { resp = new RsWithHeader(resp, hdr); } - final List ret = new ArrayList(1); - for (final String hdr: resp.head()) { - ret.add(hdr); - } - return ret; + return resp.head(); } } From fe57e6a23cb6128c0b13a016a724def0487c517b Mon Sep 17 00:00:00 2001 From: Dmitry Zaystev Date: Wed, 6 May 2015 00:00:56 +0500 Subject: [PATCH 5/5] qulice fix --- src/main/java/org/takes/rs/RsWithHeaders.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/takes/rs/RsWithHeaders.java b/src/main/java/org/takes/rs/RsWithHeaders.java index c1b978b68..f8ad6b58a 100644 --- a/src/main/java/org/takes/rs/RsWithHeaders.java +++ b/src/main/java/org/takes/rs/RsWithHeaders.java @@ -25,9 +25,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import lombok.EqualsAndHashCode; import org.takes.Response;