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)
{