MAILBOX-374 Slightly improve ListeningCurrentQuotaUpdater code quality
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b9266899 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b9266899 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b9266899 Branch: refs/heads/master Commit: b9266899a141a72a0c8e44c05a5dcf0d03856974 Parents: ac3d520 Author: Benoit Tellier <btell...@linagora.com> Authored: Tue Jan 22 11:47:42 2019 +0700 Committer: Benoit Tellier <btell...@linagora.com> Committed: Thu Jan 24 09:46:03 2019 +0700 ---------------------------------------------------------------------- .../quota/ListeningCurrentQuotaUpdater.java | 31 ++++++++------------ 1 file changed, 13 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/b9266899/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java index 57cee5a..cf6cace 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java @@ -19,13 +19,11 @@ package org.apache.james.mailbox.store.quota; import java.time.Instant; -import java.util.Collection; import javax.inject.Inject; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; -import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.events.EventBus; import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.events.RegistrationKey; @@ -78,16 +76,11 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener.GroupMailbo } private void handleExpungedEvent(Expunged expunged, QuotaRoot quotaRoot) throws MailboxException { - long addedSize = 0; - long addedCount = 0; - Collection<MessageUid> uids = expunged.getUids(); - for (MessageUid uid : uids) { - addedSize += expunged.getMetaData(uid).getSize(); - addedCount++; - } + long expungedSize = totalSize(expunged); + long expungedCount = (long) expunged.getUids().size(); // Expunge event can contain no data (expunge performed while no messages marked \Deleted) - if (addedCount != 0 && addedSize != 0) { - currentQuotaManager.decrease(quotaRoot, addedCount, addedSize); + if (expungedCount != 0 && expungedSize != 0) { + currentQuotaManager.decrease(quotaRoot, expungedCount, expungedSize); } eventBus.dispatch( EventFactory.quotaUpdated() @@ -103,13 +96,8 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener.GroupMailbo } private void handleAddedEvent(Added added, QuotaRoot quotaRoot) throws MailboxException { - long addedSize = 0; - long addedCount = 0; - Collection<MessageUid> uids = added.getUids(); - for (MessageUid uid : uids) { - addedSize += added.getMetaData(uid).getSize(); - addedCount++; - } + long addedSize = totalSize(added); + long addedCount = (long) added.getUids().size(); if (addedCount != 0 && addedSize != 0) { currentQuotaManager.increase(quotaRoot, addedCount, addedSize); } @@ -126,6 +114,13 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener.GroupMailbo .block(); } + private long totalSize(MetaDataHoldingEvent metaDataHoldingEvent) { + return metaDataHoldingEvent.getUids() + .stream() + .mapToLong(uid -> metaDataHoldingEvent.getMetaData(uid).getSize()) + .sum(); + } + private void handleMailboxDeletionEvent(MailboxDeletion mailboxDeletionEvent) throws MailboxException { boolean mailboxContainedMessages = mailboxDeletionEvent.getDeletedMessageCount().asLong() > 0; if (mailboxContainedMessages) { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org