@Override public List<MessageRange> moveMessages(MessageRange set, MailboxPath from, MailboxPath to, final MailboxSession session) throws MailboxException { final StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session); final StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session); return moveBatcher.batchMessages(set, messageRange -> fromMailbox.moveTo(messageRange, toMailbox, session)); }
@Override public Iterator<Header> iterateHeaders(MimePath path) throws MailboxException { final Iterator<Header> result; final PartContent partContent = getPartContent(path); if (partContent == null) { result = null; } else { result = partContent.getHeaders(); } return result; }
@Override public Iterator<Header> iterateMimeHeaders(MimePath path) throws MailboxException { final Iterator<Header> result; final PartContent partContent = getPartContent(path); if (partContent == null) { result = null; } else { result = partContent.getMimeHeaders(); } return result; }
/** * Create a {@link MailboxManager} for the given Mailbox. By default this will return a {@link StoreMessageManager}. If * your implementation needs something different, just override this method * * @param mailbox * @param session * @return storeMailbox */ protected StoreMessageManager createMessageManager(Mailbox mailbox, MailboxSession session) throws MailboxException { return new StoreMessageManager(DEFAULT_NO_MESSAGE_CAPABILITIES, getMapperFactory(), getMessageSearchIndex(), getEventDispatcher(), getLocker(), mailbox, getQuotaManager(), getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), getBatchSizes(), getImmutableMailboxMessageFactory(), getStoreRightManager()); }
public MessageIdManager createMessageIdManager(StoreMailboxManager mailboxManager, MessageId.Factory factory) { return new StoreMessageIdManager( mailboxManager, mailboxManager.getMapperFactory(), mailboxManager.getEventDispatcher(), factory, mailboxManager.getQuotaManager(), mailboxManager.getQuotaRootResolver()); }
public static BatchSizes uniqueBatchSize(int batchSize) { return new Builder() .fetchMetadata(batchSize) .fetchHeaders(batchSize) .fetchBody(batchSize) .fetchFull(batchSize) .copyBatchSize(batchSize) .moveBatchSize(batchSize) .build(); }
@Override public List<MessageRange> copyMessages(MessageRange set, MailboxId from, MailboxId to, final MailboxSession session) throws MailboxException { final StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session); final StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session); return copyMessages(set, session, toMailbox, fromMailbox); }
@Override public MessageResultIterator getMessages(MessageRange set, FetchGroup fetchGroup, MailboxSession mailboxSession) throws MailboxException { final MessageMapper messageMapper = mapperFactory.getMessageMapper(mailboxSession); return new StoreMessageResultIterator(messageMapper, mailbox, set, batchSizes, fetchGroup); }
@Override public Content getBody(MimePath path) throws MailboxException { final Content result; final PartContent partContent = getPartContent(path); if (partContent == null) { result = null; } else { result = partContent.getBody(); } return result; }
@Override public Content getFullContent(MimePath path) throws MailboxException { final Content result; final PartContent partContent = getPartContent(path); if (partContent == null) { result = null; } else { result = partContent.getFull(); } return result; }
@Override public Content getMimeBody(MimePath path) throws MailboxException { final Content result; final PartContent partContent = getPartContent(path); if (partContent == null) { result = null; } else { result = partContent.getMimeBody(); } return result; }
public void setHeaders(MimePath path, Iterator<Header> headers) { final PartContent partContent = getPartContent(path); partContent.setHeaders(headers); }
public void setMimeHeaders(MimePath path, Iterator<Header> headers) { final PartContent partContent = getPartContent(path); partContent.setMimeHeaders(headers); }
public void setMimeBodyContent(MimePath path, Content content) { final PartContent partContent = getPartContent(path); partContent.setMimeBody(content); }
@Override public boolean isWriteable(MailboxSession session) throws MailboxException { return storeRightManager.isReadWrite(session, mailbox, getSharedPermanentFlags(session)); }
@Override public MailboxPath getMailboxPath() throws MailboxException { return new StoreMailboxPath(getMailboxEntity()); }
private List<MessageRange> copyMessages(MessageRange set, final MailboxSession session, final StoreMessageManager toMailbox, final StoreMessageManager fromMailbox) throws MailboxException { return copyBatcher.batchMessages(set, messageRange -> fromMailbox.copyTo(messageRange, toMailbox, session)); }
public void setBodyContent(MimePath path, Content content) { final PartContent partContent = getPartContent(path); partContent.setBody(content); }
public void setCopyBatchSize(BatchSizes batchSizes) { this.copyBatcher = new MessageBatcher(batchSizes.getCopyBatchSize()); }
/** * End processing of Request for session */ @Override public void endProcessingRequest(MailboxSession session) { mailboxSessionMapperFactory.endProcessingRequest(session); }