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);
+    }
 }

Reply via email to