public boolean isMoveFrom(MailboxId mailboxId) { return messageMoves.removedMailboxIds() .contains(mailboxId); } }
public boolean isMoveFrom(MailboxId mailboxId) { return messageMoves.removedMailboxIds() .contains(mailboxId); }
public Stream<MailboxId> impactedMailboxIds() { return Stream.concat( addedMailboxIds().stream(), removedMailboxIds().stream()); }
private Map<QuotaRoot, Integer> buildMapQuotaRoot(MessageMoves messageMoves, MailboxMapper mailboxMapper) throws MailboxException { Map<QuotaRoot, Integer> messageCountByQuotaRoot = new HashMap<>(); for (MailboxId mailboxId : messageMoves.addedMailboxIds()) { QuotaRoot quotaRoot = retrieveQuotaRoot(mailboxMapper, mailboxId); int currentCount = Optional.ofNullable(messageCountByQuotaRoot.get(quotaRoot)) .orElse(0); messageCountByQuotaRoot.put(quotaRoot, currentCount + 1); } for (MailboxId mailboxId : messageMoves.removedMailboxIds()) { QuotaRoot quotaRoot = retrieveQuotaRoot(mailboxMapper, mailboxId); int currentCount = Optional.ofNullable(messageCountByQuotaRoot.get(quotaRoot)) .orElse(0); messageCountByQuotaRoot.put(quotaRoot, currentCount - 1); } return messageCountByQuotaRoot; }
private void applyMessageMoveNoMailboxChecks(MailboxSession mailboxSession, List<MailboxMessage> currentMailboxMessages, MessageMoves messageMoves) throws MailboxException { MailboxMessage mailboxMessage = currentMailboxMessages.stream().findAny().orElseThrow(() -> new MailboxNotFoundException("can't load message")); validateQuota(messageMoves, mailboxSession, mailboxMessage); addMessageToMailboxes(mailboxMessage, messageMoves.addedMailboxIds(), mailboxSession); removeMessageFromMailboxes(mailboxMessage, messageMoves.removedMailboxIds(), mailboxSession); dispatcher.moved(mailboxSession, messageMoves, ImmutableMap.of(mailboxMessage.getUid(), mailboxMessage)); }
private void applyMessageMoves(MailboxSession mailboxSession, List<MailboxMessage> currentMailboxMessages, MessageMoves messageMoves) throws MailboxException { assertRightsOnMailboxes(messageMoves.addedMailboxIds(), mailboxSession, Right.Insert); assertRightsOnMailboxes(messageMoves.removedMailboxIds(), mailboxSession, Right.DeleteMessages); applyMessageMoveNoMailboxChecks(mailboxSession, currentMailboxMessages, messageMoves); }