@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 void storeAttachmentsForMessage(Collection<Attachment> attachments, MessageId ownerMessageId, MailboxSession mailboxSession) throws MailboxException { attachmentMapperFactory.getAttachmentMapper(mailboxSession).storeAttachmentsForMessage(attachments, ownerMessageId); }
private Collection<MessageId> getRelatedMessageIds(AttachmentId attachmentId, MailboxSession mailboxSession) throws MailboxException { return attachmentMapperFactory.getAttachmentMapper(mailboxSession).getRelatedMessageIds(attachmentId); }
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); }
@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; }
public long nextModSeq(Mailbox mailbox) throws MailboxException { return modSeqProvider.nextModSeq(mailboxSession, mailbox); }
@Override public void storeAttachment(Attachment attachment, MailboxSession mailboxSession) throws MailboxException { attachmentMapperFactory.getAttachmentMapper(mailboxSession) .storeAttachmentForOwner(attachment, Username.fromMailboxSession(mailboxSession)); }
@Override public Iterator<UpdatedFlags> updateFlags(Mailbox mailbox, FlagsUpdateCalculator flagsUpdateCalculator, MessageRange set) throws MailboxException { Iterator<MailboxMessage> messages = findInMailbox(mailbox, set, FetchType.Metadata, UNLIMIT_MAX_SIZE); MessageChangedFlags messageChangedFlags = messageMetadataMapper.updateFlags(mailbox, flagsUpdateCalculator, messages); for (MailboxMessage mailboxMessage : messageChangedFlags.getChangedFlags()) { save(mailbox, mailboxMessage); } return messageChangedFlags.getUpdatedFlags(); }
@Override public long getHighestModSeq(Mailbox mailbox) throws MailboxException { return modSeqProvider.highestModSeq(mailboxSession, mailbox); }
private Iterator<MessageUid> listAllMessageUids(MailboxSession session) throws MailboxException { final MessageMapper messageMapper = mapperFactory.getMessageMapper(session); return messageMapper.execute( () -> messageMapper.listAllMessageUids(mailbox)); }
@Override public Optional<MessageUid> getLastUid(Mailbox mailbox) throws MailboxException { return uidProvider.lastUid(mailboxSession, mailbox); }
@Override public long getHighestModSeq(Mailbox mailbox) throws MailboxException { return messageMetadataMapper.getHighestModSeq(mailbox); }
public JPAMessageMapper(MailboxSession mailboxSession, UidProvider uidProvider, ModSeqProvider modSeqProvider, EntityManagerFactory entityManagerFactory) { super(entityManagerFactory); this.messageMetadataMapper = new MessageUtils(mailboxSession, uidProvider, modSeqProvider); }
@Override public Optional<MessageUid> getLastUid(Mailbox mailbox) throws MailboxException { return messageMetadataMapper.getLastUid(mailbox); }
public MessageUid nextUid(Mailbox mailbox) throws MailboxException { return uidProvider.nextUid(mailboxSession, mailbox); }
@Override public Flags getApplicableFlags(MailboxSession session) throws MailboxException { return mapperFactory.getMessageMapper(session) .getApplicableFlag(mailbox); }
@Override public long generateModSeq(Mailbox mailbox) throws MailboxException { return inMemoryMailboxSessionMapperFactory.getModSeqProvider() .nextModSeq(MAILBOX_SESSION, mailbox); }
public long getHighestModSeq(Mailbox mailbox) throws MailboxException { return modSeqProvider.highestModSeq(mailboxSession, mailbox); }
public Optional<MessageUid> getLastUid(Mailbox mailbox) throws MailboxException { return uidProvider.lastUid(mailboxSession, mailbox); }
@Override public long highestModSeq(Mailbox mailbox) throws MailboxException { return inMemoryMailboxSessionMapperFactory.getModSeqProvider() .highestModSeq(MAILBOX_SESSION, mailbox); }