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:31 UTC
[4/8] james-project git commit: JAMES-2219 Refactor Parent handling
while creating mailbox
JAMES-2219 Refactor Parent handling while creating mailbox
- Avoid needless exception declaration (avoid function wrapping)
- Makes finding functions returns MailboxPath (for future ownership enforcing)
- Review function extraction logic, and rely more on variables
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f656a9ec
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f656a9ec
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f656a9ec
Branch: refs/heads/master
Commit: f656a9ec17fed9967169974aa0aa5adb2e95de79
Parents: 23055a3
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 16 09:54:19 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Thu Nov 16 14:19:16 2017 +0100
----------------------------------------------------------------------
.../methods/SetMailboxesCreationProcessor.java | 28 ++++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f656a9ec/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 74f4f02..0f71d2e 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
@@ -113,7 +113,7 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
Map<MailboxCreationId, MailboxId> creationIdsToCreatedMailboxId, SetMailboxesResponse.Builder builder) {
try {
ensureValidMailboxName(mailboxRequest, mailboxSession);
- MailboxPath mailboxPath = getMailboxPath(mailboxRequest, creationIdsToCreatedMailboxId, mailboxSession);
+ MailboxPath mailboxPath = computeMailboxPath(mailboxRequest, creationIdsToCreatedMailboxId, mailboxSession);
Optional<MailboxId> mailboxId = mailboxManager.createMailbox(mailboxPath, mailboxSession);
Optional<Mailbox> mailbox = mailboxId.flatMap(id -> mailboxFactory.builder()
.id(id)
@@ -163,24 +163,24 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
}
}
- private MailboxPath getMailboxPath(MailboxCreateRequest mailboxRequest, Map<MailboxCreationId, MailboxId> creationIdsToCreatedMailboxId, MailboxSession mailboxSession) throws MailboxException {
+ private MailboxPath computeMailboxPath(MailboxCreateRequest mailboxRequest, Map<MailboxCreationId, MailboxId> creationIdsToCreatedMailboxId, MailboxSession mailboxSession) throws MailboxException {
if (mailboxRequest.getParentId().isPresent()) {
MailboxCreationId parentId = mailboxRequest.getParentId().get();
- String parentName = getMailboxNameFromId(parentId, mailboxSession)
- .orElseGet(Throwing.supplier(() ->
- getMailboxNameFromId(Optional.ofNullable(creationIdsToCreatedMailboxId.get(parentId)),
- mailboxSession)
- .orElseThrow(() -> new MailboxParentNotFoundException(parentId))
- ));
+ MailboxPath parentPath = getMailboxPath(creationIdsToCreatedMailboxId, mailboxSession, parentId);
return MailboxPath.forUser(mailboxSession.getUser().getUserName(),
- parentName + mailboxSession.getPathDelimiter() + mailboxRequest.getName());
+ parentPath.getName() + mailboxSession.getPathDelimiter() + mailboxRequest.getName());
}
return MailboxPath.forUser(mailboxSession.getUser().getUserName(), mailboxRequest.getName());
}
- private Optional<String> getMailboxNameFromId(MailboxCreationId creationId, MailboxSession mailboxSession) throws MailboxException {
- return getMailboxNameFromId(getMailboxIdFromCreationId(creationId), mailboxSession);
+ private MailboxPath getMailboxPath(Map<MailboxCreationId, MailboxId> creationIdsToCreatedMailboxId, MailboxSession mailboxSession, MailboxCreationId parentId) throws MailboxException {
+ Optional<MailboxId> mailboxId = getMailboxIdFromCreationId(parentId);
+ Optional<MailboxId> mailboxIdFromCreationId = Optional.ofNullable(creationIdsToCreatedMailboxId.get(parentId));
+
+ return getMailboxPathFromId(mailboxId, mailboxSession)
+ .orElseGet(() -> getMailboxPathFromId(mailboxIdFromCreationId, mailboxSession)
+ .orElseThrow(() -> new MailboxParentNotFoundException(parentId)));
}
private Optional<MailboxId> getMailboxIdFromCreationId(MailboxCreationId creationId) {
@@ -192,10 +192,10 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
}
@VisibleForTesting
- Optional<String> getMailboxNameFromId(Optional<MailboxId> mailboxId, MailboxSession mailboxSession) throws MailboxException {
- FunctionChainer<MailboxId, Optional<String>> fromMailboxIdToMailboxPath = Throwing.function(id -> {
+ Optional<MailboxPath> getMailboxPathFromId(Optional<MailboxId> mailboxId, MailboxSession mailboxSession) {
+ FunctionChainer<MailboxId, Optional<MailboxPath>> fromMailboxIdToMailboxPath = Throwing.function(id -> {
try {
- return Optional.of(mailboxManager.getMailbox(id, mailboxSession).getMailboxPath().getName());
+ return Optional.of(mailboxManager.getMailbox(id, mailboxSession).getMailboxPath());
} catch (MailboxNotFoundException e) {
return Optional.empty();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org