protected void emitDataBlockValue(Node n, int line, int col) { currentColumn++ ; if ( currentColumn >= variables.size() ) // Exception will be thrown later when we have the complete row count. return ; Var v = variables.get(currentColumn) ; if ( n != null ) currentValueRow().add(v, n) ; }
public Binding convert(Binding b) { if ( parentBinding == null || parentBinding.isEmpty() ) return b ; // This is the result. Could have BindingBase.setParent etc. BindingMap b2 = new BindingMap(parentBinding) ; // Copy the resultSet bindings to the combined result binding with checking. for ( Iterator<Var> iter = b.vars() ; iter.hasNext(); ) { Var v = iter.next(); Node n = b.get(v) ; if ( b2.contains(v) ) { Node n2 = b2.get(v) ; if ( n2.equals(n) ) Log.warn(this, "Binding already for "+v+" (same value)" ) ; else { Log.fatal(this, "Binding already for "+v+" (different values)" ) ; throw new ARQInternalErrorException("QueryIteratorResultSet: Incompatible bindings for "+v) ; } } b2.add(v, n) ; } return b2 ; } }
private void add(Binding binding) { ((BindingMap) super.chunks).addAll(binding); // does not add null bindings but increment sub-solution counters to // manage signal notification listener this.nbSubSolutionsReceived += binding.size(); }
private Binding copyToBinding(QuerySolution qs) { BindingMap b = new BindingMap() ; for ( Iterator<String> iter = qs.varNames() ; iter.hasNext() ; ) { String varName = iter.next() ; RDFNode rn = qs.get(varName) ; b.add(Var.alloc(varName), rn.asNode()) ; } return b ; }
? new BindingMap() : new BindingMap( parent ); result.add( Var.alloc( varName ), node ); Var var = Var.alloc( varName ); if( !result.contains( var ) ) result.add( var, JenaUtils.makeGraphNode( entry.getValue() ) );
public static Binding create(Binding parent) { return new BindingMap(parent) ; } }
/** Merge two bindings, assuming they are compatible. */ public static Binding merge(Binding bind1, Binding bind2) { //Create binding from LHS BindingMap b2 = BindingFactory.create(bind1) ; Iterator<Var> vIter = bind2.vars() ; // Add any variables from the RHS for ( ; vIter.hasNext() ; ) { Var v = vIter.next() ; if ( ! b2.contains(v) ) b2.add(v, bind2.get(v)) ; else { // Checking! Node n1 = bind1.get(v) ; Node n2 = bind2.get(v) ; if ( ! n1.equals(n2) ) Log.warn(BindingUtils.class, "merge: Mismatch : "+n1+" != "+n2); } } return b2 ; }
@Override public Binding convert(Binding b) { if ( parentBinding == null || parentBinding.isEmpty() ) return b ; // This is the result. Could have BindingBase.setParent etc. BindingMap b2 = BindingFactory.create(parentBinding) ; // Copy the resultSet bindings to the combined result binding with checking. for ( Iterator<Var> iter = b.vars() ; iter.hasNext(); ) { Var v = iter.next(); Node n = b.get(v) ; if ( b2.contains(v) ) { Node n2 = b2.get(v) ; if ( n2.equals(n) ) Log.warn(this, "Binding already for "+v+" (same value)" ) ; else { Log.fatal(this, "Binding already for "+v+" (different values)" ) ; throw new ARQInternalErrorException("Incompatible bindings for "+v) ; } } b2.add(v, n) ; } return b2 ; } }
protected void startBindingValueRow(int line, int col) { values.add(new BindingMap()) ; currentColumn = -1 ; }
static protected void addBinding(BindingMap binding, Var var, Node value) { Node n = binding.get(var) ; if ( n != null ) { // Same - silently skip. if ( n.equals(value) ) return ; Log.warn(SPARQLResult.class, String.format("Multiple occurences of a binding for variable '%s' with different values - ignored", var.getName())) ; return ; } binding.add(var, value) ; }
public static void addAll(BindingMap dest, Binding src) { Iterator<Var> iter = src.vars() ; for ( ; iter.hasNext() ; ) { Var v = iter.next() ; Node n = src.get(v) ; dest.add(v, n) ; } }
Binding binding = new BindingMap() ;
static private Binding copyProject(VarExprList vars, Binding binding, ExecutionContext execCxt) { // No group vars (implicit or explicit) => working on whole result set. // Still need a BindingMap to assign to later. BindingMap x = BindingFactory.create() ; for ( Iterator<Var> iter = vars.getVars().iterator() ; iter.hasNext() ; ) { Var var = iter.next() ; Node node = vars.get(var, binding, execCxt) ; // Null returned for unbound and error. if ( node != null ) x.add(var, node) ; } return x ; } }
public static Binding asBinding(QuerySolution qSolution) { if ( qSolution == null ) return null ; Binding binding = new BindingMap(null) ; addToBinding(binding, qSolution) ; return binding ; }
/** Create a new Binding as a copy of an existing one. * Additionally, it guarantees to touch each element of the binding */ public static Binding materialize(Binding b) { Iterator<Var> vIter = b.vars() ; BindingMap b2 = create() ; while( vIter.hasNext() ) { Var v = vIter.next(); b2.add(v, b.get(v)) ; } return b2 ; } }
static private Binding copyProject(VarExprList vars, Binding binding, ExecutionContext execCxt) { // No group vars (implicit or explicit) => working on whole result set. // Still need a BindingMap to assign to later. Binding x = new BindingMap() ; for ( Iterator<Var> iter = vars.getVars().iterator() ; iter.hasNext() ; ) { Var var = iter.next() ; Node node = vars.get(var, binding, execCxt) ; // Null returned for unbound and error. if ( node != null ) x.add(var, node) ; } return x ; } }
private static QueryIterator findIndexMember(Graph graph, Binding binding, Node listNode, Var varIndex, Var varMember, ExecutionContext execCxt) { // Iterate over list List<Node> members = GraphList.members(new GNode(graph, listNode)) ; List<Binding> bindings = new ArrayList<Binding>() ; for ( int i = 0 ; i < members.size() ; i++ ) { Node idx = NodeFactoryExtra.intToNode(i) ; Node member = members.get(i) ; BindingMap b = BindingFactory.create(binding) ; b.add(varIndex, idx) ; b.add(varMember, member) ; bindings.add(b) ; } return new QueryIterPlainWrapper(bindings.iterator(), execCxt) ; } }
private static Binding graphResultsToBinding(Binding parent, Domain d, Var[] projectionVars) { // Copy out Binding binding = new BindingMap(parent) ; for ( int i = 0 ; i < projectionVars.length ; i++ ) { Var var = projectionVars[i] ; Node n = d.get(i) ; if ( n == null ) // There was no variable of this name. continue ; binding.add(var, n) ; } return binding ; }