@Override public RecordIterator<Entry> getEntries() { ensureOpen(); if (columnSlice == null) throw new IllegalStateException("getEntries() requires SliceQuery to be set."); final KeySliceQuery keySlice = new KeySliceQuery(currentRow.getKey(), columnSlice); return new RecordIterator<Entry>() { private final Iterator<Entry> items = currentRow.getValue().getSlice(keySlice, transaction).iterator(); @Override public boolean hasNext() { ensureOpen(); return items.hasNext(); } @Override public Entry next() { ensureOpen(); return items.next(); } @Override public void close() { isClosed = true; } @Override public void remove() { throw new UnsupportedOperationException("Column removal not supported"); } }; }
/** * Executes the query by executing its on {@link SliceQuery} sub-query. * * @return */ private Iterator<Entry> getBasicIterator() { final EntryList result = vertex.loadRelations(sliceQuery, query -> QueryProfiler.profile(profiler, query, q -> tx.getGraph().edgeQuery(vertex.longId(), q, tx.getTxHandle()))); return result.iterator(); }