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 ;
+    }
 }