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