public long nextModSeq(Mailbox mailbox) throws MailboxException { return modSeqProvider.nextModSeq(mailboxSession, mailbox); }
public long getHighestModSeq(Mailbox mailbox) throws MailboxException { return modSeqProvider.highestModSeq(mailboxSession, mailbox); }
@Override public MessageMetaData copy(Mailbox mailbox, MailboxMessage original) throws MailboxException { MessageUid uid = uidProvider.nextUid(mailboxSession, mailbox); long modSeq = -1; if (modSeqProvider != null) { modSeq = modSeqProvider.nextModSeq(mailboxSession, mailbox); } final MessageMetaData metaData = copy(mailbox, uid, modSeq, original); return metaData; }
@Override public long getHighestModSeq(Mailbox mailbox) throws MailboxException { return modSeqProvider.highestModSeq(mailboxSession, mailbox); }
@Override public long generateModSeq(Mailbox mailbox) throws MailboxException { return inMemoryMailboxSessionMapperFactory.getModSeqProvider() .nextModSeq(MAILBOX_SESSION, mailbox); }
@Override public long highestModSeq(Mailbox mailbox) throws MailboxException { return inMemoryMailboxSessionMapperFactory.getModSeqProvider() .highestModSeq(MAILBOX_SESSION, mailbox); }
private Optional<Pair<Flags, ComposedMessageIdWithMetaData>> updateFlags(MailboxId mailboxId, MessageId messageId, Flags newState, MessageManager.FlagsUpdateMode updateMode) throws MailboxException { CassandraId cassandraId = (CassandraId) mailboxId; ComposedMessageIdWithMetaData oldComposedId = imapUidDAO.retrieve((CassandraMessageId) messageId, Optional.of(cassandraId)) .join() .findFirst() .orElseThrow(MailboxDeleteDuringUpdateException::new); Flags newFlags = new FlagsUpdateCalculator(newState, updateMode).buildNewFlags(oldComposedId.getFlags()); if (identicalFlags(oldComposedId, newFlags)) { return Optional.of(Pair.of(oldComposedId.getFlags(), oldComposedId)); } ComposedMessageIdWithMetaData newComposedId = new ComposedMessageIdWithMetaData( oldComposedId.getComposedMessageId(), newFlags, modSeqProvider.nextModSeq(mailboxSession, cassandraId)); return updateFlags(oldComposedId, newComposedId); }
@Override public MessageMetaData add(Mailbox mailbox, MailboxMessage message) throws MailboxException { message.setUid(uidProvider.nextUid(mailboxSession, mailbox)); // if a mailbox does not support mod-sequences the provider may be null if (modSeqProvider != null) { message.setModSeq(modSeqProvider.nextModSeq(mailboxSession, mailbox)); } MessageMetaData data = save(mailbox, message); return data; }
modSeq = modSeqProvider.nextModSeq(mailboxSession, mailbox);
private void save(MailboxSession mailboxSession, MessageIdMapper messageIdMapper, MailboxMessage mailboxMessage) throws MailboxException { long modSeq = mailboxSessionMapperFactory.getModSeqProvider().nextModSeq(mailboxSession, mailboxMessage.getMailboxId()); MessageUid uid = mailboxSessionMapperFactory.getUidProvider().nextUid(mailboxSession, mailboxMessage.getMailboxId()); mailboxMessage.setModSeq(modSeq); mailboxMessage.setUid(uid); messageIdMapper.copyInMailbox(mailboxMessage); }