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 2012/01/19 19:09:30 UTC

svn commit: r1233506 - in /incubator/jena/Jena2/ARQ/trunk/src: main/java/com/hp/hpl/jena/sparql/resultset/ main/java/com/hp/hpl/jena/sparql/util/ test/java/com/hp/hpl/jena/sparql/resultset/

Author: andy
Date: Thu Jan 19 18:09:29 2012
New Revision: 1233506

URL: http://svn.apache.org/viewvc?rev=1233506&view=rev
Log:
JENA-198 Fixes to TSV input/output which were picking up the default prefix map when no prefix map should apply.

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInputIterator.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactory.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat1.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInputIterator.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInputIterator.java?rev=1233506&r1=1233505&r2=1233506&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInputIterator.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInputIterator.java Thu Jan 19 18:09:29 2012
@@ -18,24 +18,23 @@
 
 package com.hp.hpl.jena.sparql.resultset;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.util.List;
-import java.util.NoSuchElementException;
+import java.io.BufferedReader ;
+import java.io.IOException ;
+import java.util.List ;
+import java.util.NoSuchElementException ;
 
 import org.openjena.atlas.io.IO ;
-import org.openjena.atlas.io.IndentedWriter;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.query.QueryException;
-import com.hp.hpl.jena.sparql.core.Var;
-import com.hp.hpl.jena.sparql.engine.binding.Binding;
-import com.hp.hpl.jena.sparql.engine.binding.BindingFactory;
-import com.hp.hpl.jena.sparql.engine.binding.BindingMap;
-import com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase;
-import com.hp.hpl.jena.sparql.serializer.SerializationContext;
-import com.hp.hpl.jena.sparql.util.NodeFactory;
+import org.openjena.atlas.io.IndentedWriter ;
 
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.query.QueryException ;
+import com.hp.hpl.jena.sparql.core.Var ;
+import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
+import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
+import com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase ;
+import com.hp.hpl.jena.sparql.serializer.SerializationContext ;
+import com.hp.hpl.jena.sparql.util.NodeFactory ;
 
 /**
  * Class used to do streaming parsing of actual result rows from the TSV
@@ -107,7 +106,7 @@ public class TSVInputIterator extends Qu
         	if (token.equals("")) continue; 
         	
         	//Bound value so parse it and add to the binding
-        	Node node = NodeFactory.parseNode(token);
+        	Node node = NodeFactory.parseNode(token, null);
         	this.binding.add(this.vars.get(i), node);
         }
         return true;

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java?rev=1233506&r1=1233505&r2=1233506&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java Thu Jan 19 18:09:29 2012
@@ -32,6 +32,7 @@ import com.hp.hpl.jena.query.ResultSet ;
 import com.hp.hpl.jena.sparql.ARQException ;
 import com.hp.hpl.jena.sparql.core.Var ;
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
+import com.hp.hpl.jena.sparql.serializer.SerializationContext;
 import com.hp.hpl.jena.sparql.util.FmtUtils ;
 import com.hp.hpl.jena.util.FileUtils ;
 
@@ -53,6 +54,10 @@ public class TSVOutput extends OutputBas
     public void format(OutputStream out, ResultSet resultSet)
     {
         try {
+        	//We'll use a null serialization context as otherwise the TSV Output may reduce things to Prefixed Names using
+        	//ARQs default prefix mapping which then means the output is invalid
+        	SerializationContext ctx = null;        	
+        	
             Writer w = FileUtils.asUTF8(out) ;
             w = new BufferedWriter(w) ;
             
@@ -89,7 +94,7 @@ public class TSVOutput extends OutputBas
                     if ( n != null )
                     {
                         // This will not include a raw tab.
-                        String str = FmtUtils.stringForNode(n) ;
+                        String str = FmtUtils.stringForNode(n, ctx) ;
                         w.write(str) ;
                     }
                 }

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactory.java?rev=1233506&r1=1233505&r2=1233506&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactory.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactory.java Thu Jan 19 18:09:29 2012
@@ -24,14 +24,26 @@ import com.hp.hpl.jena.datatypes.xsd.XSD
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.impl.LiteralLabel ;
 import com.hp.hpl.jena.query.QueryParseException ;
+import com.hp.hpl.jena.shared.PrefixMapping ;
+import com.hp.hpl.jena.shared.impl.PrefixMappingImpl ;
 import com.hp.hpl.jena.sparql.sse.SSE ;
 
 public class NodeFactory
 {
+    /** Parse a node - with convenience prefix mapping */ 
     public static Node parseNode(String nodeString)
     {
         return SSE.parseNode(nodeString) ;
     }
+
+    private static PrefixMapping pmapEmpty = new PrefixMappingImpl() ; 
+    /** Parse a string into a node. Pass null for the prefix mapping to indicate using no defined mappings */ 
+    public static Node parseNode(String nodeString, PrefixMapping pmap)
+    {
+        if ( pmap == null )
+            pmap = pmapEmpty ;
+        return SSE.parseNode(nodeString, pmap) ;
+    }
     
     private static QueryParseException makeException(String msg, int line, int column)
     {

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat1.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat1.java?rev=1233506&r1=1233505&r2=1233506&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat1.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat1.java Thu Jan 19 18:09:29 2012
@@ -37,11 +37,14 @@ import com.hp.hpl.jena.query.ResultSetRe
 import com.hp.hpl.jena.sparql.sse.Item ;
 import com.hp.hpl.jena.sparql.sse.SSE ;
 import com.hp.hpl.jena.sparql.sse.builders.BuilderResultSet ;
+import com.hp.hpl.jena.vocabulary.OWL;
+import com.hp.hpl.jena.vocabulary.RDF;
+import com.hp.hpl.jena.vocabulary.RDFS;
+import com.hp.hpl.jena.vocabulary.XSD;
 
 @RunWith(Parameterized.class)
 public class TestResultSetFormat1
 {
-
     static String[] $rs1 = {
         "(resultset (?a ?b ?c)",
         "  (row (?a 1) (?b 2)       )",
@@ -59,12 +62,20 @@ public class TestResultSetFormat1
         "  (row (?a 1)        (?c 4))",
         "  (row (?a 1) (?b 2) (?c 3))",
         ")"} ;
+    
+    static String[] $rs4 = {
+    	"(resultset (?x)",
+    	" (row (?x <" + RDF.type.toString() + ">))",
+    	" (row (?x <" + RDFS.label.toString() + ">))",
+    	" (row (?x <" + XSD.integer.toString() + ">))",
+    	" (row (?x <" + OWL.sameAs.toString() + ">))",
+    	")" };
 
     
     @Parameters
     public static Collection<Object[]> data()
     {
-        return Arrays.asList(new Object[][] { {$rs1}, {$rs2}, {$rs3} } ) ;
+        return Arrays.asList(new Object[][] { {$rs1}, {$rs2}, {$rs3}, {$rs4} } ) ;
     }
 
     private final String[] $rs ;