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 2011/08/13 21:44:29 UTC
svn commit: r1157414 -
/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/BIOInput.java
Author: andy
Date: Sat Aug 13 19:44:29 2011
New Revision: 1157414
URL: http://svn.apache.org/viewvc?rev=1157414&view=rev
Log:
JENA-98
Modified:
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/BIOInput.java
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/BIOInput.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/BIOInput.java?rev=1157414&r1=1157413&r2=1157414&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/BIOInput.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/query/BIOInput.java Sat Aug 13 19:44:29 2011
@@ -19,6 +19,7 @@
package com.hp.hpl.jena.query;
import java.io.InputStream ;
+import java.util.ArrayList ;
import java.util.List ;
import com.hp.hpl.jena.rdf.model.Model ;
@@ -26,6 +27,7 @@ import com.hp.hpl.jena.rdf.model.ModelFa
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.ResultSetStream ;
+import com.hp.hpl.jena.sparql.engine.binding.Binding ;
import com.hp.hpl.jena.sparql.engine.binding.BindingInputStream ;
import com.hp.hpl.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
@@ -35,9 +37,21 @@ public class BIOInput
public static ResultSet fromBIO(InputStream input)
{
+ // Scan the stream for VARS an accumulate the totol variables.
BindingInputStream bin = new BindingInputStream(input) ;
- List<Var> vars = bin.vars() ;
- QueryIterator qIter = new QueryIterPlainWrapper(bin) ;
+ List<Binding> bindings = new ArrayList<Binding>() ;
+ List<Var> vars = new ArrayList<Var>() ;
+ while(bin.hasNext())
+ {
+ Binding b = bin.next();
+ bindings.add(b) ;
+ for ( Var v : bin.vars() )
+ {
+ if ( ! vars.contains(v) )
+ vars.add(v) ;
+ }
+ }
+ QueryIterator qIter = new QueryIterPlainWrapper(bindings.iterator()) ;
return new ResultSetStream(Var.varNames(vars), m, qIter) ;
}
}