public static List<Node> resultSetToList(ResultSet rs, Var v) { List<Node> result = new ArrayList<Node>(); while (rs.hasNext()) { Binding binding = rs.nextBinding(); Node node = binding.get(v); result.add(node); } return result; }
public static boolean compatible(Binding bindingLeft, Binding bindingRight) { // Test to see if compatible: Iterate over variables in left for ( Iterator<Var> vIter = bindingLeft.vars() ; vIter.hasNext() ; ) { Var v = vIter.next(); Node nLeft = bindingLeft.get(v) ; Node nRight = bindingRight.get(v) ; if ( nRight != null && ! nRight.equals(nLeft) ) return false ; } return true ; }
@Override public Binding accept(Binding binding) { if ( binding.contains(var) ) { if ( mustBeNewVar ) throw new QueryExecException("Already set: " + var); Node n2 = binding.get(var) ; if ( ! n2.equals(node) ) // And filter out. return null ; else // Already in the binding with the value -> nothing to do. return binding ; } return BindingFactory.binding(binding, var, node) ; }
public static boolean equals(Binding bind1, Binding bind2) { if ( bind1 == bind2 ) return true; // Same variables? if ( bind1.size() != bind2.size() ) return false; for ( Iterator<Var> iter1 = bind1.vars() ; iter1.hasNext() ; ) { Var var = iter1.next(); Node node1 = bind1.get(var); Node node2 = bind2.get(var); if ( !Objects.equals(node1, node2) ) return false; } // No need to check the other way round as the sizes matched. return true; } }
public static Iterator<Node> storeGraphNames(Store store) { List<Node> x = new ArrayList<Node>() ; String qs = "SELECT ?g { GRAPH ?g { }}" ; QueryExecution qExec = QueryExecutionFactory.create(qs, SDBFactory.connectDataset(store)) ; ResultSet rs = qExec.execSelect() ; Var var_g = Var.alloc("g") ; while(rs.hasNext()) { Node n = rs.nextBinding().get(var_g) ; x.add(n) ; } return x.iterator() ; }
org.apache.jena.sparql.engine.ExecutionContext execCtx) { Node node = subject.isVariable() ? binding.get((Var)subject) : subject; if(!object.isVariable()) { throw new RuntimeException("Object of json array splitting must be a variable"); if(node.isURI()) { String str = node.getURI(); Path root = Paths.get(new URI(str));
if (!result.hasNext()) { if (constraint.getProjectVars().stream().noneMatch(var -> "check".equals(var.getVarName()))) { while (result.hasNext()) { Binding binding = result.nextBinding(); Node node = binding.get(SELECT_VALIDATION_VARIABLE); if (node != null) { if (node.isLiteral()) { String resultString = node.getLiteralValue().toString(); if (SELECT_VALIDATION_PASSED_VALUE.equals(resultString)) { return new ValidationResult();
private void testErr(String qsAgg, DatasetGraph ds, Syntax syntax) { Query query = buildGroupBy(qsAgg, syntax) ; try ( QueryExecution qExec = QueryExecutionFactory.create(query, DatasetFactory.wrap(ds)) ) { ResultSet rs = qExec.execSelect() ; assertTrue(rs.getResultVars().contains("X")) ; Binding b = rs.nextBinding() ; assertFalse(b.contains(Var.alloc("X"))) ; } }
@Test public void path_38() { // Same end points. List<Binding> x = eval(graph6, "?x", "(pathN+ :p)", "?x" ) ; assertEquals(2, x.size()) ; Node node1 = x.get(0).get(Var.alloc("x")) ; Node node2 = x.get(1).get(Var.alloc("x")) ; assertFalse(node1.equals(node2)) ; assertTrue(node1.equals(n1) || node1.equals(n2)) ; assertTrue(node2.equals(n1) || node2.equals(n2)) ; }
@Override public void accumulate(Binding binding) { Set<Triple> triples = new HashSet<Triple>(); Map<Node, Node> bNodeMap = new HashMap<Node, Node>(); template.subst(triples, bNodeMap, binding); //Node TRUE = NodeValue.TRUE.asNode(); Node node = reverse.isVariable() ? binding.get((Var)reverse) : reverse ; boolean doReverse = node.isLiteral() ? isTrue(node.getLiteralValue()) : false ; for(Triple triple : triples) { if(doReverse) { triple = TripleUtils.swap(triple); } graph.add(triple); } }
private ResultSetRewindable convertToStrings(ResultSetRewindable resultsActual) { List<Binding> bindings = new ArrayList<>() ; while(resultsActual.hasNext()) { Binding b = resultsActual.nextBinding() ; BindingMap b2 = BindingFactory.create() ; for ( String vn : resultsActual.getResultVars() ) { Var v = Var.alloc(vn) ; Node n = b.get(v) ; String s ; if ( n == null ) s = "" ; else if ( n.isBlank() ) s = "_:"+n.getBlankNodeLabel() ; else s = NodeFunctions.str(n) ; b2.add(v, NodeFactory.createLiteral(s)) ; } bindings.add(b2) ; } ResultSet rs = new ResultSetStream(resultsActual.getResultVars(), null, new QueryIterPlainWrapper(bindings.iterator())) ; return ResultSetFactory.makeRewindable(rs) ; }
/** Bound value or null */ private static Node resolve(Binding b, Node n) { if ( ! n.isVariable() ) return n ; return b.get(Var.alloc(n)) ; }
Set<Var> exprVars = expr.getVarsMentioned(); for(Var var : exprVars) { if(!binding.contains(var)) { allBound = false; break; if(canonResultValue.isLiteral()) { String lex = canonResultValue.getLiteralLexicalForm(); if(resultValue.isLiteral()) { RDFDatatype originalType = resultValue.getLiteralDatatype();
if (node.isVariable()) { node = binding.get((Var) node); if (node == null || (i < 3 && node.isLiteral())) { result.clear(); return result;
public static Pair<List<String>, List<String>> getValues(Binding binding) { List<String> keys = new ArrayList<String>(); List<String> values = new ArrayList<String>(); Iterator<Var> it = binding.vars(); while(it.hasNext()) { Var key = it.next(); keys.add(key.getName()); values.add(binding.get(key).toString()); } return Pair.create(keys, values); }
while (aResults.hasNext()) final Binding aBinding = aResults.nextBinding(); final Iterator<?> aVarIter = aBinding.vars(); aBinding.get(aVar); while (aResults.hasNext()) final Binding aBinding = aResults.nextBinding(); assertFalse(aBinding.vars().hasNext());