Author: sallen
Date: Thu Apr 19 01:24:21 2012
New Revision: 1327765

URL: http://svn.apache.org/viewvc?rev=1327765&view=rev
Log:
1) Created methods in RiotReader to get an Iterator<Triple | Quad> from an 
InputStream. 
2) Added some more methods to UpdateWriter.

Modified:
    
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
    
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java
    
incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/riot/RiotReader.java

Modified: 
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
URL: 
http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java?rev=1327765&r1=1327764&r2=1327765&view=diff
==============================================================================
--- 
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
 (original)
+++ 
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
 Thu Apr 19 01:24:21 2012
@@ -27,10 +27,8 @@ import java.util.Map ;
 import java.util.concurrent.TimeUnit ;
 
 import org.openjena.atlas.io.IO ;
-import org.openjena.atlas.iterator.IteratorResourceClosing ;
 import org.openjena.riot.Lang ;
 import org.openjena.riot.RiotReader ;
-import org.openjena.riot.RiotTripleParsePuller ;
 import org.openjena.riot.WebContent ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
@@ -301,18 +299,7 @@ public class QueryEngineHTTP implements 
         Lang lang = WebContent.contentTypeToLang(actualContentType);
         if (!lang.isTriples()) throw new QueryException("Endpoint returned 
Content Type: " + actualContentType + " which is not a valid RDF Graph syntax");
         
-        // Special case N-Triples, because the RIOT reader has a pull interface
-        if (lang == Lang.NTRIPLES)
-        {
-            return new 
IteratorResourceClosing<Triple>(RiotReader.createParserNTriples(in, null), in);
-        }
-        else
-        {
-            // Otherwise, we have to spin up a thread to deal with it
-            RiotTripleParsePuller parsePuller = new RiotTripleParsePuller(in, 
lang, null);
-            parsePuller.parse();
-            return parsePuller;
-        }
+        return RiotReader.createIteratorTriples(in, lang, null);
     }
     
     @Override

Modified: 
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java
URL: 
http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java?rev=1327765&r1=1327764&r2=1327765&view=diff
==============================================================================
--- 
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java
 (original)
+++ 
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java
 Thu Apr 19 01:24:21 2012
@@ -18,6 +18,7 @@
 
 package com.hp.hpl.jena.sparql.modify.request;
 
+import java.util.Iterator;
 import java.util.List;
 
 import org.openjena.atlas.io.IndentedWriter;
@@ -49,6 +50,16 @@ public class UpdateWriter implements Clo
     
     public UpdateWriter(IndentedWriter out, SerializationContext sCxt)
     {
+        if (out == null)
+        {
+            throw new IllegalArgumentException("out may not be null") ;
+        }
+        
+        if (sCxt == null)
+        {
+            sCxt = new SerializationContext();
+        }
+        
         this.out = out;
         this.sCxt = sCxt;
     }
@@ -105,6 +116,16 @@ public class UpdateWriter implements Clo
         insert(quad.getGraph(), quad.asTriple());
     }
     
+    public void insert(Iterator<? extends Quad> it)
+    {
+        checkOpen();
+        prepareForDataUpdate(UpdateMode.INSERT);
+        while (it.hasNext())
+        {
+            udw.send(it.next());
+        }
+    }
+    
     public void insert(Node graph, Triple triple)
     {
         checkOpen();
@@ -112,11 +133,31 @@ public class UpdateWriter implements Clo
         udw.send(graph, triple);
     }
     
+    public void insert(Node graph, Iterator<? extends Triple> it)
+    {
+        checkOpen();
+        prepareForDataUpdate(UpdateMode.INSERT);
+        while (it.hasNext())
+        {
+            udw.send(graph, it.next());
+        }
+    }
+    
     public void delete(Quad quad)
     {
         delete(quad.getGraph(), quad.asTriple());
     }
     
+    public void delete(Iterator<? extends Quad> it)
+    {
+        checkOpen();
+        prepareForDataUpdate(UpdateMode.DELETE);
+        while (it.hasNext())
+        {
+            udw.send(it.next());
+        }
+    }
+    
     public void delete(Node graph, Triple triple)
     {
         checkOpen();
@@ -124,6 +165,16 @@ public class UpdateWriter implements Clo
         udw.send(graph, triple);
     }
     
+    public void delete(Node graph, Iterator<? extends Triple> it)
+    {
+        checkOpen();
+        prepareForDataUpdate(UpdateMode.DELETE);
+        while (it.hasNext())
+        {
+            udw.send(graph, it.next());
+        }
+    }
+    
     public void update(Update update)
     {
         checkOpen();

Modified: 
incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/riot/RiotReader.java
URL: 
http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/riot/RiotReader.java?rev=1327765&r1=1327764&r2=1327765&view=diff
==============================================================================
--- 
incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/riot/RiotReader.java 
(original)
+++ 
incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/riot/RiotReader.java 
Thu Apr 19 01:24:21 2012
@@ -24,9 +24,11 @@ import static org.openjena.riot.Lang.RDF
 import static org.openjena.riot.Lang.RDFXML ;
 
 import java.io.InputStream ;
+import java.util.Iterator;
 
 import org.openjena.atlas.io.IO ;
 import org.openjena.atlas.io.PeekReader ;
+import org.openjena.atlas.iterator.IteratorResourceClosing;
 import org.openjena.atlas.json.io.parser.TokenizerJSON ;
 import org.openjena.atlas.lib.IRILib ;
 import org.openjena.atlas.lib.Sink ;
@@ -170,6 +172,23 @@ public class RiotReader
         return null ;
     }
     
+    // TODO create a Tokenizer version of this method
+    public static Iterator<Triple> createIteratorTriples(InputStream input, 
Lang lang, String baseIRI)
+    {
+        // Special case N-Triples, because the RIOT reader has a pull interface
+        if (lang == Lang.NTRIPLES)
+        {
+            return new 
IteratorResourceClosing<Triple>(createParserNTriples(input, null), input);
+        }
+        else
+        {
+            // Otherwise, we have to spin up a thread to deal with it
+            RiotTripleParsePuller parsePuller = new 
RiotTripleParsePuller(input, lang, null);
+            parsePuller.parse();
+            return parsePuller;
+        }
+    }
+    
     /** Create a parser for a quads (or triples) language */  
     public static LangRIOT createParserQuads(InputStream input, Lang lang, 
String baseIRI, Sink<Quad> sink)
     {
@@ -203,6 +222,23 @@ public class RiotReader
         return null ;
     }
     
+    // TODO create a Tokenizer version of this method
+    public static Iterator<Quad> createIteratorQuads(InputStream input, Lang 
lang, String baseIRI)
+    {
+        // Special case N-Quads, because the RIOT reader has a pull interface
+        if (lang == Lang.NTRIPLES)
+        {
+            return new IteratorResourceClosing<Quad>(createParserNQuads(input, 
null), input);
+        }
+        else
+        {
+            // Otherwise, we have to spin up a thread to deal with it
+            RiotQuadParsePuller parsePuller = new RiotQuadParsePuller(input, 
lang, null);
+            parsePuller.parse();
+            return parsePuller;
+        }
+    }
+    
     /** Create a parser for Turtle, with default behaviour */
     public static LangTurtle createParserTurtle(InputStream input, String 
baseIRI, Sink<Triple> sink)
     {


Reply via email to