You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by an...@apache.org on 2013/06/25 04:49:34 UTC
[2/2] git commit: MARMOTTA-265 : Replace SPARQL Results JSON writers
and parsers in marmotta-sparql
MARMOTTA-265 : Replace SPARQL Results JSON writers and parsers in marmotta-sparql
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/e931d8bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/e931d8bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/e931d8bc
Branch: refs/heads/develop
Commit: e931d8bc13867cc91a609a2a00308d8975b24cf6
Parents: bb4c15e
Author: Peter Ansell <p_...@yahoo.com>
Authored: Tue Jun 25 12:47:45 2013 +1000
Committer: Peter Ansell <p_...@yahoo.com>
Committed: Tue Jun 25 12:48:50 2013 +1000
----------------------------------------------------------------------
.../services/sparql/SparqlServiceImpl.java | 25 +-
.../sparqljson/SPARQLBooleanJSONWriter.java | 176 ----------
.../sparqljson/SPARQLResultsJSONWriter.java | 339 -------------------
.../sparql/webservices/SparqlWebService.java | 42 ++-
4 files changed, 31 insertions(+), 551 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e931d8bc/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java
index edcb99d..99af90d 100644
--- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java
+++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java
@@ -36,8 +36,6 @@ import org.apache.marmotta.platform.sparql.api.sparql.SparqlService;
import org.apache.marmotta.platform.sparql.services.sparqlio.rdf.SPARQLGraphResultWriter;
import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLBooleanHTMLWriter;
import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLResultsHTMLWriter;
-import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLBooleanJSONWriter;
-import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLResultsJSONWriter;
import org.openrdf.model.Value;
import org.openrdf.query.Binding;
import org.openrdf.query.BindingSet;
@@ -52,12 +50,11 @@ import org.openrdf.query.TupleQueryResult;
import org.openrdf.query.TupleQueryResultHandlerException;
import org.openrdf.query.Update;
import org.openrdf.query.UpdateExecutionException;
+import org.openrdf.query.resultio.BooleanQueryResultFormat;
import org.openrdf.query.resultio.BooleanQueryResultWriter;
+import org.openrdf.query.resultio.QueryResultIO;
+import org.openrdf.query.resultio.TupleQueryResultFormat;
import org.openrdf.query.resultio.TupleQueryResultWriter;
-import org.openrdf.query.resultio.sparqlxml.SPARQLBooleanXMLWriter;
-import org.openrdf.query.resultio.sparqlxml.SPARQLResultsXMLWriter;
-import org.openrdf.query.resultio.text.BooleanTextWriter;
-import org.openrdf.query.resultio.text.csv.SPARQLResultsCSVWriter;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import org.slf4j.Logger;
@@ -340,15 +337,15 @@ public class SparqlServiceImpl implements SparqlService {
//build outputwriter
final TupleQueryResultWriter out;
if(format == null) {
- out = new SPARQLResultsXMLWriter(os);
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.SPARQL, os);
} else if(SparqlWritersHelper.parseSubType(format).equals("html")) {
out = new SPARQLResultsHTMLWriter(os, templatingService);
} else if(SparqlWritersHelper.parseSubType(format).equals("json")) {
- out = new SPARQLResultsJSONWriter(os);
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.JSON, os);
} else if(SparqlWritersHelper.parseSubType(format).equals("xml")) {
- out = new SPARQLResultsXMLWriter(os);
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.SPARQL, os);
} else if(SparqlWritersHelper.parseSubType(format).equals("csv")) {
- out = new SPARQLResultsCSVWriter(os);
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.CSV, os);
} else throw new InvalidArgumentException("could not produce format "+format);
return out;
}
@@ -357,15 +354,15 @@ public class SparqlServiceImpl implements SparqlService {
//build outputwriter
final BooleanQueryResultWriter out;
if(format == null) {
- out = new SPARQLBooleanXMLWriter(os);
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.SPARQL, os);
} else if(SparqlWritersHelper.parseSubType(format).equals("html")) {
out = new SPARQLBooleanHTMLWriter(os);
} else if(SparqlWritersHelper.parseSubType(format).equals("json")) {
- out = new SPARQLBooleanJSONWriter(os);
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.JSON, os);
} else if(SparqlWritersHelper.parseSubType(format).equals("xml")) {
- out = new SPARQLBooleanXMLWriter(os);
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.SPARQL, os);
} else if(SparqlWritersHelper.parseSubType(format).equals("csv")) {
- out = new BooleanTextWriter(os);
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.TEXT, os);
} else throw new InvalidArgumentException("could not produce format "+format);
return out;
}
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e931d8bc/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
deleted file mode 100644
index e7e988b..0000000
--- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLBooleanJSONWriter.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-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!
- * <p/>
- * User: sschaffe
- */
-public class SPARQLBooleanJSONWriter implements BooleanQueryResultWriter {
-
- private OutputStream out;
- private WriterConfig config;
-
- public SPARQLBooleanJSONWriter(OutputStream out) {
- this.out = out;
- }
-
- /**
- * Gets the query result format that this writer uses.
- */
- @Override
- public BooleanQueryResultFormat getBooleanQueryResultFormat() {
- return new BooleanQueryResultFormat("SPARQL/JSON",
- "application/sparql-results+json", Charset.forName("UTF-8"), "srj");
- }
-
- /**
- * Writes the specified boolean value.
- */
- @Override
- @Deprecated
- public void write(boolean value) throws IOException {
- try {
- handleBoolean(value);
- } catch (QueryResultHandlerException e) {
- throw new IOException(e);
- }
- }
-
- /**
- * @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 value) throws QueryResultHandlerException {
- PrintWriter writer = new PrintWriter(new OutputStreamWriter(out));
- writer.println("{ \"head\": {}, \"boolean\": \""+value+"\" }");
- writer.flush();
- writer.close();
- }
-
- @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/e931d8bc/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
deleted file mode 100644
index cfa5ec1..0000000
--- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqljson/SPARQLResultsJSONWriter.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-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 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
- * href="http://www.w3.org/TR/rdf-sparql-json-res/">SPARQL Query Results JSON
- * Format</a>.
- */
-public class SPARQLResultsJSONWriter implements TupleQueryResultWriter {
-
- 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;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e931d8bc/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
index d3f11fd..2383886 100644
--- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
+++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java
@@ -20,11 +20,10 @@ package org.apache.marmotta.platform.sparql.webservices;
import org.apache.marmotta.platform.core.api.templating.TemplatingService;
import org.apache.marmotta.platform.core.exception.MarmottaException;
import org.apache.marmotta.platform.sparql.api.sparql.SparqlService;
+import org.apache.marmotta.platform.sparql.services.sparql.SparqlWritersHelper;
import org.apache.marmotta.platform.sparql.services.sparqlio.rdf.SPARQLGraphResultWriter;
import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLBooleanHTMLWriter;
import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLResultsHTMLWriter;
-import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLBooleanJSONWriter;
-import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLResultsJSONWriter;
import com.google.common.collect.Lists;
import com.google.common.io.CharStreams;
import org.apache.marmotta.platform.core.api.config.ConfigurationService;
@@ -37,12 +36,11 @@ import org.openrdf.query.MalformedQueryException;
import org.openrdf.query.QueryEvaluationException;
import org.openrdf.query.QueryLanguage;
import org.openrdf.query.UpdateExecutionException;
+import org.openrdf.query.resultio.BooleanQueryResultFormat;
import org.openrdf.query.resultio.BooleanQueryResultWriter;
+import org.openrdf.query.resultio.QueryResultIO;
+import org.openrdf.query.resultio.TupleQueryResultFormat;
import org.openrdf.query.resultio.TupleQueryResultWriter;
-import org.openrdf.query.resultio.sparqlxml.SPARQLBooleanXMLWriter;
-import org.openrdf.query.resultio.sparqlxml.SPARQLResultsXMLWriter;
-import org.openrdf.query.resultio.text.BooleanTextWriter;
-import org.openrdf.query.resultio.text.csv.SPARQLResultsCSVWriter;
import org.slf4j.Logger;
import javax.enterprise.context.ApplicationScoped;
@@ -535,15 +533,15 @@ public class SparqlWebService {
//build outputwriter
final TupleQueryResultWriter out;
if(format == null) {
- out = new SPARQLResultsXMLWriter(os);
- } else if(parseSubType(format).equals("html")) {
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.SPARQL, os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("html")) {
out = new SPARQLResultsHTMLWriter(os, templatingService);
- } else if(parseSubType(format).equals("json")) {
- out = new SPARQLResultsJSONWriter(os);
- } else if(parseSubType(format).equals("xml")) {
- out = new SPARQLResultsXMLWriter(os);
- } else if(parseSubType(format).equals("csv")) {
- out = new SPARQLResultsCSVWriter(os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("json")) {
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.JSON, os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("xml")) {
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.SPARQL, os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("csv")) {
+ out = QueryResultIO.createWriter(TupleQueryResultFormat.CSV, os);
} else throw new InvalidArgumentException("could not produce format "+format);
return out;
}
@@ -552,15 +550,15 @@ public class SparqlWebService {
//build outputwriter
final BooleanQueryResultWriter out;
if(format == null) {
- out = new SPARQLBooleanXMLWriter(os);
- } else if(parseSubType(format).equals("html")) {
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.SPARQL, os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("html")) {
out = new SPARQLBooleanHTMLWriter(os);
- } else if(parseSubType(format).equals("json")) {
- out = new SPARQLBooleanJSONWriter(os);
- } else if(parseSubType(format).equals("xml")) {
- out = new SPARQLBooleanXMLWriter(os);
- } else if(parseSubType(format).equals("csv")) {
- out = new BooleanTextWriter(os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("json")) {
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.JSON, os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("xml")) {
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.SPARQL, os);
+ } else if(SparqlWritersHelper.parseSubType(format).equals("csv")) {
+ out = QueryResultIO.createWriter(BooleanQueryResultFormat.TEXT, os);
} else throw new InvalidArgumentException("could not produce format "+format);
return out;
}