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 2016/04/22 20:16:58 UTC
jena git commit: JENA-1168 : Add support for old-style writer
properties.
Repository: jena
Updated Branches:
refs/heads/master 316772cee -> 0b506715c
JENA-1168 : Add support for old-style writer properties.
This applied to writers run by RIOT via an adapter.
Currently that's the XML writers.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0b506715
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0b506715
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0b506715
Branch: refs/heads/master
Commit: 0b506715c64a086b85565e8b01c0a87ef5e4d044
Parents: 316772c
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Apr 22 19:16:25 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Apr 22 19:16:25 2016 +0100
----------------------------------------------------------------------
.../main/java/org/apache/jena/riot/SysRIOT.java | 13 ++++-------
.../jena/riot/adapters/AdapterRDFWriter.java | 18 +++++++++++++++
.../jena/riot/adapters/RDFWriterRIOT.java | 24 ++++++--------------
3 files changed, 30 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/0b506715/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java
index f19417f..33c5b52a 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java
@@ -19,8 +19,8 @@
package org.apache.jena.riot;
import org.apache.jena.atlas.lib.IRILib ;
-import org.apache.jena.base.Sys ;
import org.apache.jena.riot.system.IRIResolver ;
+import org.apache.jena.sparql.util.Symbol ;
import org.apache.jena.util.FileUtils ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -39,14 +39,11 @@ public class SysRIOT
* where the unnormalized part is in a prefix name changes the outcome.
* Jena has always normalized abolute URIs.
*/
- public static boolean AbsURINoNormalization = false ;
- public static final String BNodeGenIdPrefix = "genid" ;
+ public static final boolean AbsURINoNormalization = false ;
+ public static final String BNodeGenIdPrefix = "genid" ;
- /**
- * @deprecated Use Sys.isWindows
- */
- @Deprecated
- public static final boolean isWindows = Sys.isWindows ;
+ /** Context key for old style RDFWriter properties */
+ public static final Symbol rdfWriterProperties = Symbol.create("riot.rdfWriter_properties") ;
public static void setStrictMode(boolean state) {
SysRIOT.strictMode = state ;
http://git-wip-us.apache.org/repos/asf/jena/blob/0b506715/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterRDFWriter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterRDFWriter.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterRDFWriter.java
index 5b20348..4eae2e5 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterRDFWriter.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/AdapterRDFWriter.java
@@ -20,11 +20,14 @@ package org.apache.jena.riot.adapters;
import java.io.OutputStream ;
import java.io.Writer ;
+import java.util.Map ;
+import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.rdf.model.ModelFactory ;
import org.apache.jena.rdf.model.RDFWriter ;
import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.SysRIOT ;
import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.writer.WriterGraphRIOTBase ;
import org.apache.jena.sparql.util.Context ;
@@ -41,6 +44,7 @@ public abstract class AdapterRDFWriter extends WriterGraphRIOTBase
public void write(Writer out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
{
RDFWriter w = create() ;
+ setProperties(w, context) ;
w.write(ModelFactory.createModelForGraph(graph), out, baseURI) ;
}
@@ -48,7 +52,21 @@ public abstract class AdapterRDFWriter extends WriterGraphRIOTBase
public void write(OutputStream out, Graph graph, PrefixMap prefixMap, String baseURI, Context context)
{
RDFWriter w = create() ;
+ setProperties(w, context) ;
w.write(ModelFactory.createModelForGraph(graph), out, baseURI) ;
}
+
+ private static void setProperties(RDFWriter w, Context context) {
+ try {
+ @SuppressWarnings("unchecked")
+ Map<String, Object> p = (Map<String, Object>)(context.get(SysRIOT.rdfWriterProperties)) ;
+ if ( p != null )
+ p.forEach((k,v) -> w.setProperty(k, v)) ;
+ } catch (Throwable ex) {
+ Log.warn(AdapterRDFWriter.class, "Problem setting properties", ex);
+ }
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/jena/blob/0b506715/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
index 3c9d53d..59a4b71 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
@@ -20,7 +20,9 @@ package org.apache.jena.riot.adapters;
import java.io.OutputStream ;
import java.io.Writer ;
+import java.util.HashMap ;
import java.util.Locale ;
+import java.util.Map ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.rdf.model.Model ;
@@ -39,35 +41,21 @@ public class RDFWriterRIOT implements RDFWriter
private final String basename ;
private final String jenaName ;
private Context context = new Context() ;
+ private Map<String, Object> properties = new HashMap<>() ;
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.ROOT);
this.jenaName = jenaName;
+ context.put(SysRIOT.rdfWriterProperties, properties);
}
- // 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;
- }
-
- private WriterGraphRIOT setWriter() {
- if ( writer != null )
- return writer;
- if ( jenaName == null )
- throw new IllegalArgumentException("Jena writer name is null");
// For writing via model.write(), use the old names for jena writers.
RDFFormat format = RDFWriterRegistry.getFormatForJenaWriter(jenaName) ;
if ( format != null )
@@ -96,8 +84,10 @@ public class RDFWriterRIOT implements RDFWriter
@Override
public Object setProperty(String propName, Object propValue) {
- Symbol sym = Symbol.create(basename + propName);
+ Symbol sym = Symbol.create(basename + "#" + propName);
Object oldObj = context.get(sym);
+ context.set(sym, propValue);
+ properties.put(propName, propValue) ;
return oldObj;
}