JAMES-2219 More functional style for getMailboxNameFromId
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/23055a3f Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/23055a3f Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/23055a3f Branch: refs/heads/master Commit: 23055a3ff2d836a961b12a6cfef9031ee35f48a0 Parents: 472447d Author: benwa <[email protected]> Authored: Thu Nov 16 09:25:45 2017 +0700 Committer: Antoine Duprat <[email protected]> Committed: Thu Nov 16 14:19:16 2017 +0100 ---------------------------------------------------------------------- .../methods/SetMailboxesCreationProcessor.java | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/23055a3f/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java index d9e4f1f..74f4f02 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java @@ -54,7 +54,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.fge.lambdas.Throwing; -import com.github.fge.lambdas.functions.ThrowingFunction; +import com.github.fge.lambdas.functions.FunctionChainer; import com.google.common.annotations.VisibleForTesting; public class SetMailboxesCreationProcessor implements SetMailboxesProcessor { @@ -168,7 +168,8 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor { MailboxCreationId parentId = mailboxRequest.getParentId().get(); String parentName = getMailboxNameFromId(parentId, mailboxSession) .orElseGet(Throwing.supplier(() -> - getMailboxNameFromId(creationIdsToCreatedMailboxId.get(parentId), mailboxSession) + getMailboxNameFromId(Optional.ofNullable(creationIdsToCreatedMailboxId.get(parentId)), + mailboxSession) .orElseThrow(() -> new MailboxParentNotFoundException(parentId)) )); @@ -178,10 +179,8 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor { return MailboxPath.forUser(mailboxSession.getUser().getUserName(), mailboxRequest.getName()); } - private Optional<String> getMailboxNameFromId(MailboxCreationId creationId, MailboxSession mailboxSession) { - ThrowingFunction<? super MailboxId, Optional<String>> toName = parentId -> getMailboxNameFromId(parentId, mailboxSession); - return getMailboxIdFromCreationId(creationId) - .flatMap(Throwing.function(toName).sneakyThrow()); + private Optional<String> getMailboxNameFromId(MailboxCreationId creationId, MailboxSession mailboxSession) throws MailboxException { + return getMailboxNameFromId(getMailboxIdFromCreationId(creationId), mailboxSession); } private Optional<MailboxId> getMailboxIdFromCreationId(MailboxCreationId creationId) { @@ -193,15 +192,16 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor { } @VisibleForTesting - Optional<String> getMailboxNameFromId(MailboxId mailboxId, MailboxSession mailboxSession) throws MailboxException { - if (mailboxId == null) { - return Optional.empty(); - } - try { - return Optional.of(mailboxManager.getMailbox(mailboxId, mailboxSession).getMailboxPath().getName()); - } catch (MailboxNotFoundException e) { - return Optional.empty(); - } + Optional<String> getMailboxNameFromId(Optional<MailboxId> mailboxId, MailboxSession mailboxSession) throws MailboxException { + FunctionChainer<MailboxId, Optional<String>> fromMailboxIdToMailboxPath = Throwing.function(id -> { + try { + return Optional.of(mailboxManager.getMailbox(id, mailboxSession).getMailboxPath().getName()); + } catch (MailboxNotFoundException e) { + return Optional.empty(); + } + }); + return mailboxId + .flatMap(fromMailboxIdToMailboxPath.sneakyThrow()); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
