/** Substitute into triple patterns */ public static Iterator<Triple> calcTriples(final List<Triple> triples, Iterator<Binding> bindings) { return Iterators.concat(Iter.map(bindings, new Function<Binding, Iterator<Triple>>() { Map<Node, Node> bNodeMap = new HashMap<>(); @Override public Iterator<Triple> apply(final Binding b) { // Iteration is a new mapping of bnodes. bNodeMap.clear(); List<Triple> tripleList = new ArrayList<>(triples.size()); for ( Triple triple : triples ) { Triple q = subst(triple, b, bNodeMap); if ( !q.isConcrete() || !ModelUtils.isValidAsStatement(q.getSubject(), q.getPredicate(), q.getObject()) ) { // Log.warn(TemplateLib.class, "Unbound quad: // "+FmtUtils.stringForQuad(quad)) ; continue; } tripleList.add(q); } return tripleList.iterator(); } })); }
@Override public int size() { int result = Iterators.size(iterator()); return result; } }
if(firstRowAsLabels && it.hasNext()) { CSVRecord r = it.next(); tmp = Iterators.toArray(r.iterator(), String.class);
private static PeekIterator<String> create(String...a) { return new PeekIterator<>(Iterators.forArray(a)) ; }
@Override public ResultSet execSelect() { ResultSet rs = super.execSelect(); List<String> varNames = rs.getResultVars(); Iterator<Binding> it = ResultSetUtils.toIteratorBinding(rs); Iterator<Binding> iu = Iterators.transform(it, b -> BindingUtils.rename(b, varMap)); ResultSet result = ResultSetUtils.create(varNames, iu); return result; } }
if(firstRowAsLabels && it.hasNext()) { CSVRecord r = it.next(); tmp = Iterators.toArray(r.iterator(), String.class);
/** Substitute into quad patterns */ public static Iterator<Quad> calcQuads(final List<Quad> quads, Iterator<Binding> bindings) { return Iterators.concat(Iter.map(bindings, new Function<Binding, Iterator<Quad>>() { Map<Node, Node> bNodeMap = new HashMap<>(); @Override public Iterator<Quad> apply(final Binding b) { // Iteration is a new mapping of bnodes. bNodeMap.clear(); List<Quad> quadList = new ArrayList<>(quads.size()); for ( Quad quad : quads ) { Quad q = subst(quad, b, bNodeMap); if ( !q.isConcrete() ) { // Log.warn(TemplateLib.class, "Unbound quad: // "+FmtUtils.stringForQuad(quad)) ; continue; } quadList.add(q); } return quadList.iterator(); } })); }
@Override public int size() { int result = Iterators.size(iterator()); return result; } }
@Override public Iterator<Quad> find(Node g, Node s, Node p, Node o) { return g.isConcrete() ? findInOneGraph(g, s, p, o) : concat(findNG(ANY, s, p, o), findInOneGraph(defaultGraphIRI, s, p, o)); }
@Override public int size() { int result = Iterators.size(iterator()); return result; } }
@Override public Iterator<Quad> findNG(Node g, Node s, Node p, Node o) { return g.isConcrete() ? findInOneGraph(g, s, p, o) : concat(map(listGraphNodes(), gn -> findInOneGraph(gn, s, p, o))); }