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 2014/09/10 14:48:00 UTC

svn commit: r1623983 - in /jena/trunk/jena-arq/src/main/java: com/hp/hpl/jena/query/ResultSetFactory.java com/hp/hpl/jena/sparql/resultset/ResultsFormat.java com/hp/hpl/jena/sparql/util/QueryExecUtils.java org/apache/jena/riot/resultset/ResultSetLang.java

Author: andy
Date: Wed Sep 10 12:47:59 2014
New Revision: 1623983

URL: http://svn.apache.org/r1623983
Log:
Add thrift support to result set tools.

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultsFormat.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/QueryExecUtils.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java?rev=1623983&r1=1623982&r2=1623983&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java Wed Sep 10 12:47:59 2014
@@ -21,7 +21,10 @@ package com.hp.hpl.jena.query;
 import java.io.InputStream ;
 import java.util.List ;
 
+import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.ResultSetMgr ;
 
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.rdf.model.ModelFactory ;
@@ -63,21 +66,8 @@ public class ResultSetFactory {
     public static ResultSet load(String filenameOrURI, ResultsFormat format) {
         if (format == null)
             format = ResultsFormat.guessSyntax(filenameOrURI);
-
-        if (format == null) {
-            Log.warn(ResultSet.class, "Null format - defaulting to XML");
-            format = ResultsFormat.FMT_RS_XML;
-        }
-
-        if (format.equals(ResultsFormat.FMT_TEXT)) {
-            Log.fatal(ResultSet.class, "Can't read a text result set");
-            throw new ResultSetException("Can't read a text result set");
-        }
-
-        InputStream in = FileManager.get().open(filenameOrURI);
-        if (in == null)
-            throw new NotFoundException("Not found: " + filenameOrURI);
-        return load(in, format);
+        InputStream in = IO.openFile(filenameOrURI) ;
+        return load(in, format) ;
     }
 
     /**
@@ -93,6 +83,11 @@ public class ResultSetFactory {
             Log.warn(ResultSet.class, "Null format - defaulting to XML");
             format = ResultsFormat.FMT_RS_XML;
         }
+        
+        // Old World - new world
+        Lang lang = ResultsFormat.convert(format) ;
+        if ( lang != null )
+            return ResultSetMgr.read(input, lang) ;
 
         if (format.equals(ResultsFormat.FMT_RS_JSON))
             return JSONInput.fromJSON(input);

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultsFormat.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultsFormat.java?rev=1623983&r1=1623982&r2=1623983&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultsFormat.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultsFormat.java Wed Sep 10 12:47:59 2014
@@ -20,6 +20,12 @@ package com.hp.hpl.jena.sparql.resultset
 
 import static org.apache.jena.riot.WebContent.* ;
 
+import java.util.HashMap ;
+import java.util.Map ;
+
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.resultset.ResultSetLang ;
+
 import com.hp.hpl.jena.sparql.util.Symbol ;
 import com.hp.hpl.jena.sparql.util.TranslationTable ;
 
@@ -32,6 +38,8 @@ import com.hp.hpl.jena.sparql.util.Trans
 //    FMT_RS_RDF , FMT_RDF_XML , FMT_RDF_N3 , FMT_RDF_TTL , FMT_RDF_TURTLE , FMT_RDF_NT ,
 //    FMT_UNKNOWN ;
     
+
+// Old world.  Remove in Jena3
 public class ResultsFormat extends Symbol
 { 
     // ---- Compatibility (this started pre java 1.5)
@@ -42,6 +50,7 @@ public class ResultsFormat extends Symbo
 
     static public ResultsFormat FMT_RS_XML       = new ResultsFormat(contentTypeResultsXML) ;
     static public ResultsFormat FMT_RS_JSON      = new ResultsFormat(contentTypeResultsJSON) ;
+    static public ResultsFormat FMT_RS_THRIFT    = new ResultsFormat(contentTypeResultsThrift) ;
     static public ResultsFormat FMT_RS_CSV       = new ResultsFormat(contentTypeTextCSV) ;
     static public ResultsFormat FMT_RS_TSV       = new ResultsFormat(contentTypeTextTSV) ;
     static public ResultsFormat FMT_RS_SSE       = new ResultsFormat(contentTypeSSE) ;
@@ -66,6 +75,8 @@ public class ResultsFormat extends Symbo
         
         names.put("json",        FMT_RS_JSON) ;
         names.put("srj",         FMT_RS_JSON) ;
+        names.put("srt",         FMT_RS_THRIFT) ;
+        names.put("thrift",      FMT_RS_THRIFT) ;
         
         names.put("sse",         FMT_RS_SSE) ;
         names.put("csv",         FMT_RS_CSV) ;
@@ -126,6 +137,10 @@ public class ResultsFormat extends Symbo
         if ( url.endsWith(".yml") )
             return FMT_RS_JSON ;
         
+        // -- Thrift
+        if ( url.endsWith(".srt") )
+            return FMT_RS_THRIFT ;
+        
         // -- SSE : http://jena.apache.org/documentation/notes/sse.html
         if ( url.endsWith(".sse") )
             return FMT_RS_SSE ;
@@ -154,4 +169,16 @@ public class ResultsFormat extends Symbo
         return names.lookup(s) ;
     }
 
+    static Map<ResultsFormat, Lang> mapResultsFormatToLang = new HashMap<>() ;
+    static {
+        mapResultsFormatToLang.put(ResultsFormat.FMT_RS_CSV, ResultSetLang.SPARQLResultSetCSV) ;
+        mapResultsFormatToLang.put(ResultsFormat.FMT_RS_TSV, ResultSetLang.SPARQLResultSetTSV) ;
+        mapResultsFormatToLang.put(ResultsFormat.FMT_RS_XML, ResultSetLang.SPARQLResultSetXML) ;
+        mapResultsFormatToLang.put(ResultsFormat.FMT_RS_JSON, ResultSetLang.SPARQLResultSetJSON) ;
+        mapResultsFormatToLang.put(ResultsFormat.FMT_RS_THRIFT, ResultSetLang.SPARQLResultSetThrift) ;
+    }
+
+    public static Lang convert(ResultsFormat fmt) {
+        return mapResultsFormatToLang.get(fmt) ;
+    }
 }

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/QueryExecUtils.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/QueryExecUtils.java?rev=1623983&r1=1623982&r2=1623983&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/QueryExecUtils.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/QueryExecUtils.java Wed Sep 10 12:47:59 2014
@@ -22,6 +22,7 @@ import java.util.List ;
 
 import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.ResultSetMgr ;
 
 import com.hp.hpl.jena.query.* ;
 import com.hp.hpl.jena.rdf.model.Model ;
@@ -105,6 +106,15 @@ public class QueryExecUtils {
     }
 
     public static void outputResultSet(ResultSet results, Prologue prologue, ResultsFormat outputFormat) {
+        // Proper ResultSet formats.
+        Lang lang = ResultsFormat.convert(outputFormat) ;
+        if ( lang != null ) {
+            ResultSetMgr.write(System.out, results, lang) ;
+            System.out.flush() ;
+            return ;
+        }
+        
+        // Old way.
         boolean done = false ;
         if ( prologue == null )
             prologue = new Prologue(globalPrefixMap) ;

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java?rev=1623983&r1=1623982&r2=1623983&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java Wed Sep 10 12:47:59 2014
@@ -24,6 +24,7 @@ import org.apache.jena.riot.RDFLanguages
 import org.apache.jena.riot.WebContent ;
 
 public class ResultSetLang {
+    // Add SSE!
     public static final Lang SPARQLResultSetXML
         = LangBuilder.create("SPARQL-Results-XML", WebContent.contentTypeResultsXML)
                      .addAltNames("SRX")
@@ -37,17 +38,14 @@ public class ResultSetLang {
                      .build() ;
     
     public static final Lang SPARQLResultSetCSV = Lang.CSV ;
-//         = LangBuilder.create("CSV", WebContent.contentTypeResultsXML)
-//                      .addAltNames("SRX")
-//                      .addFileExtensions("srx")
-//                      .build() ;
+    
     public static final Lang SPARQLResultSetTSV
         = LangBuilder.create("TSV", WebContent.contentTypeTextTSV)
                      .addFileExtensions("tsv")
                      .build() ;
     
     public static final Lang SPARQLResultSetThrift
-        = LangBuilder.create("SPARQL-Results-Thrift", "application/sparql-results+thrift")
+        = LangBuilder.create("SPARQL-Results-Thrift", WebContent.contentTypeResultsThrift)
                      .addAltNames("SRT")
                      .addFileExtensions("srt")
                      .build() ;