JENA-1454: Checks of arguments
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/b022dc1e Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/b022dc1e Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/b022dc1e Branch: refs/heads/master Commit: b022dc1ed532386b03bf5bb2669ee469f367411b Parents: 1ea4736 Author: Andy Seaborne <[email protected]> Authored: Sat Dec 23 15:51:25 2017 +0000 Committer: Andy Seaborne <[email protected]> Committed: Sat Dec 23 15:51:25 2017 +0000 ---------------------------------------------------------------------- .../java/org/apache/jena/riot/ResultSetMgr.java | 4 +++ .../jena/riot/resultset/rw/ResultsReader.java | 32 +++++++++++++------- .../jena/riot/resultset/rw/ResultsWriter.java | 30 +++++++++++++++--- 3 files changed, 50 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/b022dc1e/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java b/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java index 2c406f1..6e1b08c 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java @@ -210,6 +210,7 @@ public class ResultSetMgr { * @param lang */ public static void write(OutputStream output, ResultSet resultSet, Lang lang) { + Objects.requireNonNull(lang); ResultsWriter.create() .lang(lang) .write(output, resultSet); @@ -221,6 +222,7 @@ public class ResultSetMgr { * @param lang */ public static void write(OutputStream output, boolean result, Lang lang) { + Objects.requireNonNull(lang); ResultsWriter.create() .lang(lang) .build() @@ -232,6 +234,7 @@ public class ResultSetMgr { * @param lang */ public static String asString(ResultSet resultSet, Lang lang) { + Objects.requireNonNull(lang); ByteArrayOutputStream output = new ByteArrayOutputStream(1000); ResultsWriter.create() .lang(lang) @@ -244,6 +247,7 @@ public class ResultSetMgr { * @param lang */ public static String asString(boolean result, Lang lang) { + Objects.requireNonNull(lang); ByteArrayOutputStream output = new ByteArrayOutputStream(1000); ResultsWriter.create() .lang(lang) http://git-wip-us.apache.org/repos/asf/jena/blob/b022dc1e/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsReader.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsReader.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsReader.java index ce76d8c..b5c7961 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsReader.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsReader.java @@ -19,6 +19,7 @@ package org.apache.jena.riot.resultset.rw; import java.io.InputStream; +import java.util.Objects; import org.apache.jena.atlas.web.ContentType; import org.apache.jena.atlas.web.TypedInputStream; @@ -106,28 +107,37 @@ public class ResultsReader { return lang; } - public ResultSet read(String url) { - // Remap? - TypedInputStream in = StreamManager.get(context).open(url); - Lang lang = determinLang(in, url); - return readResultSet(in.getInputStream(), lang); + /** Read a result set from a URL or filename. */ + public ResultSet read(String urlOrFilename) { + Objects.nonNull(urlOrFilename); + try ( TypedInputStream in = StreamManager.get(context).open(urlOrFilename) ) { + Lang lang = determinLang(in, urlOrFilename); + return readResultSet(in.getInputStream(), lang); + } } + /** Read a result set from an {@code InputStream}. */ public ResultSet read(InputStream input) { - Lang lang = forceLang!=null ? forceLang : hintLang; + Objects.nonNull(input); + Lang lang = (forceLang!=null) ? forceLang : hintLang; if ( lang == null ) throw new RiotException("Need a syntax to read a result set from an InputStream"); return readResultSet(input, lang); } - public SPARQLResult readAny(String url) { - TypedInputStream in = StreamManager.get(context).open(url); - Lang lang = determinLang(in, url); - return readAny(in.getInputStream(), lang); + /** Read a result set or boolean from a URL or filename. */ + public SPARQLResult readAny(String urlOrFilename) { + Objects.nonNull(urlOrFilename); + try ( TypedInputStream in = StreamManager.get(context).open(urlOrFilename) ) { + Lang lang = determinLang(in, urlOrFilename); + return readAny(in.getInputStream(), lang); + } } + /** Read a result set or boolean from an {@code InputStream}. */ public SPARQLResult readAny(InputStream input) { - Lang lang = forceLang!=null ? forceLang : hintLang; + Objects.nonNull(input); + Lang lang = (forceLang!=null) ? forceLang : hintLang; if ( lang == null ) throw new RiotException("Need a syntax to read a result set from an InputStream"); return readAny(input, lang); http://git-wip-us.apache.org/repos/asf/jena/blob/b022dc1e/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java index d1c4c81..6f64415 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java @@ -18,9 +18,11 @@ package org.apache.jena.riot.resultset.rw; +import java.io.IOException; import java.io.OutputStream; +import java.util.Objects; -import org.apache.jena.atlas.lib.NotImplemented; +import org.apache.jena.atlas.io.IO; import org.apache.jena.query.ResultSet; import org.apache.jena.riot.Lang; import org.apache.jena.riot.RiotException; @@ -77,19 +79,33 @@ public class ResultsWriter { this.context = context; } - public void write(String url, ResultSet resultSet) { - throw new NotImplemented(); + /** Write a result set, using the configurartion of the {@code ResultWriter}, to a file */ + public void write(String filename, ResultSet resultSet) { + Objects.requireNonNull(filename); + Objects.requireNonNull(resultSet); + try ( OutputStream out = openURL(filename) ) { + write(out, resultSet); + } catch (IOException ex) { IO.exception(ex); } } + /** Write a result set, using the configurartion of the {@code ResultWriter}, to an {@code OutputStream}. */ public void write(OutputStream output, ResultSet resultSet) { + Objects.requireNonNull(output); + Objects.requireNonNull(resultSet); write(output, resultSet, null, lang); } - public void write(String url, boolean booleanResult) { - throw new NotImplemented(); + /** Write a boolean result, using the configurartion of the {@code ResultWriter}, to a file */ + public void write(String filename, boolean booleanResult) { + Objects.requireNonNull(booleanResult); + try ( OutputStream out = openURL(filename) ) { + write(out, booleanResult); + } catch (IOException ex) { IO.exception(ex); } } + /** Write a boolean result, using the configurartion of the {@code ResultWriter}, to an {@code OutputStream}. */ public void write(OutputStream output, boolean booleanResult) { + Objects.requireNonNull(output); write(output, null, booleanResult, lang); } @@ -110,4 +126,8 @@ public class ResultsWriter { else writer.write(output, result, context); } + + private OutputStream openURL(String filename) { + return IO.openOutputFile(filename); + } }
