@Override protected void fetchNextEntryPoints(OCommandContext ctx, int nRecords) { OResultSet nextN = getPrev().get().syncPull(ctx, nRecords); while (nextN.hasNext()) { while (nextN.hasNext()) { OResult item = toTraverseResult(nextN.next()); if(item != null){ List<ORID> stack = new ArrayList<>(); item.getIdentity().ifPresent(x -> stack.add(x)); ((OResultInternal) item).setMetadata("$stack", stack); List<OIdentifiable> path = new ArrayList<>(); path.add(item.getIdentity().get()); ((OResultInternal) item).setMetadata("$path", path); if (item != null && item.isElement() && !traversed.contains(item.getElement().get().getIdentity())) { tryAddEntryPoint(item, ctx); } } } nextN = getPrev().get().syncPull(ctx, nRecords); } }