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 ad...@apache.org on 2017/11/16 13:20:29 UTC
[2/8] james-project git commit: JAMES-2219 More functional style for
getMailboxNameFromId
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 <bt...@linagora.com>
Authored: Thu Nov 16 09:25:45 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org