public StoreMessageResultIterator(MessageMapper mapper, Mailbox mailbox, MessageRange range, BatchSizes batchSizes, org.apache.james.mailbox.model.MessageResult.FetchGroup group) { this.mailbox = mailbox; this.group = group; this.mapper = mapper; this.from = range.getUidFrom(); this.cursor = this.from; this.to = range.getUidTo(); this.batchSizes = batchSizes; this.type = range.getType(); this.ftype = getFetchType(group); LOGGER.debug("batchSizes used: {}", batchSizes); }
protected IdRange[] idRanges(Collection<MessageRange> mRanges) { IdRange[] idRanges = new IdRange[mRanges.size()]; Iterator<MessageRange> mIt = mRanges.iterator(); int i = 0; while(mIt.hasNext()) { MessageRange mr = mIt.next(); IdRange ir; if (mr.getType() == Type.ONE) { ir = new IdRange(mr.getUidFrom()); } else { ir = new IdRange(mr.getUidFrom(), mr.getUidTo()); } idRanges[i++] = ir; } return idRanges; }
protected UidRange[] uidRanges(Collection<MessageRange> mRanges) { UidRange[] idRanges = new UidRange[mRanges.size()]; Iterator<MessageRange> mIt = mRanges.iterator(); int i = 0; while (mIt.hasNext()) { MessageRange mr = mIt.next(); UidRange ir; if (mr.getType() == Type.ONE) { ir = new UidRange(mr.getUidFrom()); } else { ir = new UidRange(mr.getUidFrom(), mr.getUidTo()); } idRanges[i++] = ir; } return idRanges; }
/** * Tries to split the given {@link MessageRange} to a {@link List} of {@link MessageRange}'s which * select only a max amount of items. This only work for {@link MessageRange}'s with {@link Type} of * {@link Type#RANGE}. */ public List<MessageRange> split(int maxItems) { List<MessageRange> ranges = new ArrayList<>(); if (getType() == Type.RANGE) { long from = getUidFrom().asLong(); long to = getUidTo().asLong(); long realTo = to; while (from <= realTo) { if (from + maxItems - 1 < realTo) { to = from + maxItems - 1; } else { to = realTo; } if (from == to) { ranges.add(MessageUid.of(from).toRange()); } else { ranges.add(MessageRange.range(MessageUid.of(from), MessageUid.of(to))); } from = to + 1; } } else { ranges.add(this); } return ranges; }
private CompletableFuture<ResultSet> retrieveResultSetOfDeletedMessage(CassandraId cassandraId, MessageRange range) { switch (range.getType()) { case ALL: return retrieveAllDeleted(cassandraId); case FROM: return retrieveDeletedAfter(cassandraId, range.getUidFrom()); case RANGE: return retrieveDeletedBetween(cassandraId, range.getUidFrom(), range.getUidTo()); case ONE: return retrieveOneDeleted(cassandraId, range.getUidFrom()); } throw new UnsupportedOperationException(); }
MessageRange r = ranges.get(i); NumericRange nr; if (r.getType() == Type.ONE) { nr = new NumericRange(r.getUidFrom()); } else {
MessageRange r = ranges.get(i); SearchQuery.UidRange nr; if (r.getType() == Type.ONE) { nr = new SearchQuery.UidRange(r.getUidFrom()); } else {
Type rangeType = range.getType(); MessageUid start; MessageUid end;
@Override public Iterator<MailboxMessage> findInMailbox(Mailbox mailbox, MessageRange set, FetchType fType, int max) throws MailboxException { try { List<MailboxMessage> results; MessageUid from = set.getUidFrom(); final MessageUid to = set.getUidTo(); final Type type = set.getType(); JPAId mailboxId = (JPAId) mailbox.getMailboxId(); switch (type) { default: case ALL: results = findMessagesInMailbox(mailboxId, max); break; case FROM: results = findMessagesInMailboxAfterUID(mailboxId, from, max); break; case ONE: results = findMessagesInMailboxWithUID(mailboxId, from); break; case RANGE: results = findMessagesInMailboxBetweenUIDs(mailboxId, from, to, max); break; } return results.iterator(); } catch (PersistenceException e) { throw new MailboxException("Search of MessageRange " + set + " failed in mailbox " + mailbox, e); } }
public CompletableFuture<Stream<ComposedMessageIdWithMetaData>> retrieveMessages(CassandraId mailboxId, MessageRange set) { switch (set.getType()) { case ALL: return toMessageIds(selectAll(mailboxId)); case FROM: return toMessageIds(selectFrom(mailboxId, set.getUidFrom())); case RANGE: return toMessageIds(selectRange(mailboxId, set.getUidFrom(), set.getUidTo())); case ONE: return toMessageIds(selectOneRow(mailboxId, set.getUidFrom())); } throw new UnsupportedOperationException(); }
for (int i = 0 ; i < ranges.size(); i++) { MessageRange r = ranges.get(i); if (r.getType() == Type.ONE) { idRanges[i] = new IdRange(r.getUidFrom()); } else {
for (int i = 0; i < ranges.size(); i++) { MessageRange r = ranges.get(i); if (r.getType() == Type.ONE) { idRanges[i] = new UidRange(r.getUidFrom()); } else {
JPAId mailboxId = (JPAId) mailbox.getMailboxId(); switch (set.getType()) { case ONE: results = findDeletedMessagesInMailboxWithUID(mailboxId, from);
Type rangeType = range.getType(); long start; long end;