@Override public int compareTo(MessageResult that) { return uid.compareTo(that.getUid()); }
@Override public int compareTo(MessageResult that) { return this.getUid().compareTo(that.getUid()); }
@Override public MessageResult next() { if (!hasNext()) { throw new NoSuchElementException(); } final MailboxMessage message = next.next(); MessageResult result; try { result = ResultUtils.loadMessageResult(message, group); cursor = result.getUid(); } catch (MailboxException e) { result = new UnloadedMessageResult(message, e); } cursor = cursor.next(); return result; }
@Override public List<MessageMetaData> getMessages() throws IOException { try { mailboxManager.startProcessingRequest(session); Iterator<MessageResult> results = manager.getMessages(MessageRange.all(), METADATA_GROUP, session); List<MessageMetaData> mList = new ArrayList<>(); while (results.hasNext()) { MessageResult result = results.next(); MessageMetaData metaData = new MessageMetaData(String.valueOf(result.getUid().asLong()), result.getSize()); mList.add(metaData); } return ImmutableList.copyOf(mList); } catch (MailboxException e) { throw new IOException("Unable to retrieve messages", e); } finally { mailboxManager.endProcessingRequest(session); } }
@Before public void setUp() throws MailboxException { ImapSession imapSession = mock(ImapSession.class); when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) .thenReturn(MAILBOX_SESSION); when(imapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED); MailboxManager mailboxManager = mock(MailboxManager.class); MessageManager messageManager = mock(MessageManager.class); when(mailboxManager.getDelimiter()).thenReturn(PATH_DELIMITER); when(mailboxManager.getMailbox(any(MailboxId.class), any(MailboxSession.class))) .thenReturn(messageManager); when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class))) .thenReturn(messageManager); MessageResult messageResult = mock(MessageResult.class); when(messageResult.getMailboxId()).thenReturn(TestId.of(36)); when(messageResult.getUid()).thenReturn(MESSAGE_UID); when(messageManager.getApplicableFlags(any())) .thenReturn(new Flags()); when(messageManager.search(any(), any())) .thenReturn(ImmutableList.of(MESSAGE_UID).iterator()); when(messageManager.getMessages(any(), any(), any())) .thenReturn(new SingleMessageResultIterator(messageResult)); testee = new SelectedMailboxImpl(mailboxManager, imapSession, MAILBOX_PATH); }
public static Builder builderFromMessageResult(MessageResult messageResult) throws MailboxException { Builder builder = builder() .uid(messageResult.getUid()) .modSeq(messageResult.getModSeq()) .size(messageResult.getSize()) .internalDate(messageResult.getInternalDate().toInstant()) .attachments(messageResult.getAttachments()) .mailboxId(messageResult.getMailboxId()); try { return builder.content(messageResult.getFullContent().getInputStream()); } catch (IOException e) { throw new MailboxException("Can't get message full content: " + e.getMessage(), e); } }
private void init() throws MailboxException { MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); mailboxManager.addListener(path, this, mailboxSession); MessageResultIterator messages = mailboxManager.getMailbox(path, mailboxSession).getMessages(MessageRange.all(), FetchGroupImpl.MINIMAL, mailboxSession); synchronized (this) { while(messages.hasNext()) { MessageResult mr = messages.next(); applicableFlags.add(mr.getFlags()); add(mr.getUid()); } // \RECENT is not a applicable flag in imap so remove it from the list applicableFlags.remove(Flags.Flag.RECENT); } }
while(results.hasNext()) { MessageResult r = results.next(); long uid = r.getUid();
MessageResult r = results.next(); modSeqs.put(r.getUid(),r.getModSeq());
MessageResult r = results.next(); modSeqs.put(r.getUid(),r.getModSeq());
while (it.hasNext()) { MessageResult mr = it.next(); final long uid = mr.getUid(); int msn = selected.msn(uid); if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
while (it.hasNext()) { MessageResult mr = it.next(); final MessageUid uid = mr.getUid(); int msn = selected.msn(uid); if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
while (results.hasNext()) { MessageResult r = results.next(); MessageUid uid = r.getUid();
public FetchResponse build(FetchData fetch, MessageResult result, MessageManager mailbox, ImapSession session, boolean useUids) throws MessageRangeException, MailboxException { final SelectedMailbox selected = session.getSelected(); final long resultUid = result.getUid(); final int resultMsn = selected.msn(resultUid);
public FetchResponse build(FetchData fetch, MessageResult result, MessageManager mailbox, ImapSession session, boolean useUids) throws MessageRangeException, MailboxException { final SelectedMailbox selected = session.getSelected(); final MessageUid resultUid = result.getUid(); final int resultMsn = selected.msn(resultUid);