public boolean hasNext() { try { if (folderIter == null) { folderIter = new FolderIterator(mailbox); } // get next message from the folder // if folder is exhausted get next folder // loop till a valid mail or all folders exhausted. while (msgIter == null || !msgIter.hasNext()) { Folder next = folderIter.hasNext() ? folderIter.next() : null; if (next == null) { return false; } msgIter = new MessageIterator(next, batchSize); } } catch (EmailFetchException e) { LOG.error("Fetching email failed", e); return false; } return true; }
public boolean jumpToFolder(String folderName) { FolderIterator newFolderIter = null; MessageIterator newMsgIter = null; try { newFolderIter = new FolderIterator(mailbox); while (newFolderIter.hasNext()) { Folder next = newFolderIter.next(); if (folderName.equals(next.getFullName())) { newMsgIter = new MessageIterator(next, batchSize); folderIter = newFolderIter; msgIter = newMsgIter; return true; } } return false; } catch (EmailFetchException e) { LOG.error("Fetching email failed", e); return false; } }