public Iterable<T> fetchEmptyEntities() { String[] oldFields = fields; Boolean oldInclude = includeFields; fields = new String[]{Mapper.ID_KEY}; includeFields = true; Iterable<T> res = fetch(); fields = oldFields; includeFields = oldInclude; return res; }
public Iterator<T> iterator() { return fetch().iterator(); }
public T get() { int oldLimit = limit; limit = 1; Iterator<T> it = fetch().iterator(); limit = oldLimit; return (it.hasNext()) ? it.next() : null; }
public Iterator<T> tail(boolean awaitData) { //Create a new query for this, so the current one is not affected. QueryImpl<T> tailQ = clone(); tailQ.tail = true; tailQ.tail_await_data = awaitData; return tailQ.fetch().iterator(); }
@SuppressWarnings("unchecked") public List<T> asList() { List<T> results = new ArrayList<T>(); MorphiaIterator<T, T> iter = (MorphiaIterator<T, T>) fetch().iterator(); for (T ent : iter) results.add(ent); if (log.isTraceEnabled()) log.trace(String.format("\nasList: %s \t %d entities, iterator time: driver %n ms, mapper %n ms \n cache: %s \n for $s \n ", dbColl.getName(), results.size(), iter.getDriverTime(), iter.getMapperTime(), cache.stats().toString(), getQueryObject())); return results; }