MARMOTTA-204: updated marmotta-sparql to be compatible with the new rio writers 
in sesame 2.7.0


Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/2a2baa77
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/2a2baa77
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/2a2baa77

Branch: refs/heads/develop
Commit: 2a2baa770b9532f280c56f958099e6cbc568fbe6
Parents: 9cbf5ea
Author: Sergio Fernández <[email protected]>
Authored: Wed Apr 17 09:30:15 2013 +0200
Committer: Sergio Fernández <[email protected]>
Committed: Wed Apr 17 09:30:15 2013 +0200

----------------------------------------------------------------------
 .../sparqlhtml/SPARQLBooleanHTMLWriter.java        |  135 +++-
 .../sparqlhtml/SPARQLResultsHTMLWriter.java        |   95 +++-
 .../sparqlhtml/SPARQLResultsHTMLWriterXSL.java     |  104 +++-
 .../sparqljson/SPARQLBooleanJSONWriter.java        |  111 +++-
 .../sparqljson/SPARQLResultsJSONWriter.java        |  538 ++++++++-------
 5 files changed, 708 insertions(+), 275 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/2a2baa77/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java
index bc08941..28b83e3 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java
@@ -17,36 +17,47 @@
  */
 package org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml;
 
+import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.Templates;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
+
 import org.apache.marmotta.platform.core.api.config.ConfigurationService;
 import org.apache.marmotta.platform.core.util.CDIContext;
 import org.jdom2.Document;
 import org.jdom2.output.Format;
 import org.jdom2.output.XMLOutputter;
 import org.jdom2.transform.JDOMResult;
+import org.openrdf.query.BindingSet;
+import org.openrdf.query.QueryResultHandlerException;
+import org.openrdf.query.TupleQueryResultHandlerException;
 import org.openrdf.query.resultio.BooleanQueryResultFormat;
 import org.openrdf.query.resultio.BooleanQueryResultWriter;
+import org.openrdf.query.resultio.QueryResultFormat;
 import org.openrdf.query.resultio.sparqlxml.SPARQLBooleanXMLWriter;
