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/09 21:01:45 UTC
svn commit: r1444417 [1/2] - in /jena/Experimental/riot-output:
src/main/java/dev/ src/main/java/riot/ src/main/java/riot/adpaters/
src/main/java/riot/system/ src/main/java/riot/writer/
src/test/java/riot/writer/ testing/RIOT/Writer/
Author: andy
Date: Sat Feb 9 20:01:44 2013
New Revision: 1444417
URL: http://svn.apache.org/r1444417
Log:
Wiring up the API
Added:
jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java
jena/Experimental/riot-output/src/main/java/riot/RDFFormat.java
- copied, changed from r1443653, jena/Experimental/riot-output/src/main/java/riot/RDFSerialization.java
jena/Experimental/riot-output/src/main/java/riot/RDFFormatVariant.java
- copied, changed from r1443653, jena/Experimental/riot-output/src/main/java/riot/WriterVariant.java
jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java
- copied, changed from r1443261, jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java
jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java
jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTBase.java
jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTFactory.java
jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java
- copied, changed from r1443261, jena/Experimental/riot-output/src/main/java/riot/RiotSerializer.java
jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTBase.java
jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTFactory.java
- copied, changed from r1443261, jena/Experimental/riot-output/src/main/java/riot/WriterRIOTFactory.java
jena/Experimental/riot-output/src/main/java/riot/adpaters/
jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java
jena/Experimental/riot-output/src/main/java/riot/system/
jena/Experimental/riot-output/src/main/java/riot/system/IO_Jena2.java
jena/Experimental/riot-output/src/main/java/riot/system/IndentedWriterWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/RDFXMLAbbrevWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/RDFXMLPlainWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriterBase.java
jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriterBase.java
jena/Experimental/riot-output/src/test/java/riot/writer/TestRiotWriterDataset.java
jena/Experimental/riot-output/src/test/java/riot/writer/TestRiotWriterGraph.java
- copied, changed from r1444211, jena/Experimental/riot-output/src/test/java/riot/writer/TestRiotWriter.java
jena/Experimental/riot-output/testing/RIOT/Writer/writer-rt-20.trig
jena/Experimental/riot-output/testing/RIOT/Writer/writer-rt-21.trig
jena/Experimental/riot-output/testing/RIOT/Writer/writer-rt-22.trig
jena/Experimental/riot-output/testing/RIOT/Writer/writer-rt-23.trig
Removed:
jena/Experimental/riot-output/src/main/java/riot/RDFSerialization.java
jena/Experimental/riot-output/src/main/java/riot/RiotSerializer.java
jena/Experimental/riot-output/src/main/java/riot/WriterRIOTFactory.java
jena/Experimental/riot-output/src/main/java/riot/WriterVariant.java
jena/Experimental/riot-output/src/main/java/riot/writer/RDFXMLWriter.java
jena/Experimental/riot-output/src/test/java/riot/writer/TestRiotWriter.java
Modified:
jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java
jena/Experimental/riot-output/src/main/java/dev/MainWriter.java
jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java
jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java
jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/RDFJSONWriter.java
jena/Experimental/riot-output/src/main/java/riot/writer/TriGWriter.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/TurtleShell.java
jena/Experimental/riot-output/src/main/java/riot/writer/TurtleWriter.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/WriterConst.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDF.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFBlocks.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFFlat.java
jena/Experimental/riot-output/src/main/java/riot/writer/WriterStreamRDFTuples.java
jena/Experimental/riot-output/src/test/java/riot/writer/TS_RiotWriter.java
Modified: jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java?rev=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out1.java Sat Feb 9 20:01:44 2013
@@ -18,11 +18,25 @@
package dev;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
+import riot.RDFFormat ;
+import riot.RDFWriterMgr ;
+
+import com.hp.hpl.jena.rdf.model.Model ;
+
/** Example writing a model with RIOT */
public class ExRIOT_out1
{
public static void main(String[] args)
{
+ Model model = RDFDataMgr.loadModel("D.ttl") ;
+
+ RDFWriterMgr.write(System.out, model, Lang.TURTLE) ;
+ System.out.println() ;
+ System.out.println("#### ---- ####") ;
+ System.out.println() ;
+ RDFWriterMgr.write(System.out, model, RDFFormat.TurtleBlocks) ;
}
Added: jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java (added)
+++ jena/Experimental/riot-output/src/main/java/dev/ExRIOT_out2.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,30 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dev;
+
+/** Example of registering a new writer with RIOT */
+public class ExRIOT_out2
+{
+ public static void main(String[] args)
+ {
+ // All ways to write.
+ }
+
+}
+
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=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/MainWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/MainWriter.java Sat Feb 9 20:01:44 2013
@@ -30,11 +30,8 @@ import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.system.PrefixMapFactory ;
import org.apache.jena.riot.system.StreamRDF ;
-import riot.RiotWriter ;
-import riot.writer.TriGWriterBlocks ;
-import riot.writer.TurtleWriter ;
-import riot.writer.TurtleWriterBlocks ;
-import riot.writer.TurtleWriterFlat ;
+import riot.RDFFormat ;
+import riot.RDFWriterMgr ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
@@ -50,6 +47,22 @@ public class MainWriter
{
public static void main(String ...args)
{
+//
+// String fn = "D.ttl" ;
+//
+// Model m = RDFDataMgr.loadModel(fn) ;
+// Writer out = new OutputStreamWriter(System.out) ;
+// System.out.println("## -- 1");
+// m.write(out, "TTL") ;
+// IO_Jena2.wireIntoJenaW() ;
+// System.out.println("## -- 2");
+// m.write(out, "TTL") ;
+//
+// IO_Jena2.resetJenaW() ;
+// System.out.println("## -- 3");
+// m.write(out, "TTL") ;
+
+
//writeTTL() ;
writeTriG() ;
}
@@ -57,9 +70,12 @@ public class MainWriter
public static void writeTriG()
{
Dataset ds = RDFDataMgr.loadDataset("W.trig") ;
- TriGWriterBlocks.write(System.out, ds) ;
-
-
+ System.out.println("# Write TriG") ;
+ RDFWriterMgr.write(System.out, ds, RDFFormat.Trig) ;
+ System.out.println("# Write TriG (Blocks)") ;
+ RDFWriterMgr.write(System.out, ds, RDFFormat.TrigBlocks) ;
+ System.out.println("# Write TriG (Flat)") ;
+ RDFWriterMgr.write(System.out, ds, RDFFormat.TrigFlat) ;
}
public static void writeTTL()
@@ -69,27 +85,27 @@ public class MainWriter
Model m = RDFDataMgr.loadModel(fn) ;
//RDFDataMgr.read(m, "W.ttl") ;
- boolean ALL = false ;
+ boolean ALL = true ;
int written = 0 ;
if ( ALL || false )
{
System.out.println("# Write new (flat)") ;
- TurtleWriterFlat.write(System.out, m) ;
+ RDFWriterMgr.write(System.out, m, RDFFormat.TurtleFlat) ;
System.out.println("----------------------------------") ;
written++ ;
}
if ( ALL || false )
{
System.out.println("# Write new (Pretty)") ;
- TurtleWriter.write(System.out, m) ;
+ RDFWriterMgr.write(System.out, m, RDFFormat.Turtle) ;
System.out.println("----------------------------------") ;
written++ ;
}
if ( ALL || false )
{
System.out.println("# Write new (blocks)") ;
- TurtleWriterBlocks.write(System.out, m) ;
+ RDFWriterMgr.write(System.out, m, RDFFormat.TurtleBlocks) ;
System.out.println("----------------------------------") ;
written++ ;
}
@@ -105,12 +121,12 @@ public class MainWriter
System.out.println("# Write (Pretty)") ;
- RiotWriter.write(System.out, m.getGraph(), Lang.TRIG) ;
+ RDFWriterMgr.write(System.out, m.getGraph(), Lang.TRIG) ;
System.out.println("----------------------------------") ;
if ( true ) return ;
// check.
ByteArrayOutputStream out = new ByteArrayOutputStream() ;
- RiotWriter.write(out, m.getGraph(), Lang.TURTLE) ;
+ RDFWriterMgr.write(out, m.getGraph(), Lang.TURTLE) ;
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()) ;
String s = StrUtils.fromUTF8bytes(out.toByteArray()) ;
Modified: jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java?rev=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/dev/PROJECT_RiotWriter.java Sat Feb 9 20:01:44 2013
@@ -21,22 +21,10 @@ package dev;
public class PROJECT_RiotWriter
{
- // Prologue
// JSON-LD
- // Remove prefixes options on statics
-
- // Where do the constants go?
-
- // TriG & empty graphs.
- // Test RT
- // baseURI.
-
- // ExRIOT_out1 :: write model
// ExRIOT_out2 :: register language and writer
- // NT and NQ writers? Or are RIOT current OK?
-
// TODO - check for TODO
// Options.
Copied: jena/Experimental/riot-output/src/main/java/riot/RDFFormat.java (from r1443653, jena/Experimental/riot-output/src/main/java/riot/RDFSerialization.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFFormat.java?p2=jena/Experimental/riot-output/src/main/java/riot/RDFFormat.java&p1=jena/Experimental/riot-output/src/main/java/riot/RDFSerialization.java&r1=1443653&r2=1444417&rev=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RDFSerialization.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFFormat.java Sat Feb 9 20:01:44 2013
@@ -20,16 +20,46 @@ package riot;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RIOT ;
/** Constants for writable formats */
-public class RDFSerialization
+public class RDFFormat
{
+ static { RIOT.init(); }
+
+ public static RDFFormatVariant wvPretty = new RDFFormatVariant("pretty" ) ;
+ public static RDFFormatVariant wvBlocks = new RDFFormatVariant("blocks" ) ;
+ public static RDFFormatVariant wvFlat = new RDFFormatVariant("flat" ) ;
+
+ public static RDFFormat TurtlePretty = new RDFFormat(Lang.TURTLE, wvPretty) ;
+ public static RDFFormat Turtle = TurtlePretty ;
+ public static RDFFormat TurtleBlocks = new RDFFormat(Lang.TURTLE, wvBlocks) ;
+ public static RDFFormat TurtleFlat = new RDFFormat(Lang.TURTLE, wvFlat) ;
+
+ public static RDFFormat NTriples = new RDFFormat(Lang.NTRIPLES) ;
+
+ public static RDFFormat NQuads = new RDFFormat(Lang.NQUADS) ;
+
+ public static RDFFormat TrigPretty = new RDFFormat(Lang.TRIG, wvPretty) ;
+ public static RDFFormat Trig = TrigPretty ;
+ public static RDFFormat TrigBlocks = new RDFFormat(Lang.TRIG, wvBlocks) ;
+ public static RDFFormat TrigFlat = new RDFFormat(Lang.TRIG, wvFlat) ;
+
+ public static RDFFormatVariant wvPlain = new RDFFormatVariant("plain" ) ;
+ public static RDFFormatVariant wvAbbrev = new RDFFormatVariant("flat" ) ;
+ public static RDFFormat RDFXMLPretty = new RDFFormat(Lang.RDFXML, wvAbbrev) ;
+ public static RDFFormat RDFXMLAbbrev = RDFXMLPretty ;
+ public static RDFFormat RDFXML = RDFXMLPretty ;
+ public static RDFFormat RDFXMLPlain = new RDFFormat(Lang.RDFXML, wvPlain) ;
+
+ public static RDFFormat RDFJSON = new RDFFormat(Lang.RDFJSON) ;
+
private final Lang lang ;
- private final WriterVariant variant ;
+ private final RDFFormatVariant variant ;
- public RDFSerialization(Lang lang) { this(lang, null) ; }
+ public RDFFormat(Lang lang) { this(lang, null) ; }
- public RDFSerialization(Lang lang, WriterVariant variant)
+ public RDFFormat(Lang lang, RDFFormatVariant variant)
{
this.lang = lang ;
this.variant = variant ;
@@ -40,7 +70,7 @@ public class RDFSerialization
return lang ;
}
- public WriterVariant getVariant()
+ public RDFFormatVariant getVariant()
{
return variant ;
}
@@ -61,7 +91,7 @@ public class RDFSerialization
if (this == obj) return true ;
if (obj == null) return false ;
if (getClass() != obj.getClass()) return false ;
- RDFSerialization other = (RDFSerialization)obj ;
+ RDFFormat other = (RDFFormat)obj ;
if ( ! Lib.equal(lang, other.lang) )
return false ;
if ( ! Lib.equal(variant, other.variant) )
Copied: jena/Experimental/riot-output/src/main/java/riot/RDFFormatVariant.java (from r1443653, jena/Experimental/riot-output/src/main/java/riot/WriterVariant.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFFormatVariant.java?p2=jena/Experimental/riot-output/src/main/java/riot/RDFFormatVariant.java&p1=jena/Experimental/riot-output/src/main/java/riot/WriterVariant.java&r1=1443653&r2=1444417&rev=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterVariant.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFFormatVariant.java Sat Feb 9 20:01:44 2013
@@ -22,11 +22,11 @@ import org.apache.jena.atlas.lib.Lib ;
import com.hp.hpl.jena.sparql.util.Symbol ;
-public class WriterVariant
+public class RDFFormatVariant
{
private final Symbol symbol ;
- public WriterVariant(String name)
+ public RDFFormatVariant(String name)
{
symbol = Symbol.create(name) ;
}
@@ -46,7 +46,7 @@ public class WriterVariant
if (this == obj) return true ;
if (obj == null) return false ;
if (getClass() != obj.getClass()) return false ;
- WriterVariant other = (WriterVariant)obj ;
+ RDFFormatVariant other = (RDFFormatVariant)obj ;
if ( ! Lib.equal(symbol, other.symbol) ) return false ;
return true ;
}
Copied: jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java (from r1443261, jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java?p2=jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java&p1=jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java&r1=1443261&r2=1444417&rev=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFWriterMgr.java Sat Feb 9 20:01:44 2013
@@ -20,16 +20,18 @@ one
package riot;
import java.io.OutputStream ;
+import java.io.StringWriter ;
+import java.io.Writer ;
-import org.apache.jena.atlas.lib.NotImplemented ;
import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RiotException ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
-public class RiotWriter
+public class RDFWriterMgr
{
/** Write the model to the output stream in the default serialization for the language.
* @param out OutputStream
@@ -47,7 +49,7 @@ public class RiotWriter
* @param lang Language for the seralization.
* @param variant Language seralization variant
*/
- public static void write(OutputStream out, Model model, Lang lang, WriterVariant variant)
+ public static void write(OutputStream out, Model model, Lang lang, RDFFormatVariant variant)
{
write(out, model.getGraph(), lang, variant) ;
}
@@ -57,19 +59,51 @@ public class RiotWriter
* @param model Model to write
* @param serialization Serialization format
*/
- public static void write(OutputStream out, Model model, RDFSerialization serialization)
+ public static void write(OutputStream out, Model model, RDFFormat serialization)
{
write(out, model.getGraph(), serialization) ;
}
/** Write the graph to the output stream in the default serialization for the language.
+ * @param out OutputStream
+ * @param model Model to write
+ * @param serialization Serialization format
+ * @deprecated Use of writers is deprecated - use an OutputStream
+ */
+ @Deprecated
+ public static void write(Writer out, Model model, RDFFormat serialization)
+ {
+ write(out, model.getGraph(), serialization) ;
+ }
+
+ /** Write the graph to the output stream in the default serialization for the language.
+ * @param out OutputStream
+ * @param model Model to write
+ * @param lang Serialization format
+ */
+ public static void write(StringWriter out, Model model, Lang lang)
+ {
+ write(out, model.getGraph(), lang) ;
+ }
+
+ /** Write the graph to the output stream in the default serialization for the language.
+ * @param out OutputStream
+ * @param model Model to write
+ * @param serialization Serialization format
+ */
+ public static void write(StringWriter out, Model model, RDFFormat serialization)
+ {
+ write(out, model.getGraph(), serialization) ;
+ }
+
+ /** Write the graph to the output stream in the default serialization for the language.
* @param out OutputStream
* @param graph Graph to write
* @param lang Language for the seralization.
*/
public static void write(OutputStream out, Graph graph, Lang lang)
{
- RDFSerialization serialization = RDFWriterRegistry.defaultSerialization(lang) ;
+ RDFFormat serialization = RDFWriterRegistry.defaultGraphSerialization(lang) ;
write(out, graph, serialization) ;
}
@@ -79,9 +113,43 @@ public class RiotWriter
* @param lang Language for the seralization.
* @param variant Language seralization variant
*/
- public static void write(OutputStream out, Graph graph, Lang lang, WriterVariant variant)
+ public static void write(OutputStream out, Graph graph, Lang lang, RDFFormatVariant variant)
+ {
+ RDFFormat serialization = new RDFFormat(lang, variant) ;
+ write(out, graph, serialization) ;
+ }
+
+ /** Write the graph to the output stream in the default serialization for the language.
+ * @param out OutputStream
+ * @param graph Graph to write
+ * @param serialization Serialization format
+ */
+ public static void write(OutputStream out, Graph graph, RDFFormat serialization)
+ {
+ WriterGraphRIOTFactory wf = RDFWriterRegistry.getWriterGraphFactory(serialization) ;
+ WriterGraphRIOT w = wf.create(serialization) ;
+ w.write(out, graph) ;
+ }
+
+ /** Write the graph to the output stream in the default serialization for the language.
+ * @param out OutputStream
+ * @param graph Graph to write
+ * @param lang Serialization format
+ */
+ public static void write(StringWriter out, Graph graph, Lang lang)
+ {
+ // Only known reasonable use of a Writer
+ write(out, graph, RDFWriterRegistry.defaultGraphSerialization(lang)) ;
+ }
+
+ /** Write the graph to the output stream in the default serialization for the language.
+ * @param out OutputStream
+ * @param graph Graph to write
+ * @param serialization Serialization format
+ */
+ public static void write(StringWriter out, Graph graph, RDFFormat serialization)
{
- RDFSerialization serialization = new RDFSerialization(lang, variant) ;
+ // Only known reasonable use of a Writer
write(out, graph, serialization) ;
}
@@ -89,12 +157,16 @@ public class RiotWriter
* @param out OutputStream
* @param graph Graph to write
* @param serialization Serialization format
+ * @deprecated Use of writers is deprecated - use an OutputStream
*/
- public static void write(OutputStream out, Graph graph, RDFSerialization serialization)
+ @Deprecated
+ public static void write(Writer out, Graph graph, RDFFormat serialization)
{
- WriterRIOTFactory wf = RDFWriterRegistry.getWriterFactory(serialization) ;
- RiotSerializer w = wf.create(out, graph, serialization) ;
- w.write() ;
+ WriterGraphRIOTFactory wf = RDFWriterRegistry.getWriterGraphFactory(serialization) ;
+ if ( wf == null )
+ throw new RiotException("No graph writer for "+serialization) ;
+ WriterGraphRIOT w = wf.create(serialization) ;
+ w.write(out, graph) ;
}
/** Write the Dataset to the output stream in the default serialization for the language.
@@ -113,7 +185,7 @@ public class RiotWriter
* @param lang Language for the seralization.
* @param variant Language seralization variant
*/
- public static void write(OutputStream out, Dataset dataset, Lang lang, WriterVariant variant)
+ public static void write(OutputStream out, Dataset dataset, Lang lang, RDFFormatVariant variant)
{
write(out, dataset.asDatasetGraph(), lang, variant) ;
}
@@ -123,7 +195,7 @@ public class RiotWriter
* @param dataset Dataset to write
* @param serialization Serialization format
*/
- public static void write(OutputStream out, Dataset dataset, RDFSerialization serialization)
+ public static void write(OutputStream out, Dataset dataset, RDFFormat serialization)
{
write(out, dataset.asDatasetGraph(), serialization) ;
}
@@ -135,7 +207,7 @@ public class RiotWriter
*/
public static void write(OutputStream out, DatasetGraph dataset, Lang lang)
{
- RDFSerialization serialization = RDFWriterRegistry.defaultSerialization(lang) ;
+ RDFFormat serialization = RDFWriterRegistry.defaultDatasetSerialization(lang) ;
write(out, dataset, serialization) ;
}
@@ -145,9 +217,9 @@ public class RiotWriter
* @param lang Language for the seralization.
* @param variant Language seralization variant
*/
- public static void write(OutputStream out, DatasetGraph dataset, Lang lang, WriterVariant variant)
+ public static void write(OutputStream out, DatasetGraph dataset, Lang lang, RDFFormatVariant variant)
{
- RDFSerialization serialization = new RDFSerialization(lang, variant) ;
+ RDFFormat serialization = new RDFFormat(lang, variant) ;
write(out, dataset, serialization) ;
}
@@ -156,12 +228,13 @@ public class RiotWriter
* @param dataset DatasetGraph to write
* @param serialization Serialization format
*/
- public static void write(OutputStream out, DatasetGraph dataset, RDFSerialization serialization)
+ public static void write(OutputStream out, DatasetGraph dataset, RDFFormat serialization)
{
- WriterRIOTFactory wf = RDFWriterRegistry.getWriterFactory(serialization) ;
- throw new NotImplemented() ;
-// RiotSerializer w = null ; //??
-// w.write() ;
+ WriterDatasetRIOTFactory wf = RDFWriterRegistry.getWriterDatasetFactory(serialization) ;
+ if ( wf == null )
+ throw new RiotException("No dataset writer for "+serialization) ;
+ WriterDatasetRIOT w = wf.create(serialization) ;
+ w.write(out, dataset) ;
}
}
Modified: jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java?rev=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RDFWriterRegistry.java Sat Feb 9 20:01:44 2013
@@ -18,9 +18,8 @@
package riot;
-import static org.apache.jena.riot.RDFLanguages.* ;
-
import java.io.OutputStream ;
+import java.io.Writer ;
import java.util.HashMap ;
import java.util.Map ;
@@ -29,239 +28,197 @@ import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.RiotException ;
-import riot.writer.* ;
+import org.apache.jena.riot.system.PrefixMap ;
+import riot.system.RiotLib ;
import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.sparql.core.DatasetGraph ;
public class RDFWriterRegistry
{
+ // All mention and use of Writers is purely for compatibility.
+ // They are not a good idea (StringWriter is an exception).
+ // Let the serializer deal with the character issues.
+ // UTF-8 is universal - but UTF-8 is not the default in Java ("platform encoding" is).
+
static { RIOT.init() ; }
- // Registry with the pretty write
- static Map<RDFSerialization, WriterRIOTFactory> registry = new HashMap<RDFSerialization, WriterRIOTFactory>() ;
- public static WriterVariant wvPretty = new WriterVariant("pretty" ) ;
- public static WriterVariant wvBlocks = new WriterVariant("blocks" ) ;
- public static WriterVariant wvFlat = new WriterVariant("flat" ) ;
-
- public static RDFSerialization TurtlePretty = new RDFSerialization(Lang.TURTLE, wvPretty) ;
- public static RDFSerialization Turtle = TurtlePretty ;
- public static RDFSerialization TurtleBlocks = new RDFSerialization(Lang.TURTLE, wvBlocks) ;
- public static RDFSerialization TurtleFlat = new RDFSerialization(Lang.TURTLE, wvFlat) ;
-
- public static RDFSerialization NTriples = new RDFSerialization(Lang.NTRIPLES) ;
- public static RDFSerialization NQuads = new RDFSerialization(Lang.NQUADS) ;
-
- public static RDFSerialization TrigPretty = new RDFSerialization(Lang.TRIG, wvPretty) ;
- public static RDFSerialization Trig = TrigPretty ;
- public static RDFSerialization TrigBlocks = new RDFSerialization(Lang.TRIG, wvBlocks) ;
- public static RDFSerialization TrigFlat = new RDFSerialization(Lang.TRIG, wvFlat) ;
-
- // RDF/JSON
- //
- public static WriterVariant wvPlain = new WriterVariant("plain" ) ;
- public static WriterVariant wvAbbrev = new WriterVariant("flat" ) ;
-
- public static RDFSerialization RDFXMLPretty = new RDFSerialization(Lang.RDFXML, wvAbbrev) ;
- public static RDFSerialization RDFXMLAbbrev = RDFXMLPretty ;
- public static RDFSerialization RDFXML = RDFXMLPretty ;
- public static RDFSerialization RDFXMLPlain = new RDFSerialization(Lang.RDFXML, wvPlain) ;
-
- public static RDFSerialization RDFJSON = new RDFSerialization(Lang.RDFJSON) ;
-
+ static Map<RDFFormat, WriterGraphRIOTFactory> registryGraph = new HashMap<RDFFormat, WriterGraphRIOTFactory>() ;
+ static Map<RDFFormat, WriterDatasetRIOTFactory> registryDataset = new HashMap<RDFFormat, WriterDatasetRIOTFactory>() ;
+
// Writing a graph
- static WriterRIOTFactory wfactory = new WriterRIOTFactory() {
+ static WriterGraphRIOTFactory wgfactory = new WriterGraphRIOTFactory() {
@Override
- public RiotSerializer create(OutputStream out, Graph graph, RDFSerialization serialization)
+ public WriterGraphRIOT create(RDFFormat serialization)
{
// Built-ins
- if ( Lib.equal(TurtlePretty, serialization) )
- return createTurtle(out, graph) ;
- if ( Lib.equal(TurtleBlocks, serialization) )
- return createTurtleStreaming(out, graph) ;
- if ( Lib.equal(TurtleFlat, serialization) )
- return createTurtleFlat(out, graph) ;
-
- if ( Lib.equal(NTriples, serialization) )
- return createNTriples(out, graph) ;
- if ( Lib.equal(RDFJSON, serialization) )
- return createRDFJSON(out, graph) ;
- if ( Lib.equal(RDFXMLPretty, serialization) )
- return createRDFXMLAbbrev(out, graph) ;
- if ( Lib.equal(RDFXMLPlain, serialization) )
- return createRDFXMLPlain(out, graph) ;
+ if ( Lib.equal(RDFFormat.TurtlePretty, serialization) )
+ return RiotWriter.createTurtle() ;
+ if ( Lib.equal(RDFFormat.TurtleBlocks, serialization) )
+ return RiotWriter.createTurtleStreaming() ;
+ if ( Lib.equal(RDFFormat.TurtleFlat, serialization) )
+ return RiotWriter.createTurtleFlat() ;
+ if ( Lib.equal(RDFFormat.NTriples, serialization) )
+ return RiotWriter.createNTriples() ;
+ if ( Lib.equal(RDFFormat.RDFJSON, serialization) )
+ return RiotWriter.createRDFJSON() ;
+ if ( Lib.equal(RDFFormat.RDFXMLPretty, serialization) )
+ return RiotWriter.createRDFXMLAbbrev() ;
+ if ( Lib.equal(RDFFormat.RDFXMLPlain, serialization) )
+ return RiotWriter.createRDFXMLPlain() ;
// graphs in quad format.
- if ( Lib.equal(TrigPretty, serialization) )
- return createTrig(out, graph) ;
- if ( Lib.equal(TrigBlocks, serialization) )
- return createTrigStreaming(out, graph) ;
- if ( Lib.equal(TrigFlat, serialization) )
- return createTrigFlat(out,graph) ;
-
- if ( Lib.equal(NQuads, serialization) )
- return createNQuads(out, graph) ;
+ if ( Lib.equal(RDFFormat.TrigPretty, serialization) )
+ return adapter(RiotWriter.createTrig()) ;
+ if ( Lib.equal(RDFFormat.TrigBlocks, serialization) )
+ return adapter(RiotWriter.createTrigStreaming()) ;
+ if ( Lib.equal(RDFFormat.TrigFlat, serialization) )
+ return adapter(RiotWriter.createTrigFlat()) ;
+ if ( Lib.equal(RDFFormat.NQuads, serialization) )
+ return adapter(RiotWriter.createNQuads()) ;
return null ;
- }} ;
+ }} ;
+
+
+ private static WriterGraphRIOTBase adapter(WriterDatasetRIOT writer)
+ { return new WriterAdapter(writer) ; }
+
+ private static class WriterAdapter extends WriterGraphRIOTBase
+ {
+ private WriterDatasetRIOT writer ;
- public static void init() {}
+ 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)
+ { writer.write(out, RiotLib.dataset(graph), prefixMap, baseURI) ; }
+
+ @Override
+ public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+ { writer.write(out, RiotLib.dataset(graph), prefixMap, baseURI) ; }
+ }
- static { init$() ; }
+ // Writing a dataset
+ static WriterDatasetRIOTFactory wdsfactory = new WriterDatasetRIOTFactory() {
+ @Override
+ public WriterDatasetRIOT create(RDFFormat serialization)
+ {
+ if ( Lib.equal(RDFFormat.TrigPretty, serialization) )
+ return RiotWriter.createTrig() ;
+ if ( Lib.equal(RDFFormat.TrigBlocks, serialization) )
+ return RiotWriter.createTrigStreaming() ;
+ if ( Lib.equal(RDFFormat.TrigFlat, serialization) )
+ return RiotWriter.createTrigFlat() ;
+ if ( Lib.equal(RDFFormat.NQuads, serialization) )
+ return RiotWriter.createNQuads() ;
+ return null ;
+ }} ;
+
+ public static void init() {}
+
+ static { init$() ; }
private static void init$()
{
- register(TurtlePretty, wfactory) ;
- register(TurtleBlocks, wfactory) ;
- register(TurtleFlat, wfactory) ;
+ register(RDFFormat.TurtlePretty, wgfactory) ;
+ register(RDFFormat.TurtleBlocks, wgfactory) ;
+ register(RDFFormat.TurtleFlat, wgfactory) ;
- register(NTriples, wfactory) ;
- register(RDFJSON, wfactory) ;
+ register(RDFFormat.NTriples, wgfactory) ;
+ register(RDFFormat.RDFJSON, wgfactory) ;
- register(RDFXMLPretty, wfactory) ;
- register(RDFXMLPlain, wfactory) ;
+ register(RDFFormat.RDFXMLPretty, wgfactory) ;
+ register(RDFFormat.RDFXMLPlain, wgfactory) ;
- register(TrigPretty, wfactory) ;
- register(TrigBlocks, wfactory) ;
- register(TrigFlat, wfactory) ;
+ register(RDFFormat.TrigPretty, wgfactory) ;
+ register(RDFFormat.TrigBlocks, wgfactory) ;
+ register(RDFFormat.TrigFlat, wgfactory) ;
+
+ register(RDFFormat.NQuads, wgfactory) ;
- register(NQuads, wfactory) ;
+ register(RDFFormat.TrigPretty, wdsfactory) ;
+ register(RDFFormat.TrigBlocks, wdsfactory) ;
+ register(RDFFormat.TrigFlat, wdsfactory) ;
+ register(RDFFormat.NQuads, wdsfactory) ;
+
}
- private static void register(RDFSerialization serialization, WriterRIOTFactory wfactory)
+ public static void register(RDFFormat serialization, WriterGraphRIOTFactory wfactory)
+ {
+ registryGraph.put(serialization, wfactory) ;
+ }
+
+ public static void register(RDFFormat serialization, WriterDatasetRIOTFactory wfactory)
{
- registry.put(serialization, wfactory) ;
+ registryDataset.put(serialization, wfactory) ;
}
// Map Lang to default output format.
- public static WriterRIOTFactory getWriterFactory(Lang lang)
+ public static WriterGraphRIOTFactory getWriterGraphFactory(Lang lang)
{
- RDFSerialization serialization = defaultSerialization(lang) ;
+ RDFFormat serialization = defaultGraphSerialization(lang) ;
if ( serialization == null )
throw new RiotException("No default serialization for language "+lang) ;
- return getWriterFactory(serialization) ;
+ return getWriterGraphFactory(serialization) ;
}
- public static RDFSerialization defaultSerialization(Lang lang)
+ public static WriterGraphRIOTFactory getWriterGraphFactory(Lang lang, RDFFormatVariant variant)
{
- if ( RDFLanguages.TURTLE.equals(lang) ) return Turtle ;
- if ( RDFLanguages.N3.equals(lang) ) return Turtle ;
- if ( RDFLanguages.NTRIPLES.equals(lang) ) return NTriples ;
-
- if ( RDFLanguages.TRIG.equals(lang) ) return Trig ;
- if ( RDFLanguages.NQUADS.equals(lang) ) return NQuads ;
-
- if ( RDFLanguages.RDFXML.equals(lang) ) return RDFXML ;
- if ( RDFLanguages.RDFJSON.equals(lang) ) return RDFJSON ;
-
- return null ;
+ return getWriterGraphFactory(new RDFFormat(lang, variant)) ;
+ }
+
+ public static WriterGraphRIOTFactory getWriterGraphFactory(RDFFormat serialization)
+ {
+ if ( serialization == null )
+ return null ;
+ return registryGraph.get(serialization) ;
}
-
- public static WriterRIOTFactory getWriterFactory(Lang lang, WriterVariant variant)
+ public static WriterDatasetRIOTFactory getWriterDatasetFactory(Lang lang)
+ {
+ RDFFormat serialization = defaultDatasetSerialization(lang) ;
+ if ( serialization == null )
+ throw new RiotException("No default serialization for language "+lang) ;
+ return getWriterDatasetFactory(serialization) ;
+ }
+
+ public static WriterDatasetRIOTFactory getWriterDatasetFactory(Lang lang, RDFFormatVariant variant)
{
- return getWriterFactory(new RDFSerialization(lang, variant)) ;
+ return getWriterDatasetFactory(new RDFFormat(lang, variant)) ;
}
- public static WriterRIOTFactory getWriterFactory(RDFSerialization serialization)
+ public static WriterDatasetRIOTFactory getWriterDatasetFactory(RDFFormat serialization)
{
- return registry.get(serialization) ;
+ if ( serialization == null )
+ return null ;
+ return registryDataset.get(serialization) ;
+ }
+
+ public static RDFFormat defaultGraphSerialization(Lang lang)
+ {
+ if ( RDFLanguages.TURTLE.equals(lang) ) return RDFFormat.Turtle ;
+ if ( RDFLanguages.N3.equals(lang) ) return RDFFormat.Turtle ;
+ if ( RDFLanguages.NTRIPLES.equals(lang) ) return RDFFormat.NTriples ;
+
+ // We write as the default graph of a dataset
+ if ( RDFLanguages.TRIG.equals(lang) ) return RDFFormat.Trig ;
+ if ( RDFLanguages.NQUADS.equals(lang) ) return RDFFormat.NQuads ;
+
+ if ( RDFLanguages.RDFXML.equals(lang) ) return RDFFormat.RDFXML ;
+ if ( RDFLanguages.RDFJSON.equals(lang) ) return RDFFormat.RDFJSON ;
+
+ return null ;
}
- // builtins.
-
- private static RiotSerializer createTurtle(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { TurtleWriter.write(out, graph) ; }
- @Override public Lang getLang() { return TURTLE ; }
- } ; }
-
- private static RiotSerializer createTurtleStreaming(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { TurtleWriterBlocks.write(out, graph) ; }
- @Override public Lang getLang() { return TURTLE ; }
- } ; }
-
- private static RiotSerializer createTurtleFlat(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { TurtleWriterFlat.write(out, graph) ; }
- @Override public Lang getLang() { return TURTLE ; }
- } ; }
-
-
- private static RiotSerializer createNTriples(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { NTriplesWriter.write(out, graph) ; }
- @Override public Lang getLang() { return NTRIPLES ; }
- } ; }
-
- private static RiotSerializer createRDFXMLAbbrev(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { RDFXMLWriter.writeAbbrev(out, graph) ; }
- @Override public Lang getLang() { return Lang.RDFXML ; }
- } ; }
-
- private static RiotSerializer createRDFXMLPlain(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { RDFXMLWriter.writePlain(out, graph) ; }
- @Override public Lang getLang() { return Lang.RDFXML ; }
- } ; }
-
- private static RiotSerializer createRDFJSON(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { RDFJSONWriter.write(out, graph) ; }
- @Override public Lang getLang() { return Lang.RDFJSON ; }
- } ; }
-
- private static RiotSerializer createN3(OutputStream out, Graph graph)
- { return createTurtle(out, graph) ; }
-
- private static RiotSerializer createTrig(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { TriGWriter.write(out, graph) ; }
- @Override public Lang getLang() { return TRIG ; }
- } ; }
-
- private static RiotSerializer createTrig(final OutputStream out, final DatasetGraph dsg)
- { return new RiotSerializer() {
- @Override public void write() { TriGWriter.write(out, dsg) ; }
- @Override public Lang getLang() { return TRIG ; }
- } ; }
-
- private static RiotSerializer createTrigStreaming(final OutputStream out, final DatasetGraph dsg)
- { return new RiotSerializer() {
- @Override public void write() { TriGWriterBlocks.write(out, dsg) ; }
- @Override public Lang getLang() { return TRIG ; }
- } ; }
-
- private static RiotSerializer createTrigStreaming(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { TriGWriterBlocks.write(out, graph) ; }
- @Override public Lang getLang() { return TRIG ; }
- } ; }
-
- private static RiotSerializer createTrigFlat(final OutputStream out, final DatasetGraph dsg)
- { return new RiotSerializer() {
- @Override public void write() { TriGWriterFlat.write(out, dsg) ; }
- @Override public Lang getLang() { return TRIG ; }
- } ; }
-
- private static RiotSerializer createTrigFlat(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { TriGWriterFlat.write(out, graph) ; }
- @Override public Lang getLang() { return TRIG ; }
- } ; }
-
-
- private static RiotSerializer createNQuads(final OutputStream out, final Graph graph)
- { return new RiotSerializer() {
- @Override public void write() { NTriplesWriter.write(out, graph) ; }
- @Override public Lang getLang() { return NQUADS ; }
- } ; }
-
- private static RiotSerializer createNQuads(final OutputStream out, final DatasetGraph dsg)
- { return new RiotSerializer() {
- @Override public void write() { NQuadsWriter.write(out, dsg) ; }
- @Override public Lang getLang() { return NQUADS ; }
- } ; }
+ public static RDFFormat defaultDatasetSerialization(Lang lang)
+ {
+ if ( RDFLanguages.TRIG.equals(lang) ) return RDFFormat.Trig ;
+ if ( RDFLanguages.NQUADS.equals(lang) ) return RDFFormat.NQuads ;
+
+ return null ;
+ }
+
}
Modified: jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java?rev=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/RiotWriter.java Sat Feb 9 20:01:44 2013
@@ -1,6 +1,5 @@
-/** ;
- * Licensed to the Apache Software Foundation (ASF) under
-one
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
@@ -21,148 +20,178 @@ package riot;
import java.io.OutputStream ;
-import org.apache.jena.atlas.lib.NotImplemented ;
-import org.apache.jena.riot.Lang ;
+import riot.writer.* ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+/** Direct call to create writers for specific formats.
+ * The normal way to write is {@code RDFWriterMgr.write(...)}
+ */
public class RiotWriter
{
- /** Write the model to the output stream in the default serialization for the language.
+ /** Write as Turtle
+ * @param out OutputStream
+ * @param model Model to write
+ */
+ public static void writeTurtle(OutputStream out, Model model)
+ { writeTurtle(out, model.getGraph()) ; }
+
+ /** Write as Turtle
+ * @param out OutputStream
+ * @param graph Graph to write
+ */
+ public static void writeTurtle(OutputStream out, Graph graph)
+ { createTurtle().write(out, graph) ; }
+
+ /** Write as Turtle, using a streaming writer
+ * @param out OutputStream
+ * @param model Model to write
+ */
+ public static void writeTurtleStreaming(OutputStream out, Model model)
+ { writeTurtleStreaming(out, model.getGraph()) ; }
+
+ /** Write as Turtle, using a streaming writer
+ * @param out OutputStream
+ * @param graph Graph to write
+ */
+ public static void writeTurtleStreaming(OutputStream out, Graph graph)
+ { createTurtleStreaming().write(out, graph) ; }
+
+ /** Write a model as NTriples
+ * @param out OutputStream
+ * @param model Model to write
+ */
+ public static void writeNTriples(OutputStream out, Model model)
+ { writeNTriples(out, model.getGraph()) ; }
+
+ /** Write a graph as NTriples
+ * @param out OutputStream
+ * @param graph Graph to write
+ */
+ public static void writeNTriples(OutputStream out, Graph graph)
+ { createNTriples().write(out, graph) ; }
+
+ /** Write a model as RDF/XML
+ * @param out OutputStream
+ * @param model Model to write
+ */
+ public static void writeRDFXML(OutputStream out, Model model)
+ { writeRDFXML(out, model.getGraph()) ; }
+
+ /** Write a graph as RDF/XML
+ * @param out OutputStream
+ * @param graph Graph to write
+ */
+ public static void writeRDFXML(OutputStream out, Graph graph)
+ { createRDFXMLAbbrev().write(out, graph) ; }
+
+ /** Write a model as RDF/XML
+ * @param out OutputStream
+ * @param model Model to write
+ */
+ public static void writeRDFXMLStreaming(OutputStream out, Model model)
+ { writeRDFXMLStreaming(out, model.getGraph()) ; }
+
+ /** Write a graph as RDF/XML
+ * @param out OutputStream
+ * @param graph Graph to write
+ */
+ public static void writeRDFXMLStreaming(OutputStream out, Graph graph)
+ { createRDFXMLPlain().write(out, graph) ; }
+
+ /** Write a model as RDF/JSON (this is not JSON-LD)
+ * @param out OutputStream
+ * @param model Model to write
+ */
+ public static void writeRDFJSON(OutputStream out, Model model)
+ { writeRDFJSON(out, model.getGraph()) ; }
+
+ /** Write a graph as RDF/JSON (this is not JSON-LD)
+ * @param out OutputStream
+ * @param graph Graph to write
+ */
+ public static void writeRDFJSON(OutputStream out, Graph graph)
+ { createRDFJSON().write(out, graph) ; }
+
+ /** Write a dataset as TriG
+ * @param out OutputStream
+ * @param dataset Dataset to write
+ */
+ public static void writeTrig(OutputStream out, Dataset dataset)
+ { writeTrig(out, dataset.asDatasetGraph()) ; }
+
+ /** Write a dataset as TriG
* @param out OutputStream
- * @param model Graph to write
- * @param lang Language for the seralization.
+ * @param dataset Dataset to write
*/
- public static void write(OutputStream out, Model model, Lang lang)
- {
- write(out, model.getGraph(), lang) ;
- }
-
- /** Write the model to the output stream for the language and variant of serialization.
- * @param out OutputStream
- * @param model Model to write
- * @param lang Language for the seralization.
- * @param variant Language seralization variant
- */
- public static void write(OutputStream out, Model model, Lang lang, WriterVariant variant)
- {
- write(out, model.getGraph(), lang, variant) ;
- }
-
- /** Write the model to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param model Model to write
- * @param serialization Serialization format
- */
- public static void write(OutputStream out, Model model, RDFSerialization serialization)
- {
- write(out, model.getGraph(), serialization) ;
- }
-
- /** Write the graph to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param graph Graph to write
- * @param lang Language for the seralization.
- */
- public static void write(OutputStream out, Graph graph, Lang lang)
- {
- RDFSerialization serialization = RDFWriterRegistry.defaultSerialization(lang) ;
- write(out, graph, serialization) ;
- }
-
- /** Write the graph to the output stream for the language and variant of serialization.
- * @param out OutputStream
- * @param graph Graph to write
- * @param lang Language for the seralization.
- * @param variant Language seralization variant
- */
- public static void write(OutputStream out, Graph graph, Lang lang, WriterVariant variant)
- {
- RDFSerialization serialization = new RDFSerialization(lang, variant) ;
- write(out, graph, serialization) ;
- }
-
- /** Write the graph to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param graph Graph to write
- * @param serialization Serialization format
- */
- public static void write(OutputStream out, Graph graph, RDFSerialization serialization)
- {
- WriterRIOTFactory wf = RDFWriterRegistry.getWriterFactory(serialization) ;
- RiotSerializer w = wf.create(out, graph, serialization) ;
- w.write() ;
- }
-
- /** Write the Dataset to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param dataset Dataset to write
- * @param lang Language for the seralization.
- */
- public static void write(OutputStream out, Dataset dataset, Lang lang)
- {
- write(out, dataset.asDatasetGraph(), lang) ;
- }
-
- /** Write the graph to the output stream for the language and variant of serialization.
- * @param out OutputStream
- * @param dataset Dataset to write
- * @param lang Language for the seralization.
- * @param variant Language seralization variant
- */
- public static void write(OutputStream out, Dataset dataset, Lang lang, WriterVariant variant)
- {
- write(out, dataset.asDatasetGraph(), lang, variant) ;
- }
-
- /** Write the graph to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param dataset Dataset to write
- * @param serialization Serialization format
- */
- public static void write(OutputStream out, Dataset dataset, RDFSerialization serialization)
- {
- write(out, dataset.asDatasetGraph(), serialization) ;
- }
-
- /** Write the DatasetGraph to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param dataset DatasetGraph to write
- * @param lang Language for the seralization.
- */
- public static void write(OutputStream out, DatasetGraph dataset, Lang lang)
- {
- RDFSerialization serialization = RDFWriterRegistry.defaultSerialization(lang) ;
- write(out, dataset, serialization) ;
- }
-
- /** Write the graph to the output stream for the language and variant of serialization.
- * @param out OutputStream
- * @param dataset DatasetGraph to write
- * @param lang Language for the seralization.
- * @param variant Language seralization variant
- */
- public static void write(OutputStream out, DatasetGraph dataset, Lang lang, WriterVariant variant)
- {
- RDFSerialization serialization = new RDFSerialization(lang, variant) ;
- write(out, dataset, serialization) ;
- }
-
- /** Write the graph to the output stream in the default serialization for the language.
- * @param out OutputStream
- * @param dataset DatasetGraph to write
- * @param serialization Serialization format
- */
- public static void write(OutputStream out, DatasetGraph dataset, RDFSerialization serialization)
- {
- WriterRIOTFactory wf = RDFWriterRegistry.getWriterFactory(serialization) ;
- throw new NotImplemented() ;
-// RiotSerializer w = null ; //??
-// w.write() ;
- }
+ public static void writeTrig(OutputStream out, DatasetGraph dataset)
+ { createTrig().write(out, dataset) ; }
+ /** Write a dataset as TriG, using a streaming writer
+ * @param out OutputStream
+ * @param dataset Dataset to write
+ */
+ public static void writeTrigStreaming(OutputStream out, Dataset dataset)
+ { writeTrigStreaming(out, dataset.asDatasetGraph()) ; }
+
+ /** Write a dataset as TriG, using a streaming writer
+ * @param out OutputStream
+ * @param dataset Dataset to write
+ */
+ public static void writeTrigStreaming(OutputStream out, DatasetGraph dataset)
+ { createTrigStreaming().write(out, dataset) ; }
+
+ /** Write a dataset as NQuads
+ * @param out OutputStream
+ * @param dataset Dataset to write
+ */
+ public static void writeNQuads(OutputStream out, Dataset dataset)
+ { writeNQuads(out, dataset.asDatasetGraph()) ; }
+
+ /** Write a dataset as NQuads
+ * @param out OutputStream
+ * @param dataset Dataset to write
+ */
+ public static void writeNQuads(OutputStream out, DatasetGraph dataset)
+ { createNQuads().write(out, dataset) ; }
+
+ // ---- Create writers
+
+ /** Create a Turtle writer */
+ public static WriterGraphRIOT createTurtle() { return new TurtleWriter() ; }
+
+ /** Create a streaming Turtle writer */
+ public static WriterGraphRIOT createTurtleStreaming() { return new TurtleWriterBlocks() ; }
+
+ /** Create a streaming Turtle outputing one triple per line using Turtle abbreviations */
+ public static WriterGraphRIOT createTurtleFlat() { return new TurtleWriterFlat() ; }
+
+ /** Create an N-Triples writer */
+ public static WriterGraphRIOT createNTriples() { return new NTriplesWriter() ; }
+
+ /** Create an RDF/XML writer which pretty-prints */
+ public static WriterGraphRIOT createRDFXMLAbbrev() { return new RDFXMLAbbrevWriter() ; }
+
+ /** Create an RDF/XML writer which does not pretty-print */
+ public static WriterGraphRIOT createRDFXMLPlain() { return new RDFXMLPlainWriter() ; }
+
+ /** Create an RDF/JSON writer */
+ public static WriterGraphRIOT createRDFJSON() { return new RDFJSONWriter() ; }
+
+ /** Create a TriG writer */
+ public static WriterDatasetRIOT createTrig() { return new TriGWriter() ; }
+
+ /** Create a TriG writer that streams */
+ public static WriterDatasetRIOT createTrigStreaming() { return new TriGWriterBlocks() ; }
+
+ /** Create a TriG writer that writes one quad per line in Trig, using abbreviated forms */
+ public static WriterDatasetRIOT createTrigFlat() { return new TriGWriterFlat() ; }
+
+ /** Create an NQuads writer */
+ public static WriterDatasetRIOT createNQuads() { return new NQuadsWriter() ; }
+
}
Added: jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOT.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.system.PrefixMap ;
+
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+
+/**
+ * A RIOT serializer for a language.
+ * This covers both graphs and datasets.
+ * A WriterRIOT is a one-time use object (they may accumulate state, e.g. pretty writers).
+ */
+public interface WriterDatasetRIOT
+{
+ public void write(OutputStream out, DatasetGraph datasetGraph) ;
+
+ public void write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap) ;
+
+ public void write(OutputStream out, DatasetGraph datasetGraph, String baseURI) ;
+
+ public void write(OutputStream out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI) ;
+
+ /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format */
+ public void write(Writer out, DatasetGraph datasetGraph) ;
+
+ public void write(Writer out, DatasetGraph datasetGraph, PrefixMap prefixMap, String baseURI) ;
+
+ public Lang getLang() ;
+}
Added: jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTBase.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTBase.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTBase.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+
+import org.apache.jena.riot.system.PrefixMap ;
+import org.apache.jena.riot.system.PrefixMapFactory ;
+
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+
+public abstract class WriterDatasetRIOTBase implements WriterDatasetRIOT
+{
+ private static PrefixMap prefixMap(DatasetGraph dataset)
+ {
+ return PrefixMapFactory.create(dataset.getDefaultGraph().getPrefixMapping()) ;
+ }
+
+ @Override
+ public void write(OutputStream out, DatasetGraph dataset)
+ { write(out, dataset, prefixMap(dataset), null) ; }
+
+ @Override
+ public void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap)
+ { write(out, dataset, prefixMap, null) ; }
+
+ @Override
+ public void write(OutputStream out, DatasetGraph dataset, String baseURI)
+ { write(out, dataset, prefixMap(dataset), baseURI) ; }
+
+ @Override
+ public void write(Writer out, DatasetGraph dataset)
+ { write(out, dataset, prefixMap(dataset), null) ; }
+
+ @Override
+ public abstract void write(Writer out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI) ;
+
+ @Override
+ public abstract void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI) ;
+}
Added: jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTFactory.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTFactory.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTFactory.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterDatasetRIOTFactory.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot;
+
+/** Factory for creating dataset writers */
+public interface WriterDatasetRIOTFactory
+{
+ public WriterDatasetRIOT create(RDFFormat syntaxForm) ;
+}
Copied: jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java (from r1443261, jena/Experimental/riot-output/src/main/java/riot/RiotSerializer.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java?p2=jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java&p1=jena/Experimental/riot-output/src/main/java/riot/RiotSerializer.java&r1=1443261&r2=1444417&rev=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/RiotSerializer.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOT.java Sat Feb 9 20:01:44 2013
@@ -18,18 +18,33 @@
package riot;
+import java.io.OutputStream ;
+import java.io.Writer ;
+
import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.system.PrefixMap ;
+
+import com.hp.hpl.jena.graph.Graph ;
/**
- * A RIOT serilaizer for a language
+ * A RIOT serializer for a language.
+ * This covers both graphs and datasets.
+ * A WriterRIOT is a one-time use object (they may accumulate state, e.g. pretty writers).
*/
-public interface RiotSerializer
+public interface WriterGraphRIOT
{
- /**
- * Perform the output process
- */
- public void write() ;
- public Lang getLang() ;
+ public void write(OutputStream out, Graph graph) ;
+
+ public void write(OutputStream out, Graph graph, PrefixMap prefixMap) ;
+
+ public void write(OutputStream out, Graph graph, String baseURI) ;
+
+ public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+
+ /** Use of Writer is discouraged - let the serializer manage character sets in accordance with the format */
+ public void write(Writer out, Graph graph) ;
+
+ public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI) ;
- // Profile?
+ public Lang getLang() ;
}
Added: jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTBase.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTBase.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTBase.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+
+import org.apache.jena.riot.system.PrefixMap ;
+import org.apache.jena.riot.system.PrefixMapFactory ;
+
+import com.hp.hpl.jena.graph.Graph ;
+
+public abstract class WriterGraphRIOTBase implements WriterGraphRIOT
+{
+ private static PrefixMap prefixMap(Graph graph)
+ {
+ return PrefixMapFactory.create(graph.getPrefixMapping()) ;
+ }
+
+ @Override
+ public void write(OutputStream out, Graph graph)
+ { write(out, graph, prefixMap(graph), null) ; }
+
+ @Override
+ public void write(OutputStream out, Graph graph, PrefixMap prefixMap)
+ { write(out, graph, prefixMap, null) ; }
+
+ @Override
+ public void write(OutputStream out, Graph graph, String baseURI)
+ { write(out, graph, prefixMap(graph), baseURI) ; }
+
+ @Override
+ public void write(Writer out, Graph graph)
+ { write(out, graph, prefixMap(graph), null) ; }
+
+ @Override
+ public abstract void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+
+ @Override
+ public abstract void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI) ;
+}
Copied: jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTFactory.java (from r1443261, jena/Experimental/riot-output/src/main/java/riot/WriterRIOTFactory.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTFactory.java?p2=jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTFactory.java&p1=jena/Experimental/riot-output/src/main/java/riot/WriterRIOTFactory.java&r1=1443261&r2=1444417&rev=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/WriterRIOTFactory.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/WriterGraphRIOTFactory.java Sat Feb 9 20:01:44 2013
@@ -18,12 +18,8 @@
package riot;
-import java.io.OutputStream ;
-
-import com.hp.hpl.jena.graph.Graph ;
-
-/** Factory for creating writers (usually one-time use but see a particular writer for details) */
-public interface WriterRIOTFactory
+/** Factory for creating graph writers */
+public interface WriterGraphRIOTFactory
{
- public RiotSerializer create(OutputStream out, Graph graph, RDFSerialization syntaxForm) ;
+ public WriterGraphRIOT create(RDFFormat syntaxForm) ;
}
Added: jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/adpaters/RDFWriterRIOT.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot.adpaters;
+
+import java.io.OutputStream ;
+import java.io.Writer ;
+import java.util.HashMap ;
+import java.util.Map ;
+
+import riot.RDFFormat ;
+import riot.RDFWriterMgr ;
+
+import com.hp.hpl.jena.n3.N3JenaWriter ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.RDFErrorHandler ;
+import com.hp.hpl.jena.rdf.model.RDFWriter ;
+
+// To adapater a package-->
+public class RDFWriterRIOT implements RDFWriter
+{
+ static Map<String, RDFFormat> mapJenaNameToFormat = new HashMap<>() ;
+ static {
+ mapJenaNameToFormat.put("RDF/XML", RDFFormat.RDFXMLPlain) ;
+ mapJenaNameToFormat.put("RDF/XML-ABBREV", RDFFormat.RDFXMLAbbrev) ;
+ mapJenaNameToFormat.put("N-TRIPLE", RDFFormat.NTriples) ;
+ mapJenaNameToFormat.put("N-TRIPLES", RDFFormat.NTriples) ;
+ mapJenaNameToFormat.put("N3", RDFFormat.Turtle) ;
+ mapJenaNameToFormat.put(N3JenaWriter.n3WriterPrettyPrinter, RDFFormat.TurtlePretty) ;
+ mapJenaNameToFormat.put(N3JenaWriter.n3WriterPlain, RDFFormat.TurtleBlocks) ;
+ mapJenaNameToFormat.put(N3JenaWriter.n3WriterTriples, RDFFormat.TurtleFlat) ;
+ mapJenaNameToFormat.put(N3JenaWriter.n3WriterTriplesAlt, RDFFormat.TurtleFlat) ;
+ mapJenaNameToFormat.put(N3JenaWriter.turtleWriter, RDFFormat.Turtle) ;
+ mapJenaNameToFormat.put(N3JenaWriter.turtleWriterAlt1, RDFFormat.Turtle) ;
+ mapJenaNameToFormat.put(N3JenaWriter.turtleWriterAlt2, RDFFormat.Turtle) ;
+ }
+
+ private RDFFormat format ;
+
+ public RDFWriterRIOT(RDFFormat format) { this.format = format ; }
+
+ public RDFWriterRIOT(String jenaName) { this(jenaName, mapJenaNameToFormat.get(jenaName)) ; }
+
+ public RDFWriterRIOT(String jenaName, RDFFormat format) { this.format = format ; }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public void write(Model model, Writer out, String base)
+ {
+ RDFWriterMgr.write(out, model, format) ;
+ }
+
+ @Override
+ public void write(Model model, OutputStream out, String base)
+ {
+ RDFWriterMgr.write(out, model, format) ;
+ }
+
+ @Override
+ public Object setProperty(String propName, Object propValue)
+ {
+ return null ;
+ }
+
+ @Override
+ public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
+ {
+ return null ;
+ }
+}
Added: jena/Experimental/riot-output/src/main/java/riot/system/IO_Jena2.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/system/IO_Jena2.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/system/IO_Jena2.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/system/IO_Jena2.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,83 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot.system;
+
+import riot.adpaters.RDFWriterRIOT ;
+
+import com.hp.hpl.jena.Jena ;
+import com.hp.hpl.jena.n3.N3JenaWriter ;
+import com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl ;
+
+public class IO_Jena2
+{
+ // Jena writer adapters
+ public static class RDFWriterRIOT_RDFXML extends RDFWriterRIOT { public RDFWriterRIOT_RDFXML() { super("RDF/XML") ; } }
+ public static class RDFWriterRIOT_RDFXMLAbbrev extends RDFWriterRIOT { public RDFWriterRIOT_RDFXMLAbbrev() { super("RDF/XML-ABBREV") ; } }
+ public static class RDFWriterRIOT_NTriple extends RDFWriterRIOT { public RDFWriterRIOT_NTriple() { super("N-TRIPLE") ; } }
+ public static class RDFWriterRIOT_NTriples extends RDFWriterRIOT { public RDFWriterRIOT_NTriples() { super("N-TRIPLES") ; } }
+ public static class RDFWriterRIOT_N3 extends RDFWriterRIOT { public RDFWriterRIOT_N3() { super("N3") ; } }
+ public static class RDFWriterRIOT_N3_PP extends RDFWriterRIOT { public RDFWriterRIOT_N3_PP() { super(N3JenaWriter.n3WriterPrettyPrinter) ; } }
+ public static class RDFWriterRIOT_N3Plain extends RDFWriterRIOT { public RDFWriterRIOT_N3Plain() { super(N3JenaWriter.n3WriterPlain) ; } }
+ public static class RDFWriterRIOT_N3Triples extends RDFWriterRIOT { public RDFWriterRIOT_N3Triples() { super(N3JenaWriter.n3WriterTriples) ; } }
+ public static class RDFWriterRIOT_N3TriplesAlt extends RDFWriterRIOT { public RDFWriterRIOT_N3TriplesAlt() { super(N3JenaWriter.n3WriterTriplesAlt) ; } }
+ public static class RDFWriterRIOT_Turtle extends RDFWriterRIOT { public RDFWriterRIOT_Turtle() { super(N3JenaWriter.turtleWriter) ; } }
+ public static class RDFWriterRIOT_Turtle1 extends RDFWriterRIOT { public RDFWriterRIOT_Turtle1() { super(N3JenaWriter.turtleWriterAlt1) ; } }
+ public static class RDFWriterRIOT_Turtle2 extends RDFWriterRIOT { public RDFWriterRIOT_Turtle2() { super(N3JenaWriter.turtleWriterAlt2) ; } }
+
+ public static void wireIntoJenaW()
+ {
+// RDFWriterFImpl.LANGS
+// RDFWriterFImpl.DEFAULTWRITER
+ RDFWriterFImpl.setBaseWriterClassName("RDF/XML", RDFWriterRIOT_RDFXML.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName("RDF/XML", RDFWriterRIOT_RDFXML.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName("RDF/XML-ABBREV", RDFWriterRIOT_RDFXMLAbbrev.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName("N-TRIPLE", RDFWriterRIOT_NTriple.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName("N-TRIPLES", RDFWriterRIOT_NTriples.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName("N3", RDFWriterRIOT_N3.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPrettyPrinter, RDFWriterRIOT_N3_PP.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPlain, RDFWriterRIOT_N3Plain.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterTriples, RDFWriterRIOT_N3Triples.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterTriplesAlt, RDFWriterRIOT_N3TriplesAlt.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriter, RDFWriterRIOT_Turtle.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt1, RDFWriterRIOT_Turtle1.class.getName()) ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt2, RDFWriterRIOT_Turtle2.class.getName()) ;
+ }
+
+ public static void resetJenaW()
+ {
+ // This is the old Jena configuration (bugs and all)
+ RDFWriterFImpl.setBaseWriterClassName("RDF/XML", Jena.PATH + ".xmloutput.impl.Basic") ;
+ RDFWriterFImpl.setBaseWriterClassName("RDF/XML-ABBREV", Jena.PATH + ".xmloutput.impl.Abbreviated") ;
+
+ RDFWriterFImpl.setBaseWriterClassName("N-TRIPLE", Jena.PATH + ".rdf.model.impl.NTripleWriter") ;
+ RDFWriterFImpl.setBaseWriterClassName("N-TRIPLES", Jena.PATH + ".rdf.model.impl.NTripleWriter") ;
+
+ RDFWriterFImpl.setBaseWriterClassName("N3", Jena.PATH + ".n3.N3JenaWriter") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPrettyPrinter, Jena.PATH + ".n3.N3JenaWriterPP") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPlain, Jena.PATH + ".n3.N3TurtleJenaWriter") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterTriples, Jena.PATH + ".n3.N3TurtleJenaWriter") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterTriplesAlt, Jena.PATH + ".n3.N3JenaWriterTriples") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriter, Jena.PATH + ".n3.N3TurtleJenaWriter") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt1, Jena.PATH + ".n3.N3TurtleJenaWriter") ;
+ RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt2, Jena.PATH + ".n3.N3TurtleJenaWriter") ;
+
+ }
+
+}
+
Added: jena/Experimental/riot-output/src/main/java/riot/system/IndentedWriterWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/system/IndentedWriterWriter.java?rev=1444417&view=auto
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/system/IndentedWriterWriter.java (added)
+++ jena/Experimental/riot-output/src/main/java/riot/system/IndentedWriterWriter.java Sat Feb 9 20:01:44 2013
@@ -0,0 +1,30 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riot.system;
+
+import java.io.Writer ;
+
+import org.apache.jena.atlas.io.IndentedWriter ;
+
+/** Hide Writers */
+public class IndentedWriterWriter extends IndentedWriter
+{
+ public static IndentedWriter create(Writer writer) { return new IndentedWriterWriter(writer) ; }
+ private IndentedWriterWriter(Writer w) { super(w) ; }
+}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java?rev=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/NQuadsWriter.java Sat Feb 9 20:01:44 2013
@@ -19,33 +19,51 @@
package riot.writer;
import java.io.OutputStream ;
+import java.io.Writer ;
import java.util.Iterator ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
+import riot.WriterDatasetRIOTBase ;
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.core.Quad ;
-public class NQuadsWriter
+public class NQuadsWriter extends WriterDatasetRIOTBase
{
- public static void write(OutputStream out, DatasetGraph dsg)
- {
- write(out, dsg.find(Node.ANY, Node.ANY, Node.ANY, Node.ANY)) ;
- }
-
- public static void write(OutputStream out, Dataset dsg)
+ public static void write(OutputStream out, Iterator<Quad> iter)
{
- write(out, dsg.asDatasetGraph()) ;
+ StreamRDF s = new WriterStreamRDFTuples(out) ;
+ s.start() ;
+ StreamRDFLib.quadsToStream(s, iter) ;
+ s.finish();
}
- public static void write(OutputStream out, Iterator<Quad> iter)
+ public static void write(Writer out, Iterator<Quad> iter)
{
StreamRDF s = new WriterStreamRDFTuples(out) ;
s.start() ;
StreamRDFLib.quadsToStream(s, iter) ;
s.finish();
}
+
+ @Override
+ public Lang getLang()
+ {
+ return Lang.NQUADS ;
+ }
+
+ @Override
+ public void write(Writer out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI)
+ {
+ write(out, dataset.find(null, null, null, null)) ;
+ }
+
+ @Override
+ public void write(OutputStream out, DatasetGraph dataset, PrefixMap prefixMap, String baseURI)
+ {
+ write(out, dataset.find(null, null, null, null)) ;
+ }
}
Modified: jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java?rev=1444417&r1=1444416&r2=1444417&view=diff
==============================================================================
--- jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java (original)
+++ jena/Experimental/riot-output/src/main/java/riot/writer/NTriplesWriter.java Sat Feb 9 20:01:44 2013
@@ -19,33 +19,51 @@
package riot.writer;
import java.io.OutputStream ;
+import java.io.Writer ;
import java.util.Iterator ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
+import riot.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.rdf.model.Model ;
-public class NTriplesWriter
+public class NTriplesWriter extends WriterGraphRIOTBase
{
- public static void write(OutputStream out, Model model)
- {
- write(out, model.getGraph()) ;
- }
-
- public static void write(OutputStream out, Graph graph)
+ public static void write(OutputStream out, Iterator<Triple> iter)
{
- write(out, graph.find(Node.ANY, Node.ANY, Node.ANY)) ;
+ StreamRDF s = new WriterStreamRDFTuples(out) ;
+ s.start() ;
+ StreamRDFLib.triplesToStream(s, iter) ;
+ s.finish();
}
- public static void write(OutputStream out, Iterator<Triple> iter)
+ public static void write(Writer out, Iterator<Triple> iter)
{
StreamRDF s = new WriterStreamRDFTuples(out) ;
s.start() ;
StreamRDFLib.triplesToStream(s, iter) ;
- s.finish() ;
+ s.finish();
+ }
+
+ @Override
+ public Lang getLang()
+ {
+ return Lang.NTRIPLES ;
+ }
+
+ @Override
+ public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI)
+ {
+ write(out, graph.find(null, null, null)) ;
+ }
+
+ @Override
+ public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI)
+ {
+ write(out, graph.find(null, null, null)) ;
}
}