public MessageUid getLowVal() { return range.getUidFrom(); }
public String getFormattedString() { if (range.getUidFrom().equals(range.getUidTo())) { return String.valueOf(range.getUidFrom().asLong()); } else { return String.format("%d:%d", range.getUidFrom().asLong(), range.getUidTo().asLong()); } }
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; }
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(); }
/** * Return a read-only {@link Iterator} which contains all uid which fall in the specified range. */ @Override public Iterator<MessageUid> iterator() { return new RangeIterator(getUidFrom(), getUidTo()); }
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); }
/** * Return true if the uid is within the range */ public boolean includes(MessageUid uid) { switch (type) { case ALL: return true; case FROM: if (getUidFrom().compareTo(uid) <= 0) { return true; } return false; case RANGE: if (getUidFrom().compareTo(uid) <= 0 && getUidTo().compareTo(uid) >= 0) { return true; } return false; case ONE: if (getUidFrom().equals(uid)) { return true; } return false; default: return false; } }
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(); }
/** * 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; }
NumericRange nr; if (r.getType() == Type.ONE) { nr = new NumericRange(r.getUidFrom()); } else { nr = new NumericRange(r.getUidFrom(), r.getUidTo());
SearchQuery.UidRange nr; if (r.getType() == Type.ONE) { nr = new SearchQuery.UidRange(r.getUidFrom()); } else { nr = new SearchQuery.UidRange(r.getUidFrom(), r.getUidTo());
return MessageRange.range(start, end); case RANGE: start = range.getUidFrom(); if (start.equals(MessageUid.MAX_VALUE) || start.compareTo(selected.getFirstUid().orElse(MessageUid.MIN_VALUE)) < 0) { start = selected.getFirstUid().orElse(MessageUid.MIN_VALUE); start = range.getUidFrom(); if (start.equals(MessageUid.MAX_VALUE) || start.compareTo(selected.getFirstUid().orElse(MessageUid.MIN_VALUE)) < 0) { start = selected.getFirstUid().orElse(MessageUid.MIN_VALUE);
@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); } }
resultRanges.add(new IdRange(mr.getUidFrom(), mr.getUidTo()));
return MessageRange.range(start, end); case RANGE: start = range.getUidFrom(); if (start < 1 || start == Long.MAX_VALUE || start < selected.getFirstUid()) { start = selected.getFirstUid(); start = range.getUidFrom(); if (start < 1 || start == Long.MAX_VALUE || start < selected.getFirstUid()) { start = selected.getFirstUid();
if (messageSet != null) { MessageRange normalizedMessageSet = normalizeMessageRange(session.getSelected(), messageSet); MessageRange batchedMessageSet = MessageRange.range(normalizedMessageSet.getUidFrom(), normalizedMessageSet.getUidTo()); ranges.add(batchedMessageSet);
resultRanges.add(new IdRange(mr.getUidFrom().asLong(), mr.getUidTo().asLong()));
if (messageSet != null) { MessageRange normalizedMessageSet = normalizeMessageRange(session.getSelected(), messageSet); MessageRange batchedMessageSet = MessageRange.range(normalizedMessageSet.getUidFrom(), normalizedMessageSet.getUidTo()); ranges.add(batchedMessageSet);
final Map<MessageUid, MessageMetaData> data; final List<MailboxMessage> results; final MessageUid from = set.getUidFrom(); final MessageUid to = set.getUidTo(); JPAId mailboxId = (JPAId) mailbox.getMailboxId();