+import org.openrdf.rio.RioSetting;
+import org.openrdf.rio.WriterConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.xml.transform.Source;
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamSource;
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.nio.charset.Charset;
-
 /**
- * Add file description here!
- * <p/>
- * User: sschaffe
+ * SPARQL Boolean HTML RIO Writer
+ * 
+ * @author Sebastian Schaffert
+ * @author Sergio Fernández
  */
 public class SPARQLBooleanHTMLWriter implements BooleanQueryResultWriter {
 
@@ -55,14 +66,15 @@ public class SPARQLBooleanHTMLWriter implements 
BooleanQueryResultWriter {
     private OutputStream out;
     private ByteArrayOutputStream xmlOut;
 
-    private SPARQLBooleanXMLWriter xmlWriter;
+    private SPARQLBooleanXMLWriter writer;
+    private WriterConfig config;
 
     private Templates stylesheet;
 
     public SPARQLBooleanHTMLWriter(OutputStream out) {
         this.out = out;
         this.xmlOut = new ByteArrayOutputStream();
-        this.xmlWriter = new SPARQLBooleanXMLWriter(xmlOut);
+        this.writer = new SPARQLBooleanXMLWriter(xmlOut);
 
         Source s_stylesheet = new 
StreamSource(SPARQLBooleanHTMLWriter.class.getResourceAsStream("style.xsl"));
         try {
@@ -85,7 +97,7 @@ public class SPARQLBooleanHTMLWriter implements 
BooleanQueryResultWriter {
      */
     @Override
     public void write(boolean value) throws IOException {
-        xmlWriter.write(value);
+        writer.write(value);
 
         byte[] queryResult = xmlOut.toByteArray();
 
@@ -94,7 +106,7 @@ public class SPARQLBooleanHTMLWriter implements 
BooleanQueryResultWriter {
 
         BufferedWriter writer = new BufferedWriter(new 
OutputStreamWriter(out));
         try {
-            Source input      = new StreamSource(new 
ByteArrayInputStream(queryResult));
+            Source input = new StreamSource(new 
ByteArrayInputStream(queryResult));
 
             Transformer transformer = stylesheet.newTransformer();
             transformer.setParameter("serverurl", server_uri);
@@ -111,6 +123,85 @@ public class SPARQLBooleanHTMLWriter implements 
BooleanQueryResultWriter {
         } finally {
             writer.close();
         }
-
     }
+
+       @Override
+       public void endHeader() throws QueryResultHandlerException {
+               
+       }
+
+       @Override
+       public QueryResultFormat getQueryResultFormat() {
+               return new QueryResultFormat("HTML", "text/html", 
Charset.forName("utf-8"), "html");
+       }
+
+       @Override
+       public Collection<RioSetting<?>> getSupportedSettings() {
+               return new ArrayList<RioSetting<?>>();
+       }
+
+       @Override
+       public WriterConfig getWriterConfig() {
+               return config;
+       }
+
+       @Override
+       public void handleNamespace(String arg0, String arg1) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleStylesheet(String arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void setWriterConfig(WriterConfig config) {
+               this.config = config;
+       }
+
+       @Override
+       public void startDocument() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void endQueryResult() throws TupleQueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleBoolean(boolean arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleLinks(List<String> links) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleSolution(BindingSet bindings) throws 
TupleQueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startQueryResult(List<String> start) throws 
TupleQueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+    
 }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/2a2baa77/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java
index 05560a4..a1cc0e3 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java
@@ -20,6 +20,8 @@ package 
org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -27,9 +29,13 @@ import java.util.Map;
 
 import org.apache.marmotta.platform.core.api.templating.TemplatingService;
 import org.openrdf.query.BindingSet;
+import org.openrdf.query.QueryResultHandlerException;
 import org.openrdf.query.TupleQueryResultHandlerException;
+import org.openrdf.query.resultio.QueryResultFormat;
 import org.openrdf.query.resultio.TupleQueryResultFormat;
 import org.openrdf.query.resultio.TupleQueryResultWriter;
+import org.openrdf.rio.RioSetting;
+import org.openrdf.rio.WriterConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,6 +60,8 @@ public class SPARQLResultsHTMLWriter implements 
TupleQueryResultWriter {
 
     private TemplatingService templatingService;
     
+    private WriterConfig config;
+    
     public SPARQLResultsHTMLWriter(OutputStream out, TemplatingService 
templatingService) {
         this.out = out;
     }
@@ -106,6 +114,91 @@ public class SPARQLResultsHTMLWriter implements 
TupleQueryResultWriter {
             log.error(e.getMessage(), e);
             throw new TupleQueryResultHandlerException(e);
         }
-       }       
+       }
+
+       @Override
+       public void handleBoolean(boolean arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleLinks(List<String> arg0)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public QueryResultFormat getQueryResultFormat() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public void handleNamespace(String prefix, String uri)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startDocument() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleStylesheet(String stylesheetUrl)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void endHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+    /**
+     * @return A collection of {@link RioSetting}s that are supported by this
+     *         RDFWriter.
+     * @since 2.7.0
+     */
+       @Override
+       public Collection<RioSetting<?>> getSupportedSettings() {
+               return new ArrayList<RioSetting<?>>();
+       }
+
+    /**
+     * Retrieves the current writer configuration as a single object.
+     * 
+     * @return a writer configuration object representing the current
+     *         configuration of the writer.
+     * @since 2.7.0
+     */
+       @Override
+       public WriterConfig getWriterConfig() {
+               return config;
+       }
+
+    /**
+     * Sets all supplied writer configuration options.
+     * 
+     * @param config
+     *        a writer configuration object.
+     * @since 2.7.0
+     */
+       @Override
+       public void setWriterConfig(WriterConfig config) {
+               this.config = config;
+       }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/2a2baa77/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriterXSL.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriterXSL.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriterXSL.java
index 56fbe11..5959b2a 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriterXSL.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriterXSL.java
@@ -24,10 +24,14 @@ import org.jdom2.output.Format;
 import org.jdom2.output.XMLOutputter;
 import org.jdom2.transform.JDOMResult;
 import org.openrdf.query.BindingSet;
+import org.openrdf.query.QueryResultHandlerException;
 import org.openrdf.query.TupleQueryResultHandlerException;
+import org.openrdf.query.resultio.QueryResultFormat;
 import org.openrdf.query.resultio.TupleQueryResultFormat;
 import org.openrdf.query.resultio.TupleQueryResultWriter;
 import org.openrdf.query.resultio.sparqlxml.SPARQLResultsXMLWriter;
+import org.openrdf.rio.RioSetting;
+import org.openrdf.rio.WriterConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,6 +48,8 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -59,14 +65,16 @@ public class SPARQLResultsHTMLWriterXSL implements 
TupleQueryResultWriter {
     private OutputStream out;
     private ByteArrayOutputStream xmlOut;
 
-    private SPARQLResultsXMLWriter xmlWriter;
+    private SPARQLResultsXMLWriter writer;
+    
+    private WriterConfig config;
 
     private Templates stylesheet;
 
     public SPARQLResultsHTMLWriterXSL(OutputStream out) {
         this.out = out;
         this.xmlOut = new ByteArrayOutputStream();
-        this.xmlWriter = new SPARQLResultsXMLWriter(xmlOut);
+        this.writer = new SPARQLResultsXMLWriter(xmlOut);
         Source s_stylesheet = new 
StreamSource(SPARQLResultsHTMLWriterXSL.class.getResourceAsStream("style.xsl"));
         try {
             stylesheet = 
TransformerFactory.newInstance().newTemplates(s_stylesheet);
@@ -93,7 +101,7 @@ public class SPARQLResultsHTMLWriterXSL implements 
TupleQueryResultWriter {
      */
     @Override
     public void startQueryResult(List<String> bindingNames) throws 
TupleQueryResultHandlerException {
-        xmlWriter.startQueryResult(bindingNames);
+        writer.startQueryResult(bindingNames);
     }
 
     /**
@@ -101,7 +109,7 @@ public class SPARQLResultsHTMLWriterXSL implements 
TupleQueryResultWriter {
      */
     @Override
     public void endQueryResult() throws TupleQueryResultHandlerException {
-        xmlWriter.endQueryResult();
+        writer.endQueryResult();
 
         // get server uri
         String server_uri = 
CDIContext.getInstance(ConfigurationService.class).getServerUri();
@@ -138,6 +146,92 @@ public class SPARQLResultsHTMLWriterXSL implements 
TupleQueryResultWriter {
      */
     @Override
     public void handleSolution(BindingSet bindingSet) throws 
TupleQueryResultHandlerException {
-        xmlWriter.handleSolution(bindingSet);
+        writer.handleSolution(bindingSet);
     }
+
+       @Override
+       public void handleBoolean(boolean arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleLinks(List<String> arg0)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public QueryResultFormat getQueryResultFormat() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public void handleNamespace(String prefix, String uri)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startDocument() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleStylesheet(String stylesheetUrl)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void endHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+    /**
+     * @return A collection of {@link RioSetting}s that are supported by this
+     *         RDFWriter.
+     * @since 2.7.0
+     */
+       @Override
+       public Collection<RioSetting<?>> getSupportedSettings() {
+               return new ArrayList<RioSetting<?>>();
+       }
+
+    /**
+     * Retrieves the current writer configuration as a single object.
+     * 
+     * @return a writer configuration object representing the current
+     *         configuration of the writer.
+     * @since 2.7.0
+     */
+       @Override
+       public WriterConfig getWriterConfig() {
+               return config;
+       }
+
+    /**
+     * Sets all supplied writer configuration options.
+     * 
+     * @param config
+     *        a writer configuration object.
+     * @since 2.7.0
+     */
+       @Override
+       public void setWriterConfig(WriterConfig config) {
+               this.config = config;
+       }
+       
 }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/2a2baa77/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLBooleanJSONWriter.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLBooleanJSONWriter.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLBooleanJSONWriter.java
index b9c81d9..31ef321 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLBooleanJSONWriter.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLBooleanJSONWriter.java
@@ -17,14 +17,23 @@
  */
 package org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson;
 
+import org.openrdf.query.BindingSet;
+import org.openrdf.query.QueryResultHandlerException;
+import org.openrdf.query.TupleQueryResultHandlerException;
 import org.openrdf.query.resultio.BooleanQueryResultFormat;
 import org.openrdf.query.resultio.BooleanQueryResultWriter;
+import org.openrdf.query.resultio.QueryResultFormat;
+import org.openrdf.rio.RioSetting;
+import org.openrdf.rio.WriterConfig;
 
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 
 /**
  * Add file description here!
@@ -33,8 +42,8 @@ import java.nio.charset.Charset;
  */
 public class SPARQLBooleanJSONWriter implements BooleanQueryResultWriter {
 
-
     private OutputStream out;
+    private WriterConfig config;
 
     public SPARQLBooleanJSONWriter(OutputStream out) {
         this.out = out;
@@ -59,4 +68,104 @@ public class SPARQLBooleanJSONWriter implements 
BooleanQueryResultWriter {
         writer.flush();
         writer.close();
     }
+    
+    /**
+     * @return A collection of {@link RioSetting}s that are supported by this
+     *         RDFWriter.
+     * @since 2.7.0
+     */
+       @Override
+       public Collection<RioSetting<?>> getSupportedSettings() {
+               return new ArrayList<RioSetting<?>>();
+       }
+
+    /**
+     * Retrieves the current writer configuration as a single object.
+     * 
+     * @return a writer configuration object representing the current
+     *         configuration of the writer.
+     * @since 2.7.0
+     */
+       @Override
+       public WriterConfig getWriterConfig() {
+               return config;
+       }
+
+    /**
+     * Sets all supplied writer configuration options.
+     * 
+     * @param config
+     *        a writer configuration object.
+     * @since 2.7.0
+     */
+       @Override
+       public void setWriterConfig(WriterConfig config) {
+               this.config = config;
+       }
+
+       @Override
+       public QueryResultFormat getQueryResultFormat() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public void handleNamespace(String prefix, String uri) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startDocument() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleStylesheet(String stylesheetUrl) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void endHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void endQueryResult() throws TupleQueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleBoolean(boolean arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleLinks(List<String> arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void handleSolution(BindingSet arg0) throws 
TupleQueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void startQueryResult(List<String> arg0) throws 
TupleQueryResultHandlerException {
+               // TODO Auto-generated method stub
+               
+       }    
 }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/2a2baa77/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLResultsJSONWriter.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLResultsJSONWriter.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLResultsJSONWriter.java
index 0bf4881..941ec6d 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLResultsJSONWriter.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLResultsJSONWriter.java
@@ -17,27 +17,33 @@
  */
 package org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson;
 
+import info.aduna.io.IndentingWriter;
+import info.aduna.text.StringUtil;
+
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-import info.aduna.io.IndentingWriter;
-import info.aduna.text.StringUtil;
-
 import org.openrdf.model.BNode;
 import org.openrdf.model.Literal;
 import org.openrdf.model.URI;
 import org.openrdf.model.Value;
 import org.openrdf.query.Binding;
 import org.openrdf.query.BindingSet;
+import org.openrdf.query.QueryResultHandlerException;
 import org.openrdf.query.TupleQueryResultHandlerException;
+import org.openrdf.query.resultio.QueryResultFormat;
 import org.openrdf.query.resultio.TupleQueryResultFormat;
 import org.openrdf.query.resultio.TupleQueryResultWriter;
+import org.openrdf.rio.RioSetting;
+import org.openrdf.rio.WriterConfig;
 
 /**
  * A TupleQueryResultWriter that writes query results in the <a
@@ -46,247 +52,287 @@ import org.openrdf.query.resultio.TupleQueryResultWriter;
  */
 public class SPARQLResultsJSONWriter implements TupleQueryResultWriter {
 
-       /*-----------*
-        * Variables *
-        *-----------*/
-
-    private IndentingWriter writer;
-
-    private boolean firstTupleWritten;
-
-       /*--------------*
-        * Constructors *
-        *--------------*/
-
-    public SPARQLResultsJSONWriter(OutputStream out) {
-        Writer w = new OutputStreamWriter(out, Charset.forName("UTF-8"));
-        w = new BufferedWriter(w, 1024);
-        writer = new IndentingWriter(w);
-    }
-
-       /*---------*
-        * Methods *
-        *---------*/
-
-    public final TupleQueryResultFormat getTupleQueryResultFormat() {
-        return TupleQueryResultFormat.JSON;
-    }
-
-    public void startQueryResult(List<String> columnHeaders)
-            throws TupleQueryResultHandlerException
-    {
-        try {
-            openBraces();
-
-            // Write header
-            writeKey("head");
-            openBraces();
-            writeKeyValue("vars", columnHeaders);
-            closeBraces();
-
-            writeComma();
-
-            // Write results
-            writeKey("results");
-            openBraces();
-
-            writeKey("bindings");
-            openArray();
-
-            firstTupleWritten = false;
-        }
-        catch (IOException e) {
-            throw new TupleQueryResultHandlerException(e);
-        }
-    }
-
-    public void endQueryResult()
-            throws TupleQueryResultHandlerException
-    {
-        try {
-            closeArray(); // bindings array
-            closeBraces(); // results braces
-            closeBraces(); // root braces
-            writer.flush();
-        }
-        catch (IOException e) {
-            throw new TupleQueryResultHandlerException(e);
-        }
-    }
-
-    public void handleSolution(BindingSet bindingSet)
-            throws TupleQueryResultHandlerException
-    {
-        try {
-            if (firstTupleWritten) {
-                writeComma();
-            }
-            else {
-                firstTupleWritten = true;
-            }
-
-            openBraces(); // start of new solution
-
-            Iterator<Binding> bindingIter = bindingSet.iterator();
-            while (bindingIter.hasNext()) {
-                Binding binding = bindingIter.next();
-
-                writeKeyValue(binding.getName(), binding.getValue());
-
-                if (bindingIter.hasNext()) {
-                    writeComma();
-                }
-            }
-
-            closeBraces(); // end solution
-
-            writer.flush();
-        }
-        catch (IOException e) {
-            throw new TupleQueryResultHandlerException(e);
-        }
-    }
-
-    private void writeKeyValue(String key, String value)
-            throws IOException
-    {
-        writeKey(key);
-        writeString(value);
-    }
-
-    private void writeKeyValue(String key, Value value)
-            throws IOException, TupleQueryResultHandlerException
-    {
-        writeKey(key);
-        writeValue(value);
-    }
-
-    private void writeKeyValue(String key, Iterable<String> array)
-            throws IOException
-    {
-        writeKey(key);
-        writeArray(array);
-    }
-
-    private void writeKey(String key)
-            throws IOException
-    {
-        writeString(key);
-        writer.write(": ");
-    }
-
-    private void writeValue(Value value)
-            throws IOException, TupleQueryResultHandlerException
-    {
-        writer.write("{ ");
-
-        if (value instanceof URI) {
-            writeKeyValue("type", "uri");
-            writer.write(", ");
-            writeKeyValue("value", ((URI)value).toString());
-        }
-        else if (value instanceof BNode) {
-            writeKeyValue("type", "bnode");
-            writer.write(", ");
-            writeKeyValue("value", ((BNode)value).getID());
-        }
-        else if (value instanceof Literal) {
-            Literal lit = (Literal)value;
-
-            if (lit.getLanguage() != null) {
-                writeKeyValue("xml:lang", lit.getLanguage());
-                writer.write(", ");
-            }
-            if (lit.getDatatype() != null) {
-                writeKeyValue("datatype", lit.getDatatype().toString());
-                writer.write(", ");
-            }
-
-            writeKeyValue("type", "literal");
-
-            writer.write(", ");
-            writeKeyValue("value", lit.getLabel());
-        }
-        else {
-            throw new TupleQueryResultHandlerException("Unknown Value object 
type: " + value.getClass());
-        }
-
-        writer.write(" }");
-    }
-
-    private void writeString(String value)
-            throws IOException
-    {
-        // Escape special characters
-        value = StringUtil.gsub("\\", "\\\\", value);
-        value = StringUtil.gsub("\"", "\\\"", value);
-        value = StringUtil.gsub("/", "\\/", value);
-        value = StringUtil.gsub("\b", "\\b", value);
-        value = StringUtil.gsub("\f", "\\f", value);
-        value = StringUtil.gsub("\n", "\\n", value);
-        value = StringUtil.gsub("\r", "\\r", value);
-        value = StringUtil.gsub("\t", "\\t", value);
-
-        writer.write("\"");
-        writer.write(value);
-        writer.write("\"");
-    }
-
-    private void writeArray(Iterable<String> array)
-            throws IOException
-    {
-        writer.write("[ ");
-
-        Iterator<String> iter = array.iterator();
-        while (iter.hasNext()) {
-            String value = iter.next();
-
-            writeString(value);
-
-            if (iter.hasNext()) {
-                writer.write(", ");
-            }
-        }
-
-        writer.write(" ]");
-    }
-
-    private void openArray()
-            throws IOException
-    {
-        writer.write("[");
-        writer.writeEOL();
-        writer.increaseIndentation();
-    }
-
-    private void closeArray()
-            throws IOException
-    {
-        writer.writeEOL();
-        writer.decreaseIndentation();
-        writer.write("]");
-    }
-
-    private void openBraces()
-            throws IOException
-    {
-        writer.write("{");
-        writer.writeEOL();
-        writer.increaseIndentation();
-    }
-
-    private void closeBraces()
-            throws IOException
-    {
-        writer.writeEOL();
-        writer.decreaseIndentation();
-        writer.write("}");
-    }
-
-    private void writeComma()
-            throws IOException
-    {
-        writer.write(", ");
-        writer.writeEOL();
-    }
+       private IndentingWriter writer;
+
+       private WriterConfig config;
+       
+       private boolean firstTupleWritten;
+
+       public SPARQLResultsJSONWriter(OutputStream out) {
+               Writer w = new OutputStreamWriter(out, 
Charset.forName("UTF-8"));
+               w = new BufferedWriter(w, 1024);
+               writer = new IndentingWriter(w);
+       }
+
+       public final TupleQueryResultFormat getTupleQueryResultFormat() {
+               return TupleQueryResultFormat.JSON;
+       }
+
+       public void startQueryResult(List<String> columnHeaders) throws 
TupleQueryResultHandlerException {
+               try {
+                       openBraces();
+
+                       // Write header
+                       writeKey("head");
+                       openBraces();
+                       writeKeyValue("vars", columnHeaders);
+                       closeBraces();
+
+                       writeComma();
+
+                       // Write results
+                       writeKey("results");
+                       openBraces();
+
+                       writeKey("bindings");
+                       openArray();
+
+                       firstTupleWritten = false;
+               } catch (IOException e) {
+                       throw new TupleQueryResultHandlerException(e);
+               }
+       }
+
+       public void endQueryResult() throws TupleQueryResultHandlerException {
+               try {
+                       closeArray(); // bindings array
+                       closeBraces(); // results braces
+                       closeBraces(); // root braces
+                       writer.flush();
+               } catch (IOException e) {
+                       throw new TupleQueryResultHandlerException(e);
+               }
+       }
+
+       public void handleSolution(BindingSet bindingSet) throws 
TupleQueryResultHandlerException {
+               try {
+                       if (firstTupleWritten) {
+                               writeComma();
+                       } else {
+                               firstTupleWritten = true;
+                       }
+
+                       openBraces(); // start of new solution
+
+                       Iterator<Binding> bindingIter = bindingSet.iterator();
+                       while (bindingIter.hasNext()) {
+                               Binding binding = bindingIter.next();
+
+                               writeKeyValue(binding.getName(), 
binding.getValue());
+
+                               if (bindingIter.hasNext()) {
+                                       writeComma();
+                               }
+                       }
+
+                       closeBraces(); // end solution
+
+                       writer.flush();
+               } catch (IOException e) {
+                       throw new TupleQueryResultHandlerException(e);
+               }
+       }
+
+       private void writeKeyValue(String key, String value) throws IOException 
{
+               writeKey(key);
+               writeString(value);
+       }
+
+       private void writeKeyValue(String key, Value value) throws IOException, 
TupleQueryResultHandlerException {
+               writeKey(key);
+               writeValue(value);
+       }
+
+       private void writeKeyValue(String key, Iterable<String> array)
+                       throws IOException {
+               writeKey(key);
+               writeArray(array);
+       }
+
+       private void writeKey(String key) throws IOException {
+               writeString(key);
+               writer.write(": ");
+       }
+
+       private void writeValue(Value value) throws IOException, 
TupleQueryResultHandlerException {
+               writer.write("{ ");
+
+               if (value instanceof URI) {
+                       writeKeyValue("type", "uri");
+                       writer.write(", ");
+                       writeKeyValue("value", ((URI) value).toString());
+               } else if (value instanceof BNode) {
+                       writeKeyValue("type", "bnode");
+                       writer.write(", ");
+                       writeKeyValue("value", ((BNode) value).getID());
+               } else if (value instanceof Literal) {
+                       Literal lit = (Literal) value;
+
+                       if (lit.getLanguage() != null) {
+                               writeKeyValue("xml:lang", lit.getLanguage());
+                               writer.write(", ");
+                       }
+                       if (lit.getDatatype() != null) {
+                               writeKeyValue("datatype", 
lit.getDatatype().toString());
+                               writer.write(", ");
+                       }
+
+                       writeKeyValue("type", "literal");
+
+                       writer.write(", ");
+                       writeKeyValue("value", lit.getLabel());
+               } else {
+                       throw new TupleQueryResultHandlerException(
+                                       "Unknown Value object type: " + 
value.getClass());
+               }
+
+               writer.write(" }");
+       }
+
+       private void writeString(String value) throws IOException {
+               // Escape special characters
+               value = StringUtil.gsub("\\", "\\\\", value);
+               value = StringUtil.gsub("\"", "\\\"", value);
+               value = StringUtil.gsub("/", "\\/", value);
+               value = StringUtil.gsub("\b", "\\b", value);
+               value = StringUtil.gsub("\f", "\\f", value);
+               value = StringUtil.gsub("\n", "\\n", value);
+               value = StringUtil.gsub("\r", "\\r", value);
+               value = StringUtil.gsub("\t", "\\t", value);
+
+               writer.write("\"");
+               writer.write(value);
+               writer.write("\"");
+       }
+
+       private void writeArray(Iterable<String> array) throws IOException {
+               writer.write("[ ");
+
+               Iterator<String> iter = array.iterator();
+               while (iter.hasNext()) {
+                       String value = iter.next();
+
+                       writeString(value);
+
+                       if (iter.hasNext()) {
+                               writer.write(", ");
+                       }
+               }
+
+               writer.write(" ]");
+       }
+
+       private void openArray() throws IOException {
+               writer.write("[");
+               writer.writeEOL();
+               writer.increaseIndentation();
+       }
+
+       private void closeArray() throws IOException {
+               writer.writeEOL();
+               writer.decreaseIndentation();
+               writer.write("]");
+       }
+
+       private void openBraces() throws IOException {
+               writer.write("{");
+               writer.writeEOL();
+               writer.increaseIndentation();
+       }
+
+       private void closeBraces() throws IOException {
+               writer.writeEOL();
+               writer.decreaseIndentation();
+               writer.write("}");
+       }
+
+       private void writeComma() throws IOException {
+               writer.write(", ");
+               writer.writeEOL();
+       }
+
+       @Override
+       public void handleBoolean(boolean arg0) throws 
QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void handleLinks(List<String> arg0)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public QueryResultFormat getQueryResultFormat() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public void handleNamespace(String prefix, String uri)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void startDocument() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void handleStylesheet(String stylesheetUrl)
+                       throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void startHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void endHeader() throws QueryResultHandlerException {
+               // TODO Auto-generated method stub
+
+       }
+
+    /**
+     * @return A collection of {@link RioSetting}s that are supported by this
+     *         RDFWriter.
+     * @since 2.7.0
+     */
+       @Override
+       public Collection<RioSetting<?>> getSupportedSettings() {
+               return new ArrayList<RioSetting<?>>();
+       }
+
+    /**
+     * Retrieves the current writer configuration as a single object.
+     * 
+     * @return a writer configuration object representing the current
+     *         configuration of the writer.
+     * @since 2.7.0
+     */
+       @Override
+       public WriterConfig getWriterConfig() {
+               return config;
+       }
+
+    /**
+     * Sets all supplied writer configuration options.
+     * 
+     * @param config
+     *        a writer configuration object.
+     * @since 2.7.0
+     */
+       @Override
+       public void setWriterConfig(WriterConfig config) {
+               this.config = config;
+       }
 }

Reply via email to