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 <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org