You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/07/17 02:24:22 UTC

[james-project] 08/31: [REFACTORING] Avoid variable reallocation in FetchResponseBuilder

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 06431cd7b0a9fed0c75e52ea04b757ae08854b55
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Jul 16 15:45:25 2020 +0700

    [REFACTORING] Avoid variable reallocation in FetchResponseBuilder
---
 .../imap/processor/fetch/FetchResponseBuilder.java | 55 +++++++++-------------
 1 file changed, 21 insertions(+), 34 deletions(-)

diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
index 73f18f7..4d83116 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
@@ -257,7 +257,6 @@ public final class FetchResponseBuilder {
     }
 
     private FetchResponse.BodyElement bodyFetch(MessageResult messageResult, BodyFetchElement fetchElement) throws MailboxException {
-
         final Long firstOctet = fetchElement.getFirstOctet();
         final Long numberOfOctets = fetchElement.getNumberOfOctets();
         final String name = fetchElement.getResponseName();
@@ -268,7 +267,6 @@ public final class FetchResponseBuilder {
         final Collection<String> names = fetchElement.getFieldNames();
         final FetchResponse.BodyElement fullResult = bodyContent(messageResult, name, specifier, path, names);
         return wrapIfPartialFetch(firstOctet, numberOfOctets, fullResult);
-
     }
 
     private FetchResponse.BodyElement bodyContent(MessageResult messageResult, String name, SectionType specifier, Optional<MimePath> path, Collection<String> names) throws MailboxException {
@@ -291,45 +289,38 @@ public final class FetchResponseBuilder {
     }
 
     private FetchResponse.BodyElement wrapIfPartialFetch(Long firstOctet, Long numberOfOctets, FetchResponse.BodyElement fullResult) {
-        final FetchResponse.BodyElement result;
         if (firstOctet == null) {
-            result = fullResult;
+            return fullResult;
         } else {
             final long numberOfOctetsAsLong = Objects.requireNonNullElse(numberOfOctets, Long.MAX_VALUE);
             final long firstOctetAsLong = firstOctet;
 
-            result = new PartialFetchBodyElement(fullResult, firstOctetAsLong, numberOfOctetsAsLong);
-            
-           
+            return new PartialFetchBodyElement(fullResult, firstOctetAsLong, numberOfOctetsAsLong);
         }
-        return result;
     }
 
     private FetchResponse.BodyElement text(MessageResult messageResult, String name, Optional<MimePath> path) throws MailboxException {
-        final FetchResponse.BodyElement result;
-        Content body;
+        Content body = Optional.ofNullable(getTextContent(messageResult, path))
+            .orElseGet(EmptyContent::new);
+        return new ContentBodyElement(name, body);
+    }
+
+    private Content getTextContent(MessageResult messageResult, Optional<MimePath> path) throws MailboxException {
         if (!path.isPresent()) {
             try {
-                body = messageResult.getBody();
+                return messageResult.getBody();
             } catch (IOException e) {
                 throw new MailboxException("Unable to get TEXT of body", e);
             }
         } else {
-            body = messageResult.getBody(path.get());
-        }
-        if (body == null) {
-            body = new EmptyContent();
+            return messageResult.getBody(path.get());
         }
-        result = new ContentBodyElement(name, body);
-        return result;
     }
 
     private FetchResponse.BodyElement mimeHeaders(MessageResult messageResult, String name, Optional<MimePath> path) throws MailboxException {
-        final FetchResponse.BodyElement result;
         final Iterator<Header> headers = getMimeHeaders(messageResult, path);
         List<Header> lines = MessageResultUtils.getAll(headers);
-        result = new MimeBodyElement(name, lines);
-        return result;
+        return new MimeBodyElement(name, lines);
     }
 
     private HeaderBodyElement headerBodyElement(MessageResult messageResult, String name, List<Header> lines, Optional<MimePath> path) throws MailboxException {
@@ -397,13 +388,11 @@ public final class FetchResponseBuilder {
     }
 
     private Iterator<Header> getHeaders(MessageResult messageResult, Optional<MimePath> path) throws MailboxException {
-        final Iterator<Header> headers;
         if (!path.isPresent()) {
-            headers = messageResult.getHeaders().headers();
+            return messageResult.getHeaders().headers();
         } else {
-            headers = messageResult.iterateHeaders(path.get());
+            return messageResult.iterateHeaders(path.get());
         }
-        return headers;
     }
 
     private Iterator<Header> getMimeHeaders(MessageResult messageResult, Optional<MimePath> path) throws MailboxException {
@@ -411,23 +400,21 @@ public final class FetchResponseBuilder {
     }
 
     private FetchResponse.BodyElement content(MessageResult messageResult, String name, Optional<MimePath> path) throws MailboxException {
-        final FetchResponse.BodyElement result;
-        Content full;
+        Content full =  Optional.ofNullable(getContent(messageResult, path))
+            .orElseGet(EmptyContent::new);;
+        return new ContentBodyElement(name, full);
+    }
+
+    private Content getContent(MessageResult messageResult, Optional<MimePath> path) throws MailboxException {
         if (!path.isPresent()) {
             try {
-                full = messageResult.getFullContent();
+                return messageResult.getFullContent();
 
             } catch (IOException e) {
                 throw new MailboxException("Unable to get content", e);
             }
         } else {
-            full = messageResult.getMimeBody(path.get());
+            return messageResult.getMimeBody(path.get());
         }
-
-        if (full == null) {
-            full = new EmptyContent();
-        }
-        result = new ContentBodyElement(name, full);
-        return result;
     }
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org