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/02/14 16:12:30 UTC
svn commit: r1446228 - in /jena/Experimental/riot-output/src/main/java: dev/
riot/writer/
Author: andy
Date: Thu Feb 14 15:12:29 2013
New Revision: 1446228
URL: http://svn.apache.org/r1446228
Log: (empty)
Added:
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java
- copied, changed from r1444182, jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamBase.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBase.java
- copied, changed from r1444562, jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDF.java
Removed:
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamBase.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDF.java
Modified:
jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBlocks.java
jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java
jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBlocks.java
jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterFlat.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBlocks.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFFlat.java
Modified: jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/MainWriter.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/MainWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/MainWriter.java Thu Feb 14 15:12:29 2013
@@ -27,7 +27,6 @@ import org.apache.jena.atlas.lib.StrUtil
import org.apache.jena.iri.IRI ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.system.PrefixMapFactory ;
import org.apache.jena.riot.system.StreamRDF ;
@@ -48,20 +47,11 @@ public class MainWriter
{
public static void main(String ...args)
{
- RIOT.init() ;
- String fn = "D.ttl" ;
- Model m = ModelFactory.createDefaultModel() ;
- m.read(fn) ;
- RDFWriterMgr.write(System.out, m, RDFFormat.RDFNULL) ;
- //m.write(System.out, "TTL") ;
- System.out.println("DONE") ;
- System.exit(0) ;
-
writeAll() ;
System.exit(0) ;
- Dataset ds = RDFDataMgr.loadDataset("D.ttl") ;
- RDFWriterMgr.write(System.out, ds, Lang.TRIG) ;
+ Dataset ds = RDFDataMgr.loadDataset("W.trig") ;
+ RDFWriterMgr.write(System.out, ds, RDFFormat.TRIG_FLAT ) ;
System.out.println("DONE") ;
//
// String fn = "D.ttl" ;
@@ -90,16 +80,16 @@ public class MainWriter
RDFFormat formats[] = {
null
-// , RDFFormat.Turtle
-// , RDFFormat.TurtleBlocks
-// , RDFFormat.TurtleFlat
-// , RDFFormat.NTriples
-// , RDFFormat.Trig
-// , RDFFormat.TrigBlocks
+ , RDFFormat.TURTLE
+ , RDFFormat.TURTLE_BLOCKS
+ , RDFFormat.TURTLE_FLAT
+ , RDFFormat.NTRIPLES
+ , RDFFormat.TRIG
+ , RDFFormat.TRIG_BLOCKS
, RDFFormat.TRIG_FLAT
-// , RDFFormat.NQuads
-// , RDFFormat.RDFXML
-// , RDFFormat.RDFXMLPlain
+ , RDFFormat.NQUADS
+ , RDFFormat.RDFXML
+ , RDFFormat.RDFXML_PLAIN
} ;
for ( RDFFormat f : formats )
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBlocks.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBlocks.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBlocks.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBlocks.java Thu Feb 14 15:12:29 2013
@@ -33,7 +33,7 @@ public class TriGWriterBlocks extends Tr
protected void output$(IndentedWriter iOut, DatasetGraph dsg, PrefixMap prefixMap, String baseURI)
{
StreamRDF dest = new WriterStreamRDFBlocks(iOut) ;
- WriterStreamBase.write(dest, dsg, prefixMap, baseURI) ;
+ WriterStream.write(dest, dsg, prefixMap, baseURI) ;
}
}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterFlat.java Thu Feb 14 15:12:29 2013
@@ -34,7 +34,7 @@ public class TriGWriterFlat extends TriG
protected void output$(IndentedWriter iOut, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI)
{
StreamRDF dest = new WriterStreamRDFFlat(iOut) ;
- WriterStreamBase.write(dest, datasetGraph, prefixMap, baseURI) ;
+ WriterStream.write(dest, datasetGraph, prefixMap, baseURI) ;
}
}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBlocks.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBlocks.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBlocks.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBlocks.java Thu Feb 14 15:12:29 2013
@@ -33,7 +33,7 @@ public class TurtleWriterBlocks extends
protected void output$(IndentedWriter out, Graph graph, PrefixMap prefixMap, String baseURI)
{
StreamRDF dest = new WriterStreamRDFBlocks(out) ;
- WriterStreamBase.write(dest, graph, prefixMap, baseURI) ;
+ WriterStream.write(dest, graph, prefixMap, baseURI) ;
}
}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterFlat.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterFlat.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterFlat.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterFlat.java Thu Feb 14 15:12:29 2013
@@ -31,6 +31,6 @@ public class TurtleWriterFlat extends Tu
protected void output$(IndentedWriter out, Graph graph, PrefixMap prefixMap, String baseURI)
{
StreamRDF dest = new WriterStreamRDFFlat(out) ;
- WriterStreamBase.write(dest, graph, prefixMap, baseURI) ;
+ WriterStream.write(dest, graph, prefixMap, baseURI) ;
}
}
\ No newline at end of file
Copied: jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java (from r1444182, jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamBase.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java?p2=jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java&p1=jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamBase.java&r1=1444182&r2=1446228&rev=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamBase.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterStream.java Thu Feb 14 15:12:29 2013
@@ -30,8 +30,10 @@ import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.core.Quad ;
-public abstract class WriterStreamBase
+public class WriterStream
{
+ private WriterStream() {}
+
protected static void finish(StreamRDF dest)
{ dest.finish() ; }
@@ -64,5 +66,6 @@ public abstract class WriterStreamBase
finish(dest) ;
}
+
}
Copied: jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBase.java (from r1444562, jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDF.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBase.java?p2=jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBase.java&p1=jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDF.java&r1=1444562&r2=1446228&rev=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDF.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBase.java Thu Feb 14 15:12:29 2013
@@ -18,8 +18,6 @@
package riot.writer;
-import static org.apache.jena.atlas.lib.Lib.equal ;
-
import java.io.BufferedWriter ;
import java.io.OutputStream ;
import java.io.Writer ;
@@ -43,26 +41,8 @@ import com.hp.hpl.jena.sparql.core.Quad
* If fed only triples, the output is valid Turtle.
*/
-public abstract class WriterStreamRDF implements StreamRDF
+public abstract class WriterStreamRDFBase implements StreamRDF
{
- // TODO
- // Min width for properties?
- // better layering and state machine
-
- // When false, gets
- // :g1 { ... }
- // :g2 { ... }
- protected static final boolean NL_GDFT_START = false ; // Newline after { of dft graph
- protected static final boolean NL_GNMD_START = true ; // same, but for named graphs
- protected static final boolean NL_GDFT_END = true ; // Whether the closing } is on a new line
- protected static final boolean NL_GNMD_END = true ; // Whether the closing } is on a new line
-
- protected static final int INDENT_MIN_S = 4 ; // Range of subject indent
- protected static final int INDENT_MAX_S = 10 ; // i.e. offset of predicate.
-
- protected static final int INDENT_GDFT = 2 ; // Default graph indent
- protected static final int INDENT_GNMD = 4 ; // Named graph indent
-
protected boolean activeTripleData = false ;
protected boolean activeQuadData = false ;
protected boolean lastWasDirective = false ;
@@ -70,56 +50,40 @@ public abstract class WriterStreamRDF im
protected final PrefixMap pMap ;
protected final NodeFormatterTTL fmt ;
protected final IndentedWriter out ;
-
- protected Node lastSubject = null ;
- protected Node lastGraph = null ; // null -> unset : Quad.
- protected boolean firstGraph = true ;
-
- // --- Indent management.
- protected int currentGraphIndent = 0;
- protected int currentSubjectIndent = 0 ;
-
- protected void setGraphIndent(int x)
- {
- currentGraphIndent = x ;
- }
-
- protected void setSubjectIndent(int x)
- {
- if ( x < INDENT_MIN_S ) x = INDENT_MIN_S ;
- if ( x > INDENT_MAX_S ) x = INDENT_MAX_S ;
- currentSubjectIndent = x ;
- }
- protected int graphIndent() { return currentGraphIndent ; }
- protected int subjectIndent() { return currentSubjectIndent ; }
- // ----
- public WriterStreamRDF(OutputStream output)
+ public WriterStreamRDFBase(OutputStream output)
{
this(new IndentedWriter(output)) ;
-
}
- public WriterStreamRDF(IndentedWriter output)
+ public WriterStreamRDFBase(IndentedWriter output)
{
out = output ;
pMap = PrefixMapFactory.create() ;
fmt = new NodeFormatterTTL(null, pMap, NodeToLabel.createScopeByDocument()) ;
}
- public WriterStreamRDF(Writer output)
+ public WriterStreamRDFBase(Writer output)
{
+ this(wrap(output)) ;
+// if ( ! ( output instanceof BufferedWriter ) )
+// output = new BufferedWriter(output, 32*1024) ;
+// out = RiotLib.create(output) ;
+// pMap = PrefixMapFactory.create() ;
+// fmt = new NodeFormatterTTL(null, pMap, NodeToLabel.createScopeByDocument()) ;
+ }
+
+ private static IndentedWriter wrap(Writer output)
+ {
if ( ! ( output instanceof BufferedWriter ) )
output = new BufferedWriter(output, 32*1024) ;
- out = RiotLib.create(output) ;
- pMap = PrefixMapFactory.create() ;
- fmt = new NodeFormatterTTL(null, pMap, NodeToLabel.createScopeByDocument()) ;
+ return RiotLib.create(output) ;
}
@Override
public void start()
{
- reset() ;
+ reset$() ;
}
@Override
@@ -136,6 +100,7 @@ public abstract class WriterStreamRDF im
Node p = triple.getPredicate() ;
Node o = triple.getObject() ;
print(s,p,o) ;
+ activeTripleData = true ;
}
@Override
@@ -145,10 +110,8 @@ public abstract class WriterStreamRDF im
Node s = quad.getSubject() ;
Node p = quad.getPredicate() ;
Node o = quad.getObject() ;
- if ( g == null )
- // Don't have g as null for a triple.
- g = Quad.defaultGraphNodeGenerated ;
print(g, s, p, o) ;
+ activeQuadData = true ;
}
@Override
@@ -157,10 +120,8 @@ public abstract class WriterStreamRDF im
@Override
public void base(String base)
- {
+ {}
- }
-
@Override
public void prefix(String prefix, String iri)
{
@@ -175,28 +136,30 @@ public abstract class WriterStreamRDF im
pMap.add(prefix, iri) ;
}
+ protected abstract void startData() ;
+ protected abstract void endData() ;
+
protected void outputNode(Node n)
{
fmt.format(out, n) ;
}
- protected void reset()
+ private void reset$()
{
activeTripleData = false ;
activeQuadData = false ;
lastWasDirective = false ;
- lastSubject = null ;
- lastGraph = null ;
- // Shouldn't be necessary - if it is some other code is not managing inc/dec indents.
- //out.setAbsoluteIndent(0) ;
+ reset() ;
}
+ protected abstract void reset() ;
+
protected void printPre()
{
// Directive -> data transition.
if ( lastWasDirective )
{
- reset() ;
+ reset$() ;
out.print('\n') ;
}
}
@@ -217,89 +180,5 @@ public abstract class WriterStreamRDF im
protected abstract void print(Node s, Node p, Node o) ;
- protected boolean dftGraph() { return lastGraph == Quad.defaultGraphNodeGenerated ; }
-
- protected void endGraph(Node g)
- {
- if ( lastGraph == null )
- return ;
-
- // End of graph
- if ( ! equal(lastGraph, g) )
- {
- if ( lastSubject != null )
- out.print(" .") ;
- boolean nl = dftGraph() ? NL_GDFT_END : NL_GNMD_END ;
-
- if ( nl ) {
- // } on a new line.
- out.decIndent(graphIndent()) ;
- out.println() ;
- out.println("}") ;
- } else {
- // Possibly on same line as last quad/triple.
- out.decIndent(graphIndent()) ;
- if ( out.atLineStart() )
- out.println("}") ; // Trailing NL
- else
- out.println(" }") ; // Trailing NL
- }
- lastSubject = null ;
- lastGraph = null ;
- }
- }
-
- protected void startGraph(Node g)
- {
- // Start graph
- if ( lastGraph == null )
- {
- if ( ! firstGraph )
- out.println() ;
- firstGraph = false ;
-
- lastSubject = null ;
- if ( g == Quad.defaultGraphNodeGenerated )
- {
- if ( NL_GDFT_START )
- out.println("{") ;
- else
- out.print("{ ") ;
-
- setGraphIndent(INDENT_GDFT) ;
- }
- else
- {
- outputNode(g) ;
- if ( NL_GNMD_START )
- {
- out.println(" {") ;
- setGraphIndent(INDENT_GNMD) ;
- }
- else
- {
- out.print(" { ") ;
- setGraphIndent(out.getCol()) ;
- }
- }
- out.incIndent(graphIndent()) ;
- }
- lastGraph = g ;
- }
-
- protected void endTriples()
- {
- out.println(" .") ;
- lastSubject = null ;
- }
-
- protected void endData()
- {
- if ( activeQuadData )
- endGraph(null) ;
- if ( activeTripleData )
- endTriples() ;
- reset() ;
- }
}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBlocks.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBlocks.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBlocks.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBlocks.java Thu Feb 14 15:12:29 2013
@@ -26,6 +26,7 @@ import java.io.Writer ;
import org.apache.jena.atlas.io.IndentedWriter ;
import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.Quad ;
/** An output of triples / quads that is streaming.
* It writes something that is easier to read than
@@ -37,32 +38,71 @@ import com.hp.hpl.jena.graph.Node ;
* If fed only triples, the output is valid Turtle.
*/
-public class WriterStreamRDFBlocks extends WriterStreamRDF
+public class WriterStreamRDFBlocks extends WriterStreamRDFBase
{
+ // TODO
+ // Min width for properties?
+
+ protected static final boolean NL_GDFT_START = false ; // Newline after { of dft graph
+ protected static final boolean NL_GNMD_START = true ; // same, but for named graphs
+ protected static final boolean NL_GDFT_END = true ; // Whether the closing } is on a new line
+ protected static final boolean NL_GNMD_END = true ; // Whether the closing } is on a new line
+
+ protected static final int INDENT_MIN_S = 4 ; // Range of subject indent
+ protected static final int INDENT_MAX_S = 10 ; // i.e. offset of predicate.
+
+ protected static final int INDENT_GDFT = 2 ; // Default graph indent
+ protected static final int INDENT_GNMD = 4 ; // Named graph indent
+
+ protected Node lastSubject = null ;
+ protected Node lastGraph = null ; // null -> unset : Quad.
+ protected boolean firstGraph = true ;
+
+ // --- Indent management.
+ protected int currentGraphIndent = 0;
+ protected int currentSubjectIndent = 0 ;
+
public WriterStreamRDFBlocks(OutputStream output)
{
super(output) ;
}
+ public WriterStreamRDFBlocks(Writer output)
+ {
+ super(output) ;
+ }
+
public WriterStreamRDFBlocks(IndentedWriter output)
{
super(output) ;
}
- public WriterStreamRDFBlocks(Writer output)
+ protected void setGraphIndent(int x)
{
- super(output) ;
+ currentGraphIndent = x ;
}
+ protected void setSubjectIndent(int x)
+ {
+ if ( x < INDENT_MIN_S ) x = INDENT_MIN_S ;
+ if ( x > INDENT_MAX_S ) x = INDENT_MAX_S ;
+ currentSubjectIndent = x ;
+ }
+
+ protected int graphIndent() { return currentGraphIndent ; }
+ protected int subjectIndent() { return currentSubjectIndent ; }
+
@Override
protected void print(Node g, Node s, Node p, Node o)
{
+ if ( g == null )
+ // Don't have g as null for a triple.
+ g = Quad.defaultGraphNodeGenerated ;
printPre() ;
endGraph(g) ;
startGraph(g) ;
print$(s,p,o) ;
lastGraph = g ;
- activeQuadData = true ;
}
@Override
@@ -70,7 +110,6 @@ public class WriterStreamRDFBlocks exten
{
printPre() ;
print$(s, p, o) ;
- activeTripleData = true ;
}
private void print$(Node s, Node p, Node o)
@@ -92,4 +131,106 @@ public class WriterStreamRDFBlocks exten
outputNode(o) ;
lastSubject = s ;
}
+
+ protected boolean dftGraph() { return lastGraph == Quad.defaultGraphNodeGenerated ; }
+
+ protected void endGraph(Node g)
+ {
+ if ( lastGraph == null )
+ return ;
+
+ // End of graph
+ if ( ! equal(lastGraph, g) )
+ {
+ if ( lastSubject != null )
+ out.print(" .") ;
+ boolean nl = dftGraph() ? NL_GDFT_END : NL_GNMD_END ;
+
+ if ( nl ) {
+ // } on a new line.
+ out.decIndent(graphIndent()) ;
+ out.println() ;
+ out.println("}") ;
+ } else {
+ // Possibly on same line as last quad/triple.
+ out.decIndent(graphIndent()) ;
+ if ( out.atLineStart() )
+ out.println("}") ; // Trailing NL
+ else
+ out.println(" }") ; // Trailing NL
+ }
+ lastSubject = null ;
+ lastGraph = null ;
+ }
+ }
+
+ protected void startGraph(Node g)
+ {
+ // Start graph
+ if ( lastGraph == null )
+ {
+ if ( ! firstGraph )
+ out.println() ;
+ firstGraph = false ;
+
+ lastSubject = null ;
+ if ( g == Quad.defaultGraphNodeGenerated )
+ {
+ if ( NL_GDFT_START )
+ out.println("{") ;
+ else
+ out.print("{ ") ;
+
+ setGraphIndent(INDENT_GDFT) ;
+ }
+ else
+ {
+ outputNode(g) ;
+ if ( NL_GNMD_START )
+ {
+ out.println(" {") ;
+ setGraphIndent(INDENT_GNMD) ;
+ }
+ else
+ {
+ out.print(" { ") ;
+ setGraphIndent(out.getCol()) ;
+ }
+ }
+ out.incIndent(graphIndent()) ;
+ }
+ lastGraph = g ;
+ }
+
+ protected void endTriples()
+ {
+ out.println(" .") ;
+ lastSubject = null ;
+ }
+
+ @Override
+ protected void startData()
+ {
+
+ }
+
+ @Override
+ protected void endData()
+ {
+ if ( activeQuadData )
+ endGraph(null) ;
+ if ( activeTripleData )
+ endTriples() ;
+ reset() ;
+ }
+
+ @Override
+ protected void reset()
+ {
+ lastSubject = null ;
+ lastGraph = null ;
+ currentGraphIndent = 0 ;
+ currentSubjectIndent = 0 ;
+ }
+
}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFFlat.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFFlat.java?rev=1446228&r1=1446227&r2=1446228&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFFlat.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFFlat.java Thu Feb 14 15:12:29 2013
@@ -24,57 +24,67 @@ import java.io.Writer ;
import org.apache.jena.atlas.io.IndentedWriter ;
import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.Quad ;
/** An output of triples / quads that is streaming.
- * It writes N-triples/N-quads + prefixes.
- *
- * If fed only quads, the output is valid TriG (use Quad.defaultGraphIRI)
- * If fed only triples, the output is valid Turtle.
+ * It writes one line per triple/quads, with prefixes and literal short forms.
*/
-public class WriterStreamRDFFlat extends WriterStreamRDF
+public class WriterStreamRDFFlat extends WriterStreamRDFBase
{
public WriterStreamRDFFlat(OutputStream output)
{
super(output) ;
}
-
+
public WriterStreamRDFFlat(IndentedWriter output)
- {
+ {
super(output) ;
}
public WriterStreamRDFFlat(Writer output)
- {
+ {
super(output) ;
}
@Override
- protected void print(Node g, Node s, Node p, Node o)
- {
- printPre() ;
- endGraph(g) ;
- startGraph(g) ;
- print$(s,p,o) ;
- lastGraph = g ;
- activeQuadData = true ;
- }
-
+ protected void startData()
+ {}
+
+ @Override
+ protected void endData()
+ {}
+
+ @Override
+ protected void reset()
+ {}
+
@Override
protected void print(Node s, Node p, Node o)
{
- printPre() ;
- print$(s, p, o) ;
- activeTripleData = false ; // We completed the triple.
+ outputNode(s) ;
+ out.print(' ') ;
+ outputNode(p) ;
+ out.print(' ') ;
+ outputNode(o) ;
+ out.println(" .") ;
}
-
- private void print$(Node s, Node p, Node o)
+
+ @Override
+ protected void print(Node g, Node s, Node p, Node o)
{
+ if ( g != null && ! Quad.isDefaultGraph(g) )
+ {
+ outputNode(g) ;
+ out.print(" { ") ;
+ }
+ else
+ out.print("{ ") ;
outputNode(s) ;
- out.print(" ") ;
+ out.print(' ') ;
outputNode(p) ;
- out.print(" ") ;
+ out.print(' ') ;
outputNode(o) ;
- out.println(" .") ;
+ out.println(" }") ;
}
}