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]

Reply via email to