Skip to content

Commit

Permalink
JAMES-1947 MessageManager should support method to getApplicableFlag
Browse files Browse the repository at this point in the history
  • Loading branch information
Quynh Nguyen authored and chibenwa committed Feb 28, 2017
1 parent c7f3e37 commit 2d7b78a
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 4 deletions.
Expand Up @@ -169,7 +169,9 @@ enum FlagsUpdateMode {
* Gets the path of the referenced mailbox
*/
MailboxPath getMailboxPath() throws MailboxException;


Flags getApplicableFlag(MailboxSession session) throws MailboxException;

/**
* Gets current meta data for the mailbox.<br>
* Consolidates common calls together to allow improved performance.<br>
Expand Down
Expand Up @@ -109,7 +109,7 @@ public CassandraMailboxSessionMapperFactory(CassandraUidProvider uidProvider, Ca
public CassandraMessageMapper createMessageMapper(MailboxSession mailboxSession) {
return new CassandraMessageMapper(uidProvider, modSeqProvider, null, maxRetry,
(CassandraAttachmentMapper) createAttachmentMapper(mailboxSession),
messageDAO, messageIdDAO, imapUidDAO, mailboxCounterDAO, mailboxRecentsDAO, indexTableHandler, firstUnseenDAO);
messageDAO, messageIdDAO, imapUidDAO, mailboxCounterDAO, mailboxRecentsDAO, applicableFlagDAO, indexTableHandler, firstUnseenDAO);
}

@Override
Expand Down
Expand Up @@ -289,7 +289,8 @@ public long getHighestModSeq(Mailbox mailbox) throws MailboxException {

@Override
public Flags getApplicableFlag(Mailbox mailbox) throws MailboxException {
return new ApplicableFlagCalculator(findMessagesInMailbox((JPAId) mailbox.getMailboxId(), -1))
int maxBatchSize = -1;
return new ApplicableFlagCalculator(findMessagesInMailbox((JPAId) mailbox.getMailboxId(), maxBatchSize))
.computeApplicableFlags();
}

Expand Down
Expand Up @@ -857,4 +857,10 @@ public MailboxId getId() {
public MailboxPath getMailboxPath() throws MailboxException {
return new StoreMailboxPath(getMailboxEntity());
}

@Override
public Flags getApplicableFlag(MailboxSession session) throws MailboxException {
return mapperFactory.getMessageMapper(session)
.getApplicableFlag(mailbox);
}
}
Expand Up @@ -24,6 +24,7 @@

import javax.mail.Flags;

import org.apache.commons.lang.NotImplementedException;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
Expand Down
Expand Up @@ -322,6 +322,11 @@ public MailboxId getId() {
public MailboxPath getMailboxPath() {
return null;
}

@Override
public Flags getApplicableFlag(MailboxSession session) throws MailboxException {
throw new NotImplementedException();
}
};
}

Expand Down
Expand Up @@ -116,7 +116,8 @@ protected void configure() {
cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule.class);
cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule.class);
cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule.class);

cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule.class);

Multibinder.newSetBinder(binder(), MailboxManagerDefinition.class).addBinding().to(CassandraMailboxManagerDefinition.class);
}

Expand Down

0 comments on commit 2d7b78a

Please sign in to comment.