use of org.apache.jena.atlas.iterator.Iter in project jena by apache.
the class PathLib method existsPath.
private static int existsPath(Graph graph, Node subject, Path path, final Node object, ExecutionContext execCxt) {
if (!subject.isConcrete() || !object.isConcrete())
throw new ARQInternalErrorException("Non concrete node for existsPath evaluation");
Iterator<Node> iter = PathEval.eval(graph, subject, path, execCxt.getContext());
Predicate<Node> filter = node -> Objects.equals(node, object);
// See if we got to the node we're interested in finishing at.
iter = Iter.filter(iter, filter);
long x = Iter.count(iter);
return (int) x;
}
use of org.apache.jena.atlas.iterator.Iter in project jena by apache.
the class BPlusTreeRewriter method writePackedDataBlocks.
// **** data block phase
/** Pack record blocks into linked RecordBufferPages */
private static Iterator<Pair<Integer, Record>> writePackedDataBlocks(Iterator<Record> records, final BPlusTree bpt) {
if (debug) {
divider();
System.out.println("---- Data level");
}
final RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr();
Iterator<RecordBufferPage> iter = new RecordBufferPageLinker(new RecordBufferPagePacker(records, mgr));
Function<RecordBufferPage, Pair<Integer, Record>> transform = rbp -> {
mgr.put(rbp);
Record r = rbp.getRecordBuffer().getHigh();
r = bpt.getRecordFactory().createKeyOnly(r);
return new Pair<>(rbp.getId(), r);
};
// Write and convert to split pairs.
Iterator<Pair<Integer, Record>> iter2 = Iter.map(iter, transform);
if (debug) {
if (rebalance)
System.out.println("Before rebalance (data)");
iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr());
//iter2 = printDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ;
}
if (rebalance)
iter2 = new RebalenceDataEnd(iter2, bpt);
// Testing - materialize - debug wil have done this
if (materialize && !debug)
iter2 = Iter.toList(iter2).iterator();
if (debug && rebalance) {
System.out.println("After rebalance (data)");
iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr());
//iter2 = printDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ;
}
return iter2;
}
Aggregations