You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/03/09 13:32:03 UTC
svn commit: r1454694 [2/2] - in /jena/trunk: jena-arq/
jena-arq/src-examples/arq/examples/riot/
jena-arq/src-examples/arq/examples/update/ jena-arq/src/main/java/arq/
jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/binding/
jena-arq/src/main/java/...
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/NodeFormatterTTL.java Sat Mar 9 12:32:02 2013
@@ -18,71 +18,76 @@
package org.apache.jena.riot.out;
-import java.io.IOException ;
-import java.io.Writer ;
import java.net.MalformedURLException ;
-
-import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
-
-import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.io.AWriter ;
import org.apache.jena.atlas.lib.Pair ;
import org.apache.jena.iri.IRI ;
import org.apache.jena.iri.IRIFactory ;
import org.apache.jena.iri.IRIRelativize ;
-import org.apache.jena.riot.system.PrefixMap;
-import org.apache.jena.riot.system.PrefixMapFactory;
+import org.apache.jena.riot.out.NodeToLabel ;
+import org.apache.jena.riot.system.PrefixMap ;
+import org.apache.jena.riot.system.PrefixMapFactory ;
import org.apache.jena.riot.system.RiotChars ;
+import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
+import com.hp.hpl.jena.graph.Node ;
+
public class NodeFormatterTTL extends NodeFormatterNT
{
- private final NodeToLabel nodeToLabel = NodeToLabel.createBNodeByLabelEncoded() ;
+ private final NodeToLabel nodeToLabel ;
private final PrefixMap prefixMap ;
private final String baseIRI ;
- public NodeFormatterTTL(String baseIRI , PrefixMap prefixMap) //OutputPolicy outputPolicy)
+ // Replace with a single "OutputPolicy"
+ public NodeFormatterTTL(String baseIRI , PrefixMap prefixMap) //OutputPolicy outputPolicy)
+ {
+ this(baseIRI, prefixMap, NodeToLabel.createBNodeByLabelEncoded()) ;
+ }
+
+ public NodeFormatterTTL(String baseIRI , PrefixMap prefixMap, NodeToLabel nodeToLabel)
{
super(false) ;
+ this.nodeToLabel = nodeToLabel ;
if ( prefixMap == null )
- prefixMap = PrefixMapFactory.createForOutput() ;
+ prefixMap = PrefixMapFactory.create() ;
this.prefixMap = prefixMap ;
this.baseIRI = baseIRI ;
}
@Override
- public void formatURI(Writer w, String uriStr)
+ public void formatURI(AWriter w, String uriStr)
{
- try {
- Pair<String, String> pName = prefixMap.abbrev(uriStr) ;
- // Check if legal
- if ( pName != null )
+ Pair<String, String> pName = prefixMap.abbrev(uriStr) ;
+ // Check if legal
+ if ( pName != null )
+ {
+ // Check legal - need to check legal, not for illegal.
+ String pref = pName.getLeft() ;
+ String ln = pName.getRight() ;
+ if ( safeForPrefix(pref) && safeForPrefixLocalname(ln) )
{
- // Check legal - need to check legal, not for illegal.
- String pref = pName.getLeft() ;
- String ln = pName.getRight() ;
- if ( safeForPrefix(pref) && safeForPrefixLocalname(ln) )
- {
- w.write(pName.getLeft()) ;
- w.write(':') ;
- w.write(pName.getRight()) ;
- return ;
- }
+ w.print(pName.getLeft()) ;
+ w.print(':') ;
+ w.print(pName.getRight()) ;
+ return ;
}
-
- // Attemp base abbreviation.
- if ( baseIRI != null )
+ }
+
+ // Attempt base abbreviation.
+ if ( baseIRI != null )
+ {
+ String x = abbrevByBase(uriStr, baseIRI) ;
+ if ( x != null )
{
- String x = abbrevByBase(uriStr, baseIRI) ;
- if ( x != null )
- {
- w.write('<') ;
- w.write(x) ;
- w.write('>') ;
- return ;
- }
+ w.print('<') ;
+ w.print(x) ;
+ w.print('>') ;
+ return ;
}
- } catch (IOException ex) { IO.exception(ex) ; }
-
+ }
+
+ // else
super.formatURI(w, uriStr) ;
}
@@ -116,27 +121,23 @@ public class NodeFormatterTTL extends No
}
// @Override
-// public void formatVar(Writer w, String name)
+// public void formatVar(WriterI w, String name)
// @Override
-// public void formatBNode(Writer w, String label)
+// public void formatBNode(WriterI w, String label)
+
+ @Override
+ public void formatBNode(AWriter w, Node n)
+ {
+ String x = nodeToLabel.get(null, n) ;
+ w.print(x) ;
+ }
// @Override
-// public void formatLitString(Writer w, String lex)
+// public void formatLitString(WriterI w, String lex)
// @Override
-// public void formatLitLang(Writer w, String lex, String langTag)
-
- /* PN_CHARS_BASE includes escapes.
- *
- * PN_CHARS_BASE ::= [A-Z] | [a-z] | [#00C0-#00D6] | [#00D8-#00F6] | [#00F8-#02FF] | [#0370-#037D] | [#037F-#1FFF]
- * | [#200C-#200D] | [#2070-#218F] | [#2C00-#2FEF] | [#3001-#D7FF] | [#F900-#FDCF] | [#FDF0-#FFFD] | [#10000-#EFFFF]
- * | UCHAR
- * PN_CHARS_U ::= PN_CHARS_BASE | "_"
- * PN_CHARS ::= PN_CHARS_U | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040]
- * PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )?
- * PN_LOCAL ::= ( PN_CHARS_U | [0-9] ) ( ( PN_CHARS | "." )* PN_CHARS )?
- */
+// public void formatLitLang(WriterI w, String lex, String langTag)
/*private-testing*/ static boolean safeForPrefixLocalname(String str)
{
@@ -150,29 +151,6 @@ public class NodeFormatterTTL extends No
if ( idx == N ) return true ;
idx = skip1_PN_CHARS(str, idx) ;
return ( idx == N ) ;
-
-// int N = str.length();
-// if ( N == 0 )
-// return true ;
-// // Test first and last.
-// //char chFirst = str.charAt(0) ;
-// int startIdx = 0 ;
-//
-// char chLast = str.charAt(N-1) ;
-// if ( ! RiotChars.isA2ZN(chLast) &&
-// chLast != '_' )
-// return false ;
-// int lastIdx = N-2 ;
-//
-// for ( int i = startIdx ; i <= lastIdx ; i++ )
-// {
-// char ch = str.charAt(i) ;
-// if ( ! RiotChars.isA2ZN(ch) &&
-// ch != '_' &&
-// ch != '.' )
-// return false ;
-// }
-// return true ;
}
private static boolean is_PN_CHARS_BASE(int ch) { return RiotChars.isAlpha(ch) ; }
@@ -223,45 +201,44 @@ public class NodeFormatterTTL extends No
private static final String dtBoolean = XSDDatatype.XSDboolean.getURI() ;
@Override
- public void formatLitDT(Writer w, String lex, String datatypeURI)
+ public void formatLitDT(AWriter w, String lex, String datatypeURI)
{
- try {
- if ( dtDecimal.equals(datatypeURI) )
+ if ( dtDecimal.equals(datatypeURI) )
+ {
+ if ( validDecimal(lex) )
{
- if ( validDecimal(lex) )
- {
- w.write(lex) ;
- return ;
- }
+ w.print(lex) ;
+ return ;
}
- else if ( dtInteger.equals(datatypeURI) )
+ }
+ else if ( dtInteger.equals(datatypeURI) )
+ {
+ if ( validInteger(lex) )
{
- if ( validInteger(lex) )
- {
- w.write(lex) ;
- return ;
- }
+ w.print(lex) ;
+ return ;
}
- if ( dtDouble.equals(datatypeURI) )
+ }
+ if ( dtDouble.equals(datatypeURI) )
+ {
+ if ( validDouble(lex) )
{
- if ( validDouble(lex) )
- {
- w.write(lex) ;
- return ;
- }
+ w.print(lex) ;
+ return ;
}
- // Boolean
- if ( dtBoolean.equals(datatypeURI) )
+ }
+ // Boolean
+ if ( dtBoolean.equals(datatypeURI) )
+ {
+ // We leave "0" and "1" as-is assumign that if written like that, there was a reason.
+ if ( lex.equals("true") || lex.equals("false") )
{
- // We leave "0" and "1" as-is assumign that if written like that, there was a reason.
- if ( lex.equals("true") || lex.equals("false") )
- {
- w.write(lex) ;
- return ;
- }
+ w.print(lex) ;
+ return ;
}
- } catch (IOException ex) { IO.exception(ex) ; }
-
+ }
+
+ // else.
super.formatLitDT(w, lex, datatypeURI) ;
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/RDFJSONWriter.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/RDFJSONWriter.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/RDFJSONWriter.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/RDFJSONWriter.java Sat Mar 9 12:32:02 2013
@@ -20,67 +20,25 @@ package org.apache.jena.riot.out;
import java.io.OutputStream ;
import java.io.Writer ;
-import java.util.HashMap ;
-import java.util.HashSet ;
-import java.util.Map ;
-import java.util.Set ;
-import org.apache.jena.atlas.lib.Pair ;
-import org.apache.jena.atlas.lib.Sink ;
-import org.apache.jena.riot.system.Prologue ;
-import org.apache.jena.riot.system.SyntaxLabels ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.graph.GraphUtil ;
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.graph.Triple ;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
public class RDFJSONWriter {
- public RDFJSONWriter() {}
+ //public RDFJSONWriter() {}
+ /** @deprecated
+ * Use {@link RDFDataMgr#write(OutputStream, Graph, Lang)}
+ * with {@code Lang.RDFJSON}
+ */
+ @Deprecated
public static void write (OutputStream out, Graph graph) {
- Prologue prologue = Prologue.create(null, null) ; // (null, graph.getPrefixMapping()) ;
- Sink<Pair<Node, Map<Node, Set<Node>>>> sink = new SinkEntityOutput(out, prologue, SyntaxLabels.createNodeToLabel()) ;
- write ( sink, graph ) ;
+ RDFDataMgr.write(out, graph, Lang.RDFJSON) ;
}
public static void write (Writer out, Graph graph) {
- Prologue prologue = Prologue.create(null, null) ; // (null, graph.getPrefixMapping()) ;
- Sink<Pair<Node, Map<Node, Set<Node>>>> sink = new SinkEntityOutput(out, prologue, SyntaxLabels.createNodeToLabel()) ;
- write ( sink, graph ) ;
}
-
- private static void write (Sink<Pair<Node, Map<Node, Set<Node>>>> sink, Graph graph) {
- ExtendedIterator<Node> subjects = GraphUtil.listSubjects(graph, Node.ANY, Node.ANY) ;
- try {
- Map<Node, Set<Node>> predicates = new HashMap<Node, Set<Node>>() ;
- while ( subjects.hasNext() ) {
- Node subject = subjects.next() ;
- ExtendedIterator<Triple> triples = graph.find(subject, Node.ANY, Node.ANY) ;
- try {
- while ( triples.hasNext() ) {
- Triple triple = triples.next() ;
- Node p = triple.getPredicate() ;
- if ( predicates.containsKey(p) ) {
- predicates.get(p).add(triple.getObject()) ;
- } else {
- Set<Node> objects = new HashSet<Node>() ;
- objects.add(triple.getObject()) ;
- predicates.put(p, objects) ;
- }
- }
- } finally {
- if ( triples != null ) triples.close() ;
- }
- sink.send(new Pair<Node, Map<Node, Set<Node>>>(subject, predicates)) ;
- predicates.clear() ;
- }
- } finally {
- if ( subjects != null ) subjects.close() ;
- sink.close() ;
- }
- }
-
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadOutput.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadOutput.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadOutput.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkQuadOutput.java Sat Mar 9 12:32:02 2013
@@ -18,26 +18,32 @@
package org.apache.jena.riot.out;
-import java.io.IOException ;
import java.io.OutputStream ;
-import java.io.Writer ;
import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.io.AWriter ;
import org.apache.jena.atlas.lib.Sink ;
+import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.system.Prologue ;
import org.apache.jena.riot.system.SyntaxLabels ;
+import org.apache.jena.riot.writer.WriterStreamRDFTuples ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.sparql.core.Quad ;
-/** A class that print quads, N-Quads style */
+/** A class that print quads, N-Quads style *
+ * @see WriterStreamRDFTuples
+ * @see RDFDataMgr#writeTriples
+ */
public class SinkQuadOutput implements Sink<Quad>
{
private Prologue prologue = null ;
- private Writer out ;
+ private AWriter out ;
private NodeToLabel labelPolicy = null ;
private NodeFormatter nodeFmt = new NodeFormatterNT() ;
+ /** @deprecated Use {@linkplain RDFDataMgr#writeTriples} */
+ @Deprecated
public SinkQuadOutput(OutputStream outs)
{
this(outs, null, SyntaxLabels.createNodeToLabel()) ;
@@ -45,7 +51,7 @@ public class SinkQuadOutput implements S
public SinkQuadOutput(OutputStream outs, Prologue prologue, NodeToLabel labels)
{
- out = IO.asBufferedUTF8(outs) ;
+ out = IO.wrapUTF8(outs) ;
setPrologue(prologue) ;
setLabelPolicy(labels) ;
}
@@ -64,26 +70,24 @@ public class SinkQuadOutput implements S
@Override
public void send(Quad quad)
{
- try {
- Node s = quad.getSubject() ;
- Node p = quad.getPredicate() ;
- Node o = quad.getObject() ;
- Node g = quad.getGraph() ;
-
- nodeFmt.format(out, s) ;
- out.write(" ") ;
- nodeFmt.format(out, p) ;
- out.write(" ") ;
- nodeFmt.format(out, o) ;
-
- if ( outputGraphSlot(g) )
- {
- out.write(" ") ;
- nodeFmt.format(out, g) ;
- }
+ Node s = quad.getSubject() ;
+ Node p = quad.getPredicate() ;
+ Node o = quad.getObject() ;
+ Node g = quad.getGraph() ;
+
+ nodeFmt.format(out, s) ;
+ out.print(" ") ;
+ nodeFmt.format(out, p) ;
+ out.print(" ") ;
+ nodeFmt.format(out, o) ;
+
+ if ( outputGraphSlot(g) )
+ {
+ out.print(" ") ;
+ nodeFmt.format(out, g) ;
+ }
- out.write(" .\n") ;
- } catch (IOException ex) { IO.exception(ex) ; }
+ out.print(" .\n") ;
}
private static boolean outputGraphSlot(Node g)
@@ -94,7 +98,7 @@ public class SinkQuadOutput implements S
@Override
public void flush()
{
- try { out.flush() ; } catch (IOException ex) { IO.exception(ex) ; }
+ IO.flush(out) ;
}
@Override
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkTripleOutput.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkTripleOutput.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkTripleOutput.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/out/SinkTripleOutput.java Sat Mar 9 12:32:02 2013
@@ -18,29 +18,36 @@
package org.apache.jena.riot.out;
-import java.io.IOException ;
import java.io.OutputStream ;
-import java.io.Writer ;
-import java.nio.charset.CharsetEncoder ;
import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.io.AWriter ;
import org.apache.jena.atlas.lib.Sink ;
+import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.system.Prologue ;
import org.apache.jena.riot.system.SyntaxLabels ;
+import org.apache.jena.riot.writer.WriterStreamRDFTuples ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
-/** A class that print triples, N-triples style */
+/** A class that print triples, N-triples style
+ *
+ * @see WriterStreamRDFTuples
+ * @see RDFDataMgr#writeTriples
+ */
public class SinkTripleOutput implements Sink<Triple>
{
- private CharsetEncoder encoder ;
+ // WriterStreamRDFTuples
+
private Prologue prologue = null ;
- private Writer out ;
+ private final AWriter out ;
private NodeToLabel labelPolicy = null ;
private NodeFormatter nodeFmt = new NodeFormatterNT() ;
+ /** @deprecated Use {@linkplain RDFDataMgr#writeTriples} */
+ @Deprecated
public SinkTripleOutput(OutputStream outs)
{
this(outs, null, SyntaxLabels.createNodeToLabel()) ;
@@ -48,7 +55,7 @@ public class SinkTripleOutput implements
public SinkTripleOutput(OutputStream outs, Prologue prologue, NodeToLabel labels)
{
- out = IO.asBufferedUTF8(outs) ;
+ out = IO.wrapUTF8(outs) ;
setPrologue(prologue) ;
setLabelPolicy(labels) ;
}
@@ -67,18 +74,16 @@ public class SinkTripleOutput implements
@Override
public void send(Triple triple)
{
- try {
Node s = triple.getSubject() ;
Node p = triple.getPredicate() ;
Node o = triple.getObject() ;
nodeFmt.format(out, s) ;
- out.write(" ") ;
+ out.print(" ") ;
nodeFmt.format(out, p) ;
- out.write(" ") ;
+ out.print(" ") ;
nodeFmt.format(out, o) ;
- out.write(" .\n") ;
- } catch (IOException ex) { IO.exception(ex) ; }
+ out.print(" .\n") ;
}
@Override
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InfFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InfFactory.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InfFactory.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InfFactory.java Sat Mar 9 12:32:02 2013
@@ -18,33 +18,20 @@
package org.apache.jena.riot.process.inf;
-import org.apache.jena.atlas.lib.Sink ;
+import org.apache.jena.riot.system.StreamRDF ;
-import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.rdf.model.Model ;
-import com.hp.hpl.jena.sparql.core.Quad ;
public class InfFactory
{
- public static Sink<Triple> infTriples(Sink<Triple> sink, Model vocab)
+ public static StreamRDF inf(StreamRDF data, Model vocab)
{
InferenceSetupRDFS setup = new InferenceSetupRDFS(vocab) ;
- return new InferenceProcessorTriples(sink, setup) ;
+ return new InferenceProcessorStreamRDF(data, setup) ;
}
- public static Sink<Quad> infQuads(Sink<Quad> sink, Model vocab)
+ public static StreamRDF inf(StreamRDF data, InferenceSetupRDFS setup)
{
- InferenceSetupRDFS setup = new InferenceSetupRDFS(vocab) ;
- return new InferenceProcessorQuads(sink, setup) ;
- }
-
- public static Sink<Triple> infTriples(Sink<Triple> sink, InferenceSetupRDFS setup)
- {
- return new InferenceProcessorTriples(sink, setup) ;
- }
-
- public static Sink<Quad> infQuads(Sink<Quad> sink, InferenceSetupRDFS setup)
- {
- return new InferenceProcessorQuads(sink, setup) ;
+ return new InferenceProcessorStreamRDF(data, setup) ;
}
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InferenceProcessorRDFS.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InferenceProcessorRDFS.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InferenceProcessorRDFS.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/process/inf/InferenceProcessorRDFS.java Sat Mar 9 12:32:02 2013
@@ -37,7 +37,6 @@ import com.hp.hpl.jena.vocabulary.RDF ;
* Usage: call process(Node, Node, Node), outputs to derive(Node, Node, Node).
*/
-
abstract class InferenceProcessorRDFS
{
// Calculates hierarchies (subclass, subproperty) from a model.
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/stream/StreamManager.java Sat Mar 9 12:32:02 2013
@@ -45,6 +45,8 @@ public class StreamManager
private static StreamManager globalStreamManager ;
+ public StreamManager() {}
+
/** Return a default configuration StreamManager
* with a {@link LocatorFile},
* {@link LocatorURL},
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/RiotLib.java Sat Mar 9 12:32:02 2013
@@ -22,23 +22,44 @@ import static org.apache.jena.riot.RDFLa
import static org.apache.jena.riot.RDFLanguages.NTRIPLES ;
import static org.apache.jena.riot.RDFLanguages.RDFJSON ;
import static org.apache.jena.riot.RDFLanguages.sameLang ;
+import static org.apache.jena.riot.writer.WriterConst.PREFIX_IRI ;
+import static org.apache.jena.riot.writer.WriterConst.RDF_type ;
+import static org.apache.jena.riot.writer.WriterConst.rdfNS ;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+import java.util.ArrayList ;
+import java.util.Collection ;
+import java.util.List ;
+import java.util.Map ;
+
+import org.apache.jena.atlas.io.IndentedWriter ;
+import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
+import org.apache.jena.riot.WriterDatasetRIOT ;
import org.apache.jena.riot.tokens.Token ;
import org.apache.jena.riot.tokens.Tokenizer ;
import org.apache.jena.riot.tokens.TokenizerFactory ;
+import org.apache.jena.riot.writer.WriterGraphRIOTBase ;
+import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.query.ARQ ;
import com.hp.hpl.jena.rdf.model.AnonId ;
import com.hp.hpl.jena.sparql.ARQConstants ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
+import com.hp.hpl.jena.sparql.util.Context ;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
/** Misc RIOT code */
public class RiotLib
{
- final static String bNodeLabelStart = "_:" ;
- final static boolean skolomizedBNodes = ARQ.isTrue(ARQ.constantBNodeLabels) ;
+ private final static String bNodeLabelStart = "_:" ;
+ private final static boolean skolomizedBNodes = ARQ.isTrue(ARQ.constantBNodeLabels) ;
/** Implement <_:....> as a 2bNode IRI"
* that is, use the given label as the BNode internal label.
@@ -62,7 +83,7 @@ public class RiotLib
return skolomizedBNodes && iri.startsWith(bNodeLabelStart) ;
}
- static ParserProfile profile = profile(RDFLanguages.TURTLE, null, null) ;
+ private static ParserProfile profile = profile(RDFLanguages.TURTLE, null, null) ;
static {
PrefixMap pmap = profile.getPrologue().getPrefixMap() ;
pmap.add("rdf", ARQConstants.rdfPrefix) ;
@@ -115,4 +136,173 @@ public class RiotLib
else
return new ParserProfileBase(prologue, handler) ;
}
+
+ public static Collection<Triple> triplesOfSubject(Graph graph, Node subj)
+ {
+ return triples(graph, subj, Node.ANY, Node.ANY) ;
+ }
+
+ /* Get all the triples for the graph.find */
+ public static List<Triple> triples(Graph graph, Node s, Node p, Node o)
+ {
+ List<Triple> acc = new ArrayList<Triple>() ;
+ accTriples(acc, graph, s, p, o) ;
+ return acc ;
+ }
+
+ /* Get all the triples for the graph.find */
+ public static long countTriples(Graph graph, Node s, Node p, Node o)
+ {
+ ExtendedIterator<Triple> iter = graph.find(s, p, o) ;
+ try { return Iter.count(iter) ; }
+ finally { iter.close() ; }
+ }
+
+ public static void accTriples(Collection<Triple> acc, Graph graph, Node s, Node p, Node o)
+ {
+ ExtendedIterator<Triple> iter = graph.find(s, p, o) ;
+ for ( ; iter.hasNext() ; )
+ acc.add(iter.next()) ;
+ iter.close() ;
+ }
+
+ /* Get a triple or null. */
+ public static Triple triple1(Graph graph, Node s, Node p, Node o)
+ {
+ ExtendedIterator<Triple> iter = graph.find(s, p, o) ;
+ try {
+ if ( ! iter.hasNext() )
+ return null ;
+ Triple t = iter.next() ;
+ if ( iter.hasNext() )
+ return null ;
+ return t ;
+ } finally { iter.close() ; }
+ }
+
+ public static boolean strSafeFor(String str, char ch) { return str.indexOf(ch) == -1 ; }
+
+ public static void writeBase(IndentedWriter out, String base)
+ {
+ if ( base != null )
+ {
+ out.print("@base ") ;
+ out.pad(PREFIX_IRI) ;
+ out.print("<") ;
+ out.print(base) ;
+ out.print(">") ;
+ out.print(" .") ;
+ out.println() ;
+ }
+ }
+
+ public static void writePrefixes(IndentedWriter out, PrefixMap prefixMap)
+ {
+ if ( prefixMap != null && ! prefixMap.isEmpty() )
+ {
+ for ( Map.Entry <String, String> e : prefixMap.getMappingCopyStr().entrySet() )
+ {
+ out.print("@prefix ") ;
+ out.print(e.getKey()) ;
+ out.print(": ") ;
+ out.pad(PREFIX_IRI) ;
+ out.print("<") ;
+ out.print(e.getValue()) ;
+ out.print(">") ;
+ out.print(" .") ;
+ out.println() ;
+ }
+ }
+ }
+
+ /** Returns dataset that wraps a graph */
+ public static DatasetGraph dataset(Graph graph)
+ {
+ return DatasetGraphFactory.createOneGraph(graph) ;
+ }
+
+ public static PrefixMap prefixMap(DatasetGraph dsg)
+ {
+ return PrefixMapFactory.create(dsg.getDefaultGraph().getPrefixMapping()) ;
+ }
+
+ private static int calcWidth(PrefixMap prefixMap, String baseURI, Node p)
+ {
+ if ( ! prefixMap.contains(rdfNS) && RDF_type.equals(p) )
+ return 1 ;
+
+ String x = prefixMap.abbreviate(p.getURI()) ;
+ if ( x == null )
+ return p.getURI().length()+2 ;
+ return x.length() ;
+ }
+
+ public static int calcWidth(PrefixMap prefixMap, String baseURI, Collection<Node> nodes, int minWidth, int maxWidth)
+ {
+ Node prev = null ;
+ int nodeMaxWidth = minWidth ;
+
+ for ( Node n : nodes )
+ {
+ if ( prev != null && prev.equals(n) )
+ continue ;
+ int len = calcWidth(prefixMap, baseURI, n) ;
+ if ( len > maxWidth )
+ continue ;
+ if ( nodeMaxWidth < len )
+ nodeMaxWidth = len ;
+ prev = n ;
+ }
+ return nodeMaxWidth ;
+ }
+
+ public static int calcWidthTriples(PrefixMap prefixMap, String baseURI, Collection<Triple> triples, int minWidth, int maxWidth)
+ {
+ Node prev = null ;
+ int nodeMaxWidth = minWidth ;
+
+ for ( Triple triple : triples )
+ {
+ Node n = triple.getPredicate() ;
+ if ( prev != null && prev.equals(n) )
+ continue ;
+ int len = calcWidth(prefixMap, baseURI, n) ;
+ if ( len > maxWidth )
+ continue ;
+ if ( nodeMaxWidth < len )
+ nodeMaxWidth = len ;
+ prev = n ;
+ }
+ return nodeMaxWidth ;
+ }
+
+ public static IndentedWriter create(Writer writer) { return new IndentedWriterWriter(writer) ; }
+
+ public static PrefixMap prefixMap(Graph graph) { return PrefixMapFactory.create(graph.getPrefixMapping()) ; }
+
+ public static WriterGraphRIOTBase adapter(WriterDatasetRIOT writer)
+ { return new WriterAdapter(writer) ; }
+
+ private static class IndentedWriterWriter extends IndentedWriter
+ {
+ IndentedWriterWriter(Writer w) { super(w) ; }
+ }
+
+ private static class WriterAdapter extends WriterGraphRIOTBase
+ {
+ private WriterDatasetRIOT writer ;
+
+ WriterAdapter(WriterDatasetRIOT writer) { this.writer = writer ; }
+ @Override
+ public Lang getLang()
+ { return writer.getLang() ; }
+
+ @Override
+ public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
+ { writer.write(out, RiotLib.dataset(graph), prefixMap, baseURI, context) ; }
+
+ @Override
+ public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
+ { writer.write(out, RiotLib.dataset(graph), prefixMap, baseURI, context) ; }
+ }
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java Sat Mar 9 12:32:02 2013
@@ -18,15 +18,21 @@
package org.apache.jena.riot.system;
+import java.io.OutputStream ;
+import java.io.Writer ;
import java.util.Iterator ;
+import org.apache.jena.atlas.io.AWriter ;
+import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.lib.Sink ;
import org.apache.jena.atlas.lib.Tuple ;
-import org.apache.jena.riot.lang.RDFParserOutputCounting ;
+import org.apache.jena.riot.lang.StreamRDFCounting ;
+import org.apache.jena.riot.writer.WriterStreamRDFTuples ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.shared.PrefixMapping ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.core.Quad ;
@@ -36,11 +42,15 @@ public class StreamRDFLib
/** Send everything to nowhere ... efficiently */
public static StreamRDF sinkNull() { return new StreamRDFBase() ; }
+ public static StreamRDF writer(OutputStream out) { return new WriterStreamRDFTuples(IO.wrapUTF8(out)) ; }
+ public static StreamRDF writer(AWriter out) { return new WriterStreamRDFTuples(out) ; }
+ public static StreamRDF writer(Writer out) { return new WriterStreamRDFTuples(IO.wrap(out)) ; }
+
public static StreamRDF graph(Graph graph) { return new ParserOutputGraph(graph) ; }
public static StreamRDF dataset(DatasetGraph dataset) { return new ParserOutputDataset(dataset) ; }
- /** Set triples to a StreamRDF - does not all .start/.finish */
+ /** Set triples to a StreamRDF - does not call .start/.finish */
public static void triplesToStream(StreamRDF dest, Iterator<Triple> iter)
{
for ( ; iter.hasNext() ; )
@@ -50,7 +60,7 @@ public class StreamRDFLib
}
}
- /** Set quads to a StreamRDF - does not all .start/.finish */
+ /** Set quads to a StreamRDF - does not call .start/.finish */
public static void quadsToStream(StreamRDF dest, Iterator<Quad> iter)
{
for ( ; iter.hasNext() ; )
@@ -59,7 +69,6 @@ public class StreamRDFLib
dest.quad(q) ;
}
}
-
/**
* Output to a sink; prefix and base handled only within the parser.
@@ -83,11 +92,11 @@ public class StreamRDFLib
public static StreamRDF extendTriplesToQuads(Node graphNode, StreamRDF base)
{ return new ParserOutputSinkTriplesToQuads(graphNode, base) ; }
- public static RDFParserOutputCounting count()
- { return new ParserOutputCountingBase(sinkNull()) ; }
+ public static StreamRDFCounting count()
+ { return new StreamRDFCountingBase(sinkNull()) ; }
- public static RDFParserOutputCounting count(StreamRDF other)
- { return new ParserOutputCountingBase(other) ; }
+ public static StreamRDFCounting count(StreamRDF other)
+ { return new StreamRDFCountingBase(other) ; }
private static class ParserOutputSinkTriplesToQuads extends StreamRDFWrapper
{
@@ -167,7 +176,14 @@ public class StreamRDFLib
private static class ParserOutputDataset extends StreamRDFBase
{
protected final DatasetGraph dsg ;
- public ParserOutputDataset(DatasetGraph dsg) { this.dsg = dsg ; }
+ protected final PrefixMapping prefixMapping ;
+
+ public ParserOutputDataset(DatasetGraph dsg)
+ {
+ this.dsg = dsg ;
+ this.prefixMapping = dsg.getDefaultGraph().getPrefixMapping() ;
+ // = dsg.getPrefixMapping().setNsPrefix(prefix, uri) ;
+ }
@Override public void triple(Triple triple)
{
@@ -188,11 +204,11 @@ public class StreamRDFLib
@Override public void prefix(String prefix, String uri)
{
- //dsg.getPrefixMapping().setNsPrefix(prefix, uri) ;
+ prefixMapping.setNsPrefix(prefix, uri) ;
}
}
- private static class ParserOutputCountingBase extends StreamRDFWrapper implements StreamRDF, RDFParserOutputCounting
+ private static class StreamRDFCountingBase extends StreamRDFWrapper implements StreamRDF, StreamRDFCounting
{
private long countTriples = 0 ;
private long countQuads = 0 ;
@@ -200,7 +216,7 @@ public class StreamRDFLib
private long countBase = 0 ;
private long countPrefixes = 0 ;
- public ParserOutputCountingBase (StreamRDF other) { super(other) ; }
+ public StreamRDFCountingBase (StreamRDF other) { super(other) ; }
@Override
public void triple(Triple triple)
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java Sat Mar 9 12:32:02 2013
@@ -27,16 +27,12 @@ import java.util.Map ;
import java.util.Properties ;
import org.apache.jena.atlas.io.IO ;
-import org.apache.jena.atlas.lib.Sink ;
-import org.apache.jena.atlas.lib.SinkCounting ;
-import org.apache.jena.atlas.lib.SinkNull ;
import org.apache.jena.atlas.lib.StrUtils ;
import org.apache.jena.riot.* ;
import org.apache.jena.riot.lang.LabelToNode ;
import org.apache.jena.riot.lang.LangRIOT ;
+import org.apache.jena.riot.lang.StreamRDFCounting ;
import org.apache.jena.riot.out.NodeToLabel ;
-import org.apache.jena.riot.out.SinkQuadOutput ;
-import org.apache.jena.riot.out.SinkTripleOutput ;
import org.apache.jena.riot.process.inf.InfFactory ;
import org.apache.jena.riot.process.inf.InferenceSetupRDFS ;
import org.apache.jena.riot.system.* ;
@@ -47,9 +43,7 @@ import arq.cmd.CmdException ;
import arq.cmdline.* ;
import com.hp.hpl.jena.Jena ;
-import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.query.ARQ ;
-import com.hp.hpl.jena.sparql.core.Quad ;
/** Common framework for running RIOT parsers */
public abstract class CmdLangParse extends CmdGeneral
@@ -271,44 +265,20 @@ public abstract class CmdLangParse exten
// Also, as URI.
final boolean labelsAsGiven = false ;
- SinkCounting<?> sink ;
- LangRIOT parser ;
-
NodeToLabel labels = SyntaxLabels.createNodeToLabel() ;
if ( labelsAsGiven )
labels = NodeToLabel.createBNodeByLabelEncoded() ;
- // Uglyness because quads and triples aren't subtype of some Tuple<Node>
- // Replace with StreamRDF all the way through.
-
- if ( RDFLanguages.isTriples(lang) )
- {
- Sink<Triple> s = SinkNull.create() ;
- if ( ! modLangParse.toBitBucket() )
- s = new SinkTripleOutput(output, null, labels) ;
- if ( setup != null )
- s = InfFactory.infTriples(s, setup) ;
-
- SinkCounting<Triple> sink2 = new SinkCounting<Triple>(s) ;
- StreamRDF dest = StreamRDFLib.sinkTriples(sink2) ;
- parser = RiotReader.createParser(in, lang, baseURI, dest) ;
-
- sink = sink2 ;
- }
- else
- {
- Sink <Quad> s = SinkNull.create() ;
- if ( ! modLangParse.toBitBucket() )
- s = new SinkQuadOutput(output, null, labels) ;
- if ( setup != null )
- s = InfFactory.infQuads(s, setup) ;
-
- SinkCounting<Quad> sink2 = new SinkCounting<Quad>(s) ;
- StreamRDF dest = StreamRDFLib.sinkQuads(sink2) ;
- parser = RiotReader.createParser(in, lang, baseURI, dest) ;
- sink = sink2 ;
- }
+ StreamRDF s = StreamRDFLib.sinkNull() ;
+ if ( ! modLangParse.toBitBucket() )
+ s = StreamRDFLib.writer(output) ;
+ if ( setup != null )
+ s = InfFactory.inf(s, setup) ;
+ StreamRDFCounting sink = StreamRDFLib.count(s) ;
+ s = null ;
+ // Need low level control over the parser.
+ LangRIOT parser = RiotReader.createParser(in, lang, baseURI, sink) ;
try
{
if ( checking )
@@ -323,7 +293,6 @@ public abstract class CmdLangParse exten
if ( labelsAsGiven )
parser.getProfile().setLabelToNode(LabelToNode.createUseLabelAsGiven()) ;
-
modTime.startTimer() ;
parser.parse() ;
}
@@ -336,12 +305,12 @@ public abstract class CmdLangParse exten
return ;
}
finally {
- IO.close(in) ;
// Not close - we may write again to the underlying output stream in another call to parse a file.
- sink.flush() ;
+ sink.finish() ;
+ IO.close(in) ;
}
long x = modTime.endTimer() ;
- long n = sink.getCount() ;
+ long n = sink.countTriples()+sink.countQuads() ;
if ( modTime.timingEnabled() )
output(filename, n, x, handler) ;
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/infer.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/infer.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/infer.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/infer.java Sat Mar 9 12:32:02 2013
@@ -18,17 +18,12 @@
package riotcmd;
-import java.io.InputStream ;
import java.util.List ;
import org.apache.jena.atlas.io.IO ;
-import org.apache.jena.atlas.lib.IRILib ;
-import org.apache.jena.atlas.lib.Sink ;
import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.RDFLanguages ;
-import org.apache.jena.riot.RiotReader ;
-import org.apache.jena.riot.lang.LangRIOT ;
-import org.apache.jena.riot.out.SinkQuadOutput ;
import org.apache.jena.riot.process.inf.InfFactory ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
@@ -37,7 +32,6 @@ import arq.cmdline.ArgDecl ;
import arq.cmdline.CmdGeneral ;
import com.hp.hpl.jena.rdf.model.Model ;
-import com.hp.hpl.jena.sparql.core.Quad ;
import com.hp.hpl.jena.util.FileManager ;
/*
@@ -130,8 +124,8 @@ public class infer extends CmdGeneral
@Override
protected void exec()
{
- Sink<Quad> sink = new SinkQuadOutput(System.out) ;
- sink = InfFactory.infQuads(sink, vocab) ;
+ StreamRDF sink = StreamRDFLib.writer(System.out) ;
+ sink = InfFactory.inf(sink, vocab) ;
List<String> files = getPositionalOrStdin() ;
if ( files.isEmpty() )
@@ -142,26 +136,14 @@ public class infer extends CmdGeneral
IO.flush(System.out);
}
- private void processFile(String filename, Sink<Quad> qsink)
+ private void processFile(String filename, StreamRDF sink)
{
Lang lang = filename.equals("-") ? RDFLanguages.NQUADS : RDFLanguages.filenameToLang(filename, RDFLanguages.NQUADS) ;
- String baseURI = IRILib.filenameToIRI(filename) ;
- StreamRDF sink = StreamRDFLib.sinkQuads(qsink) ;
-
- if ( RDFLanguages.isTriples(lang) )
- {
- InputStream in = IO.openFile(filename) ;
- sink = StreamRDFLib.extendTriplesToQuads(sink) ;
- LangRIOT parser = RiotReader.createParser(in, lang, baseURI, sink) ;
- parser.parse() ;
- return ;
- }
+
+ if ( filename.equals("-") )
+ RDFDataMgr.parse(sink, System.in, null, RDFLanguages.NQUADS, null) ;
else
- {
- InputStream in = IO.openFile(filename) ;
- LangRIOT parser = RiotReader.createParser(in, lang, baseURI, sink) ;
- parser.parse() ;
- }
+ RDFDataMgr.parse(sink, filename) ;
}
@Override
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java Sat Mar 9 12:32:02 2013
@@ -25,23 +25,21 @@ import org.apache.jena.riot.process.TS_P
import org.apache.jena.riot.stream.TS_IO2 ;
import org.apache.jena.riot.system.TS_RiotSystem ;
import org.apache.jena.riot.web.TS_RiotWeb ;
+import org.apache.jena.riot.writer.TS_RiotWriter ;
import org.junit.BeforeClass ;
import org.junit.runner.RunWith ;
import org.junit.runners.Suite ;
@RunWith(Suite.class)
@Suite.SuiteClasses( {
- // Old world - org.openjena.riot
TS_Out.class
-
- // New world - org.apache.jena.riot
, TS_Lang.class
, TS_LangSuite.class
, TS_ReaderRIOT.class
, TS_IO2.class
, TS_RIOTAdapters.class
, TS_Process.class
- //, TS_RiotMisc.class
+ , TS_RiotWriter.class
, TS_RiotSystem.class
, TS_RiotWeb.class
})
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java Sat Mar 9 12:32:02 2013
@@ -29,7 +29,6 @@ import org.junit.runners.Suite ;
TestIRI.class
, TestLang.class
, TestNodeAllocator.class
-
, TestTurtleTerms.class
, TestLangNTriples.class
, TestLangNQuads.class
@@ -37,7 +36,6 @@ import org.junit.runners.Suite ;
, TestLangTrig.class
, TestLangRdfJson.class
, TestParserFactory.class
-
, TestPipedRDFIterators.class
})
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNQuads.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNQuads.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNQuads.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNQuads.java Sat Mar 9 12:32:02 2013
@@ -21,7 +21,7 @@ package org.apache.jena.riot.lang;
import org.apache.jena.riot.RiotReader ;
import org.apache.jena.riot.ErrorHandlerTestLib.ExFatal ;
import org.apache.jena.riot.lang.LangRIOT ;
-import org.apache.jena.riot.lang.RDFParserOutputCounting ;
+import org.apache.jena.riot.lang.StreamRDFCounting ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
import org.apache.jena.riot.tokens.Tokenizer ;
@@ -75,7 +75,7 @@ public class TestLangNQuads extends Test
@Override
protected long parseCount(String... strings)
{
- RDFParserOutputCounting sink = StreamRDFLib.count() ;
+ StreamRDFCounting sink = StreamRDFLib.count() ;
parse(sink, strings) ;
return sink.count() ;
}
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTriples.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTriples.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTriples.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTriples.java Sat Mar 9 12:32:02 2013
@@ -95,7 +95,7 @@ public class TestLangNTriples extends Te
{
String string = StrUtils.strjoin("\n", strings) ;
Tokenizer tokenizer = tokenizer(string) ;
- RDFParserOutputCounting sink = StreamRDFLib.count() ;
+ StreamRDFCounting sink = StreamRDFLib.count() ;
LangNTriples x = RiotReader.createParserNTriples(tokenizer, sink) ;
x.getProfile().setHandler(new ErrorHandlerEx()) ;
x.parse() ;
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTuples.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTuples.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTuples.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangNTuples.java Sat Mar 9 12:32:02 2013
@@ -29,7 +29,7 @@ import org.apache.jena.riot.ErrorHandler
import org.apache.jena.riot.ErrorHandlerTestLib.ExFatal ;
import org.apache.jena.riot.ErrorHandlerTestLib.ExWarning ;
import org.apache.jena.riot.lang.LangRIOT ;
-import org.apache.jena.riot.lang.RDFParserOutputCounting ;
+import org.apache.jena.riot.lang.StreamRDFCounting ;
import org.apache.jena.riot.system.RiotLib ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
@@ -182,7 +182,7 @@ abstract public class TestLangNTuples ex
{
String string = StrUtils.strjoin("\n", strings) ;
Tokenizer tokenizer = tokenizer(string) ;
- RDFParserOutputCounting sink = StreamRDFLib.count() ;
+ StreamRDFCounting sink = StreamRDFLib.count() ;
LangRIOT x = RiotReader.createParserNQuads(tokenizer, sink) ;
x.setProfile(RiotLib.profile(null, false, true, new ErrorHandlerEx())) ;
x.parse() ;
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java Sat Mar 9 12:32:02 2013
@@ -25,15 +25,12 @@ import org.apache.jena.atlas.io.PeekRead
import org.apache.jena.atlas.json.io.parser.TokenizerJSON ;
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.atlas.lib.StrUtils ;
-import org.apache.jena.riot.* ;
import org.apache.jena.riot.ErrorHandlerTestLib.ErrorHandlerEx ;
import org.apache.jena.riot.ErrorHandlerTestLib.ExFatal ;
-import org.apache.jena.riot.lang.LangRDFJSON ;
-import org.apache.jena.riot.lang.RDFParserOutputCounting ;
+import org.apache.jena.riot.* ;
import org.apache.jena.riot.system.StreamRDFLib ;
import org.apache.jena.riot.tokens.Tokenizer ;
import org.apache.jena.riot.tokens.TokenizerFactory ;
-import org.junit.AfterClass ;
import org.junit.BeforeClass ;
import org.junit.Test ;
@@ -45,14 +42,12 @@ public class TestLangRdfJson extends Bas
@BeforeClass
public static void setup()
{
- IO_Jena.wireIntoJena();
+ RIOT.init();
}
- @AfterClass
- public static void teardown()
- {
- IO_Jena.resetJenaReaders();
- }
+// @AfterClass
+// public static void teardown()
+// { }
@Test
public void rdfjson_get_jena_reader()
@@ -501,14 +496,14 @@ public class TestLangRdfJson extends Bas
byte b[] = StrUtils.asUTF8bytes("") ;
ByteArrayInputStream in = new ByteArrayInputStream(b);
Tokenizer tokenizer = TokenizerFactory.makeTokenizerUTF8(in) ;
- RDFParserOutputCounting sink = StreamRDFLib.count() ;
+ StreamRDFCounting sink = StreamRDFLib.count() ;
LangRDFJSON parser = RiotReader.createParserRdfJson(tokenizer, sink) ;
}
private long parseCount(String string)
{
Tokenizer tokenizer = tokenizer(string) ;
- RDFParserOutputCounting sink = StreamRDFLib.count() ;
+ StreamRDFCounting sink = StreamRDFLib.count() ;
LangRDFJSON x = RiotReader.createParserRdfJson(tokenizer, sink) ;
x.getProfile().setHandler(new ErrorHandlerEx()) ;
x.parse() ;
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TS_Out.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TS_Out.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TS_Out.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TS_Out.java Sat Mar 9 12:32:02 2013
@@ -27,8 +27,6 @@ import org.junit.runners.Suite ;
TestNodeFmt.class
, TestNodeFmtLib.class
, TestOutput.class
- , TestOutputNTriples.class
- , TestOutputRDFJSON.class
})
public class TS_Out
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TestNodeFmt.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TestNodeFmt.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TestNodeFmt.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/out/TestNodeFmt.java Sat Mar 9 12:32:02 2013
@@ -18,8 +18,7 @@
package org.apache.jena.riot.out;
-import java.io.StringWriter ;
-
+import org.apache.jena.atlas.io.StringWriterI ;
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.system.PrefixMapFactory ;
@@ -53,7 +52,7 @@ public class TestNodeFmt extends BaseTes
public static void test(NodeFormatter nodeFormatter, Node n , String str)
{
- StringWriter sw = new StringWriter() ;
+ StringWriterI sw = new StringWriterI() ;
nodeFormatter.format(sw, n) ;
String str2 = sw.toString() ;
assertEquals(str, str2) ;
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java Sat Mar 9 12:32:02 2013
@@ -38,75 +38,100 @@ public class TestStreamManager extends B
private static final String directory = "testing/RIOT/StreamManager" ;
private static final String absDirectory = new File(directory).getAbsolutePath() ;
- private static Context context = new Context() ;
- private static StreamManager streamMgr ;
+
+ private static StreamManager streamMgrDir ;
+ private static StreamManager streamMgrHere ;
+ private static StreamManager streamMgrNull ;
private static StreamManager streamMgrStd ;
- private static Object streamManagerContextValue ;
@BeforeClass static public void beforeClass()
{
streamMgrStd = StreamManager.get() ;
- streamMgr = new StreamManager() ;
- streamMgr.addLocator(new LocatorFile()) ;
- streamMgr.addLocator(new LocatorFile(directory)) ;
- streamMgr.addLocator(new LocatorURL()) ;
+ streamMgrDir = new StreamManager() ;
+ // Not current directory.
+ streamMgrDir.addLocator(new LocatorFile(directory)) ;
+ streamMgrDir.addLocator(new LocatorURL()) ;
- streamManagerContextValue = context.get(RDFDataMgr.streamManagerSymbol) ;
- context.put(RDFDataMgr.streamManagerSymbol, streamMgr) ;
+ streamMgrHere = new StreamManager() ;
+ // Not current directory.
+ streamMgrHere.addLocator(new LocatorFile()) ;
+ streamMgrHere.addLocator(new LocatorURL()) ;
+
+ streamMgrNull = new StreamManager() ;
}
@AfterClass static public void afterClass()
{
StreamManager.setGlobal(streamMgrStd) ;
- if ( streamManagerContextValue == null )
- context.remove(RDFDataMgr.streamManagerSymbol) ;
- else
- context.put(RDFDataMgr.streamManagerSymbol, streamManagerContextValue) ;
}
- @Test public void fm_open_01() { open(directory+"/D.ttl", context) ; }
- @Test public void fm_open_02() { open("D.ttl", context) ; }
+ private static Context context(StreamManager streamMgr)
+ {
+ Context context = new Context() ;
+ context.put(RDFDataMgr.streamManagerSymbol, streamMgr) ;
+ return context ;
+ }
+
+ @Test public void fm_open_01() { open(streamMgrNull, directory+"/D.ttl", context(streamMgrHere)) ; }
+ @Test public void fm_open_02() { open(streamMgrHere, directory+"/D.ttl", null) ; }
+
+ @Test public void fm_open_03() { open(streamMgrNull, "D.ttl", context(streamMgrDir)) ; }
+ @Test public void fm_open_04() { open(streamMgrDir, "D.ttl", null) ; }
+
+ @Test public void fm_open_05() { open(streamMgrHere, "file:"+directory+"/D.ttl", context(streamMgrHere)) ; }
+ @Test public void fm_open_06() { open(streamMgrHere, "file:"+directory+"/D.ttl", null) ; }
- @Test public void fm_open_03() { open("file:"+directory+"/D.ttl", context) ; }
- @Test public void fm_open_04() { open("file:D.ttl", context) ; }
+ @Test public void fm_open_07() { open(streamMgrHere, "file:D.ttl", context(streamMgrDir)) ; }
+ @Test public void fm_open_08() { open(streamMgrDir, "file:D.ttl", null) ; }
- @Test public void fm_open_05() { open(absDirectory+"/D.ttl", context) ; }
- @Test public void fm_open_06() { open("file://"+absDirectory+"/D.ttl", context) ; }
+ @Test public void fm_open_09() { open(streamMgrHere, absDirectory+"/D.ttl", null) ; }
+ @Test public void fm_open_10() { open(streamMgrDir, absDirectory+"/D.ttl", null) ; }
+ @Test public void fm_open_11() { open(streamMgrDir, "file://"+absDirectory+"/D.ttl", null) ; }
+ @Test public void fm_open_12() { open(streamMgrHere, "file://"+absDirectory+"/D.ttl", null) ; }
@Test (expected=RiotNotFoundException.class)
- public void fm_open_10() { open("nosuchfile", null) ; }
+ public void fm_open_20() { open(null, "nosuchfile", context(streamMgrDir)) ; }
+ @Test (expected=RiotNotFoundException.class)
+ public void fm_open_21() { open(streamMgrHere, "nosuchfile", null) ; }
- @Test public void fm_read_01() { read("D.nt") ; }
- @Test public void fm_read_02() { read("D.ttl") ; }
- @Test public void fm_read_03() { read("D.rdf") ; }
- @Test public void fm_read_04() { read("D.json") ; }
+ @Test public void fm_read_01() { read("D.nt") ; }
+ @Test public void fm_read_02() { read("D.ttl") ; }
+ @Test public void fm_read_03() { read("D.rdf") ; }
+ @Test public void fm_read_04() { read("D.json") ; }
- @Test public void fm_read_11() { read("file:D.nt") ; }
- @Test public void fm_read_12() { read("file:D.ttl") ; }
- @Test public void fm_read_13() { read("file:D.rdf") ; }
- @Test public void fm_read_14() { read("file:D.json") ; }
+ @Test public void fm_read_11() { read("file:D.nt") ; }
+ @Test public void fm_read_12() { read("file:D.ttl") ; }
+ @Test public void fm_read_13() { read("file:D.rdf") ; }
+ @Test public void fm_read_14() { read("file:D.json") ; }
// TriG
// NQuads
- private static void open(String dataName, Context context)
+ private static void open(StreamManager streamMgr, String dataName, Context context)
{
- TypedInputStream in =
- ( context != null ) ?
- RDFDataMgr.open(dataName, context) :
- RDFDataMgr.open(dataName) ;
- assertNotNull(in) ;
- IO.close(in) ;
+ StreamManager.setGlobal(streamMgr) ;
+ try {
+ TypedInputStream in = ( context != null )
+ ? RDFDataMgr.open(dataName, context)
+ : RDFDataMgr.open(dataName) ;
+ assertNotNull(in) ;
+ IO.close(in) ;
+ } finally {
+ StreamManager.setGlobal(streamMgrStd) ;
+ }
}
private static void read(String dataName)
{
- StreamManager.setGlobal(streamMgr) ;
- Model m = ModelFactory.createDefaultModel() ;
- RDFDataMgr.read(m, dataName) ;
- assertTrue(m.size() != 0 ) ;
- StreamManager.setGlobal(streamMgrStd) ;
+ try {
+ StreamManager.setGlobal(streamMgrDir) ;
+ Model m = ModelFactory.createDefaultModel() ;
+ RDFDataMgr.read(m, dataName) ;
+ assertNotEquals("Read "+dataName, 0, m.size()) ;
+ } finally {
+ StreamManager.setGlobal(streamMgrStd) ;
+ }
}
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBBackup.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBBackup.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBBackup.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDBBackup.java Sat Mar 9 12:32:02 2013
@@ -18,15 +18,12 @@
package com.hp.hpl.jena.tdb;
-import java.io.BufferedOutputStream ;
-import java.io.FileNotFoundException ;
-import java.io.FileOutputStream ;
-import java.io.IOException ;
-import java.io.OutputStream ;
+import java.io.* ;
import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.riot.out.NQuadsWriter ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.query.ReadWrite ;
@@ -63,7 +60,7 @@ public class TDBBackup
Dataset ds = TDBFactory.createDataset(location) ;
StoreConnection sConn = StoreConnection.make(location) ;
DatasetGraphTxn dsg = sConn.begin(ReadWrite.READ, "backup") ;
- NQuadsWriter.write(backupfile, dsg) ;
+ RDFDataMgr.write(backupfile, dsg, Lang.NQUADS) ;
dsg.end();
}
}
Modified: jena/trunk/jena-tdb/src/main/java/tdb/tdbdump.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/tdb/tdbdump.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/tdb/tdbdump.java (original)
+++ jena/trunk/jena-tdb/src/main/java/tdb/tdbdump.java Sat Mar 9 12:32:02 2013
@@ -18,7 +18,8 @@
package tdb;
-import org.apache.jena.riot.RiotWriter ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
import tdb.cmdline.CmdTDB ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
@@ -46,6 +47,6 @@ public class tdbdump extends CmdTDB
protected void exec()
{
DatasetGraph dsg = super.getDatasetGraphTDB() ;
- RiotWriter.writeNQuads(System.out, dsg) ;
+ RDFDataMgr.write(System.out, dsg, Lang.NQUADS) ;
}
}
Modified: jena/trunk/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java?rev=1454694&r1=1454693&r2=1454694&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java (original)
+++ jena/trunk/jena-tdb/src/main/java/tdb/tools/dumpnodetable.java Sat Mar 9 12:32:02 2013
@@ -104,7 +104,7 @@ public class dumpnodetable extends CmdGe
for ( ; iter.hasNext() ; )
{
Pair<NodeId, Node> pair = iter.next() ;
- iw.print(pair.car()) ;
+ iw.print(pair.car().toString()) ;
iw.print(" : ") ;
//iw.print(pair.cdr()) ;
Node n = pair.cdr() ;