You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/04/12 16:24:21 UTC
svn commit: r1467281 -
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java
Author: andy
Date: Fri Apr 12 14:24:21 2013
New Revision: 1467281
URL: http://svn.apache.org/r1467281
Log:
Add materialization (copy structure and touch all (var,node) pairs)
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java?rev=1467281&r1=1467280&r2=1467281&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.java Fri Apr 12 14:24:21 2013
@@ -18,6 +18,8 @@
package com.hp.hpl.jena.sparql.engine.binding;
+import java.util.Iterator ;
+
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.sparql.core.Var ;
@@ -45,4 +47,18 @@ public class BindingFactory
public static BindingMap create(Binding parent) { return new BindingHashMap(parent) ; }
public static Binding root() { return BindingRoot.create() ; }
+
+ /** 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 ;
+ }
}