You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/03/11 23:57:10 UTC
svn commit: r1455357 - in
/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot:
adapters/JenaReadersWriters.java adapters/RDFReaderRIOT.java
adapters/RDFWriterRIOT.java system/IO_JenaWriters.java
Author: andy
Date: Mon Mar 11 22:57:09 2013
New Revision: 1455357
URL: http://svn.apache.org/r1455357
Log:
Maximise model.writer(RDF?XML) compatibility by using old-style writers (so properties work).
Clean up.
Modified:
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java?rev=1455357&r1=1455356&r2=1455357&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java Mon Mar 11 22:57:09 2013
@@ -18,17 +18,30 @@
package org.apache.jena.riot.adapters;
+import com.hp.hpl.jena.n3.N3JenaWriter ;
+
public class JenaReadersWriters
{
-
- // Yukky hack to integrate into current jena-core where the structure of model.read assumes
- // the language is determined before the reading process starts.
// Temporary - eventually, replace all model.read calls with the correct call to RIOT
// and then the common RDFReaderRIOT can be used.
- public static class RDFReaderRIOT_RDFXML extends RDFReaderRIOT { public RDFReaderRIOT_RDFXML() { super("RDF/XML") ; } }
- public static class RDFReaderRIOT_TTL extends RDFReaderRIOT { public RDFReaderRIOT_TTL() { super("TTL") ; } }
- public static class RDFReaderRIOT_NT extends RDFReaderRIOT { public RDFReaderRIOT_NT() { super("N-TRIPLE") ; } }
- public static class RDFReaderRIOT_RDFJSON extends RDFReaderRIOT { public RDFReaderRIOT_RDFJSON() { super("RDF/JSON") ; } }
-
+
+ public static class RDFReaderRIOT_RDFXML extends RDFReaderRIOT { public RDFReaderRIOT_RDFXML() { super("RDF/XML") ; } }
+ public static class RDFReaderRIOT_TTL extends RDFReaderRIOT { public RDFReaderRIOT_TTL() { super("TTL") ; } }
+ public static class RDFReaderRIOT_NT extends RDFReaderRIOT { public RDFReaderRIOT_NT() { super("N-TRIPLE") ; } }
+ public static class RDFReaderRIOT_RDFJSON extends RDFReaderRIOT { public RDFReaderRIOT_RDFJSON() { super("RDF/JSON") ; } }
+
+ // Unused - we use the originsl RDF/XML writers directly to preserve property setting.
+// 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_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 class RDFWriterRIOT_RDFJSON extends RDFWriterRIOT { public RDFWriterRIOT_RDFJSON() { super("RDF/JSON") ; } }
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java?rev=1455357&r1=1455356&r2=1455357&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java Mon Mar 11 22:57:09 2013
@@ -38,18 +38,17 @@ public class RDFReaderRIOT implements RD
private final String basename ; // This will be per reader instance.
private final String hintlang ;
private Context context = new Context() ;
-
- RDFErrorHandler errorHandler = new RDFDefaultErrorHandler();
+ private RDFErrorHandler errorHandler = new RDFDefaultErrorHandler();
public RDFReaderRIOT()
{
- basename = "org.apache.jena.lang.generic" ;
+ basename = "org.apache.jena.riot.reader.generic" ;
hintlang = null ;
}
public RDFReaderRIOT(String lang)
{
- basename = "org.apache.jena.lang."+lang.toLowerCase(Locale.ENGLISH) ;
+ basename = "org.apache.jena.riot.reader."+lang.toLowerCase(Locale.ENGLISH) ;
hintlang = lang ;
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java?rev=1455357&r1=1455356&r2=1455357&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java Mon Mar 11 22:57:09 2013
@@ -20,6 +20,7 @@ package org.apache.jena.riot.adapters;
import java.io.OutputStream ;
import java.io.Writer ;
+import java.util.Locale ;
import org.apache.jena.riot.* ;
import org.apache.jena.riot.system.IO_JenaWriters ;
@@ -29,22 +30,49 @@ import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.rdf.model.RDFErrorHandler ;
import com.hp.hpl.jena.rdf.model.RDFWriter ;
+import com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler ;
import com.hp.hpl.jena.sparql.util.Context ;
+import com.hp.hpl.jena.sparql.util.Symbol ;
/** Adapter from RIOT to old style Jena RDFWriter. */
public class RDFWriterRIOT implements RDFWriter
{
+ private final String basename ;
private final String jenaName ;
private Context context = new Context() ;
+ private WriterGraphRIOT writer ;
+ private RDFErrorHandler errorHandler = new RDFDefaultErrorHandler();
+
+// public RDFWriterRIOT() {
+// this.basename = "org.apache.jena.riot.writer.generic" ;
+// this.jenaName = null ;
+// writer = writer() ;
+// }
public RDFWriterRIOT(String jenaName)
{
+ this.basename = "org.apache.jena.riot.writer."+jenaName.toLowerCase(Locale.ENGLISH) ;
this.jenaName = jenaName ;
}
- //Initial late to avoid confusing exceptions during newInstance.
+ //Initialize late to avoid confusing exceptions during newInstance.
private WriterGraphRIOT writer()
{
+ if ( writer != null )
+ return writer ;
+ if ( jenaName == null )
+ throw new IllegalArgumentException("Jena writer name is null") ;
+ writer = setWriter() ;
+ return writer ;
+ }
+
+ // Delayed lookup (avoid problems in newInstance).
+ private WriterGraphRIOT setWriter()
+ {
+ if ( writer != null )
+ return writer ;
+ if ( jenaName == null )
+ throw new IllegalArgumentException("Jena writer name is null") ;
RDFFormat format = IO_JenaWriters.getFormatForJenaWriter(jenaName) ;
if ( format != null )
return RDFDataMgr.createGraphWriter(format) ;
@@ -76,12 +104,16 @@ public class RDFWriterRIOT implements RD
@Override
public Object setProperty(String propName, Object propValue)
{
- return null ;
+ Symbol sym = Symbol.create(basename+propName) ;
+ Object oldObj = context.get(sym) ;
+ return oldObj ;
}
-
+
@Override
public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
{
- return null ;
+ RDFErrorHandler old = errorHandler ;
+ errorHandler = errHandler ;
+ return old ;
}
}
Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java?rev=1455357&r1=1455356&r2=1455357&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java Mon Mar 11 22:57:09 2013
@@ -23,29 +23,15 @@ import java.util.HashMap ;
import java.util.Map ;
import org.apache.jena.riot.RDFFormat ;
-import org.apache.jena.riot.adapters.RDFWriterRIOT ;
import com.hp.hpl.jena.Jena ;
import com.hp.hpl.jena.n3.N3JenaWriter ;
import com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl ;
+import static org.apache.jena.riot.adapters.JenaReadersWriters.* ;
+
public class IO_JenaWriters
{
- // Jena writer adapters
- // To adapters.JenaReadersWriters
- 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_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 class RDFWriterRIOT_RDFJSON extends RDFWriterRIOT { public RDFWriterRIOT_RDFJSON() { super("RDF/JSON") ; } }
-
private static Map<String, RDFFormat> mapJenaNameToFormat = new HashMap<String, RDFFormat>() ;
/** return the RDFFormat for the existing Jena writer name, or null */
@@ -77,15 +63,18 @@ public class IO_JenaWriters
setFormatForJenaWriter("RDF/JSON", RDFFormat.RDFJSON) ;
setFormatForJenaWriter("RDFJSON", RDFFormat.RDFJSON) ;
-// RDFWriterFImpl.LANGS
-// RDFWriterFImpl.DEFAULTWRITER
- registerForModelWrite("RDF/XML", RDFWriterRIOT_RDFXML.class) ;
- registerForModelWrite("RDF/XML-ABBREV", RDFWriterRIOT_RDFXMLAbbrev.class) ;
- registerForModelWrite("N-TRIPLE", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("N-TRIPLES", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("N-Triples", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("NT", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("N3", RDFWriterRIOT_N3.class) ;
+ //registerForModelWrite("RDF/XML", RDFWriterRIOT_RDFXML.class) ;
+ //registerForModelWrite("RDF/XML-ABBREV", RDFWriterRIOT_RDFXMLAbbrev.class) ;
+
+ // Use the original classes so that setting properties works transparently.
+ registerForModelWrite("RDF/XML", com.hp.hpl.jena.xmloutput.impl.Basic.class) ;
+ registerForModelWrite("RDF/XML-ABBREV", com.hp.hpl.jena.xmloutput.impl.Abbreviated.class) ;
+
+ registerForModelWrite("N-TRIPLE", RDFWriterRIOT_NTriples.class) ;
+ registerForModelWrite("N-TRIPLES", RDFWriterRIOT_NTriples.class) ;
+ registerForModelWrite("N-Triples", RDFWriterRIOT_NTriples.class) ;
+ registerForModelWrite("NT", RDFWriterRIOT_NTriples.class) ;
+ registerForModelWrite("N3", RDFWriterRIOT_N3.class) ;
registerForModelWrite(N3JenaWriter.n3WriterPrettyPrinter, RDFWriterRIOT_N3_PP.class) ;
registerForModelWrite(N3JenaWriter.n3WriterPlain, RDFWriterRIOT_N3Plain.class) ;