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 2020/11/18 13:58:10 UTC
[jena] branch master updated: JENA-1997: Remove old Turtle/N3 writer
This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/master by this push:
new d65ae5e JENA-1997: Remove old Turtle/N3 writer
new 6774bb3 Merge pull request #867 from afs/n3-writer
d65ae5e is described below
commit d65ae5ee8e2cfddd8f007d43fac614568effdf7e
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sun Nov 15 12:18:28 2020 +0000
JENA-1997: Remove old Turtle/N3 writer
Remaining Turtle parser supports jena-core tests.
Rename private TTL parser as org.apache.jena.ttl
Remove deprecated RDFFactoryF methods - includes changes to ModelCom.
---
.../jena/riot/adapters/RDFReaderFactoryRIOT.java | 15 -
.../jena/riot/adapters/RDFWriterFactoryRIOT.java | 16 -
.../jena/riot/lang/extra/TurtleParserBase.java | 2 +-
.../apache/jena/riot/system/IO_JenaWriters.java | 7 -
.../jena/riot/system/stream/StreamManager.java | 2 +-
.../org/apache/jena/sparql/lang/ParserBase.java | 2 +-
.../jena/riot/system/TestIO_JenaWriters.java | 9 +-
.../java/org/apache/jena/atlas/logging/Log.java | 3 +-
.../java/org/apache/jena/n3/N3IndentedWriter.java | 92 --
.../main/java/org/apache/jena/n3/N3JenaWriter.java | 169 ----
.../org/apache/jena/n3/N3JenaWriterCommon.java | 964 ---------------------
.../java/org/apache/jena/n3/N3JenaWriterPP.java | 633 --------------
.../java/org/apache/jena/n3/N3JenaWriterPlain.java | 29 -
.../org/apache/jena/n3/N3JenaWriterTriples.java | 64 --
.../org/apache/jena/n3/N3TurtleJenaWriter.java | 40 -
.../java/org/apache/jena/rdf/model/RDFReaderF.java | 25 -
.../java/org/apache/jena/rdf/model/RDFWriterF.java | 33 +-
.../org/apache/jena/rdf/model/impl/ModelCom.java | 43 -
.../apache/jena/rdf/model/impl/RDFReaderFImpl.java | 25 +-
.../apache/jena/rdf/model/impl/RDFWriterFImpl.java | 66 +-
.../apache/jena/{n3 => ttl}/JenaReaderBase.java | 2 +-
.../apache/jena/{n3 => ttl}/JenaURIException.java | 2 +-
.../org/apache/jena/{n3 => ttl}/N3IRIResolver.java | 2 +-
.../jena/{n3 => ttl}/RelativeURIException.java | 2 +-
.../java/org/apache/jena/{n3 => ttl}/package.html | 0
.../jena/{n3 => ttl}/turtle/LabelToNodeMap.java | 2 +-
.../apache/jena/{n3 => ttl}/turtle/ParserBase.java | 6 +-
.../jena/{n3 => ttl}/turtle/ParserTurtle.java | 8 +-
.../jena/{n3 => ttl}/turtle/Turtle2NTriples.java | 4 +-
.../jena/{n3 => ttl}/turtle/TurtleEventDump.java | 2 +-
.../{n3 => ttl}/turtle/TurtleEventHandler.java | 2 +-
.../jena/{n3 => ttl}/turtle/TurtleEventNull.java | 2 +-
.../{n3 => ttl}/turtle/TurtleParseException.java | 2 +-
.../{n3 => ttl}/turtle/TurtleRDFGraphInserter.java | 2 +-
.../jena/{n3 => ttl}/turtle/TurtleReader.java | 4 +-
.../{n3 => ttl}/turtle/parser/JavaCharStream.java | 2 +-
.../{n3 => ttl}/turtle/parser/ParseException.java | 2 +-
.../jena/{n3 => ttl}/turtle/parser/Token.java | 2 +-
.../{n3 => ttl}/turtle/parser/TokenMgrError.java | 2 +-
.../{n3 => ttl}/turtle/parser/TurtleParser.java | 4 +-
.../turtle/parser/TurtleParserConstants.java | 2 +-
.../turtle/parser/TurtleParserTokenManager.java | 2 +-
.../org/apache/jena/n3/N3ExternalTestsCom.java | 99 ---
.../java/org/apache/jena/n3/N3JenaWriterTests.java | 117 ---
.../test/java/org/apache/jena/n3/N3TestSuite.java | 40 -
.../apache/jena/rdf/model/test/TestModelRead.java | 2 +-
.../jena/rdf/model/test/TestRDFWriterMap.java | 16 +-
.../java/org/apache/jena/test/TestPackage.java | 3 +-
.../TestN3IRIResolver.java} | 6 +-
.../org/apache/jena/{n3 => ttl}/TupleItem.java | 2 +-
.../java/org/apache/jena/{n3 => ttl}/TupleSet.java | 2 +-
.../jena/{n3 => ttl}/turtle/TestBadSyntax.java | 2 +-
.../apache/jena/{n3 => ttl}/turtle/TestSyntax.java | 2 +-
.../apache/jena/{n3 => ttl}/turtle/TestTurtle.java | 2 +-
.../jena/{n3 => ttl}/turtle/TestTurtleReader.java | 2 +-
.../{n3 => ttl}/turtle/TurtleInternalTests.java | 4 +-
.../jena/{n3 => ttl}/turtle/TurtleTestFactory.java | 2 +-
.../jena/{n3 => ttl}/turtle/TurtleTestSuite.java | 2 +-
.../jena/{n3 => ttl}/turtle/TurtleTestVocab.java | 2 +-
.../org/apache/jena/util/junit/ManifestOld.java | 2 +-
.../jena/permissions/model/SecuredModel.java | 22 -
.../permissions/model/impl/SecuredModelImpl.java | 40 -
62 files changed, 68 insertions(+), 2598 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
index b49ee9c..2c1e24b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
@@ -36,19 +36,4 @@ public class RDFReaderFactoryRIOT implements RDFReaderF {
// For RIOT, the language name is a hint.
return new RDFReaderRIOT(langname);
}
-
- @Override
- public String setReaderClassName(String lang, String className) {
- return null;
- }
-
- @Override
- public void resetRDFReaderF() {
- // does nothing as the reader can not be modified.
- }
-
- @Override
- public String removeReader(String lang) throws IllegalArgumentException {
- return null;
- }
}
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java
index 7d6a730..2b66a03 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java
@@ -34,20 +34,4 @@ public class RDFWriterFactoryRIOT implements RDFWriterF {
public RDFWriter getWriter(String langname) {
return new RDFWriterRIOT(langname);
}
-
- @Override
- public String setWriterClassName(String lang, String className) {
- return null;
- }
-
- @Override
- public void resetRDFWriterF() {
- // does nothing as the reader can not be modified.
-
- }
-
- @Override
- public String removeWriter(String lang) {
- return null;
- }
}
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/TurtleParserBase.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/TurtleParserBase.java
index f7a7705..2588a84 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/TurtleParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/TurtleParserBase.java
@@ -25,7 +25,6 @@ import org.apache.jena.graph.Triple;
import org.apache.jena.iri.IRI;
import org.apache.jena.iri.IRIFactory;
import org.apache.jena.iri.ViolationCodes;
-import org.apache.jena.n3.JenaURIException;
import org.apache.jena.riot.RiotException;
import org.apache.jena.riot.RiotParseException;
import org.apache.jena.riot.system.IRIResolver;
@@ -34,6 +33,7 @@ import org.apache.jena.riot.system.StreamRDF;
import org.apache.jena.sparql.core.Prologue;
import org.apache.jena.sparql.graph.NodeConst;
import org.apache.jena.sparql.lang.ParserBase;
+import org.apache.jena.ttl.JenaURIException;
import org.apache.jena.vocabulary.RDF;
@SuppressWarnings("hiding")
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
index e8e287f..937dda4 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
@@ -39,12 +39,5 @@ public class IO_JenaWriters
isWiredIn = false ;
RDFWriterFImpl.alternative(null);
}
-
- /** Register for use with Model.write (old style compatibility) */
- @Deprecated
- public static void registerForModelWrite(String name, Class<?> cls)
- {
- RDFWriterFImpl.setBaseWriterClassName(name, cls.getName()) ;
- }
}
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java
index ff6aa4e..8adb72d 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/stream/StreamManager.java
@@ -60,7 +60,7 @@ public class StreamManager {
return streamManager ;
}
- /** @deprecate Use {@link #createStd()} */
+ /** @deprecated Use {@link #createStd()} */
@Deprecated
public static StreamManager makeDefaultStreamManager() { return createStd() ; }
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserBase.java
index c03e4f8..e3892ad 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserBase.java
@@ -32,7 +32,6 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.graph.Triple ;
import org.apache.jena.iri.IRI ;
-import org.apache.jena.n3.JenaURIException ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.QueryParseException ;
import org.apache.jena.riot.checker.CheckerIRI ;
@@ -52,6 +51,7 @@ import org.apache.jena.sparql.path.Path ;
import org.apache.jena.sparql.syntax.* ;
import org.apache.jena.sparql.util.ExprUtils ;
import org.apache.jena.sparql.util.LabelToNodeMap ;
+import org.apache.jena.ttl.JenaURIException;
import org.apache.jena.vocabulary.RDF ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java b/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
index fde180a..7656ce7 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
@@ -69,10 +69,11 @@ public class TestIO_JenaWriters {
assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N-Triples").getClass());
assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N-TRIPLE").getClass());
- assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N3").getClass());
- assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("TURTLE").getClass());
- assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("Turtle").getClass());
- assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("TTL").getClass());
+ //N3 , Turtle in jena-core removed.
+// assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N3").getClass());
+// assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("TURTLE").getClass());
+// assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("Turtle").getClass());
+// assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("TTL").getClass());
try { writerF.getWriter("NT"); fail("Exception expected") ; } catch (NoWriterForLangException ex) {}
try { writerF.getWriter("RDF/JSON") ; fail("Exception expected") ; } catch (NoWriterForLangException ex) {}
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/logging/Log.java b/jena-base/src/main/java/org/apache/jena/atlas/logging/Log.java
index c89749c..2453e5b 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/logging/Log.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/logging/Log.java
@@ -28,7 +28,8 @@ import org.slf4j.LoggerFactory ;
* operations find/create the logger by name, or by the class of some object, or an
* org.slf4j.Logger object.
*
- * @See FmtLog
+ * @see LogCtl
+ * @see FmtLog
*/
public class Log {
private Log() {}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3IndentedWriter.java b/jena-core/src/main/java/org/apache/jena/n3/N3IndentedWriter.java
deleted file mode 100644
index bbbf28e..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3IndentedWriter.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-import java.io.* ;
-
-import org.apache.jena.JenaRuntime ;
-import org.apache.jena.shared.JenaException ;
-
-/** Simple class that provides output with moving left margin.
- * Does not cope with tabs or newlines in output strings.
- */
-
-// Not robust/complete enough for public use
-public class N3IndentedWriter
-{
- String lineSeparator = JenaRuntime.getLineSeparator() ;
-
- Writer writer ;
- int column ;
- int row ;
- int currentIndent ;
-
- public N3IndentedWriter(Writer w)
- {
- writer = w ;
- column = 0 ;
- row = 0 ;
- currentIndent = 0 ;
- }
-
- public Writer getWriter() { return writer ; }
-
- public int getRow() { return row ; }
- public int getCol() { return column ; }
- public int getIndent() { return currentIndent ; }
-
- public void incIndent(int x) { currentIndent += x ; }
- public void decIndent(int x) { currentIndent -= x ; }
- public void setIndent(int x) { currentIndent = x ; }
-
- public void print(String s)
- {
- try { writer.write(s); column += s.length() ; }
- catch (java.io.IOException ex) { throw new JenaException(ex) ; }
- }
-
- public void println(String s)
- {
- try { writer.write(s); println() ; }
- catch (java.io.IOException ex) { throw new JenaException(ex) ; }
- }
-
- public void println()
- {
- try {
- writer.write(lineSeparator);
- writer.flush() ;
- column = 0 ;
- row++ ;
- padTo() ;
- }
- catch (java.io.IOException ex) { throw new JenaException(ex) ; }
- }
-
- public void padTo() throws IOException
- {
- for ( int i = 0 ; i < currentIndent ; i++ )
- writer.write(' ') ;
- column = column + currentIndent ;
- }
-
- public void flush() { try { writer.flush() ; } catch (IOException ioEx) { throw new JenaException(ioEx) ; } }
- public void close() { try { writer.close() ; } catch (IOException ioEx) { throw new JenaException(ioEx) ; } }
-
-}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriter.java b/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriter.java
deleted file mode 100644
index b61d4b8..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriter.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * 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.
- */
-
-// To do:
-// Better detection of illegal characters in qnames (? and = for example)
-
-package org.apache.jena.n3;
-
-//import org.apache.commons.logging.*;
-import java.io.OutputStream;
-import java.io.Writer;
-
-import org.apache.jena.JenaRuntime ;
-import org.apache.jena.rdf.model.* ;
-
-/** Entry point for N3 writers. This writer will choose the actual writer
- * to use by looking at the system property
- * <code>org.apache.jena.n3.N3JenaWriter.writer</code> to get the
- * writer name.
- * <p>
- * The following N3 writers are provided:
- * <ul>
- * <li>N3-PP: Pretty Printer (the default)</li>
- * <li>N3-PLAIN: Plain, record/frame-oriented format</li>
- * <li>N3-TRIPLES: Triples, with prefixes.</li>
- * </ul>
- * </p>
- */
-
-
-
-public class N3JenaWriter implements RDFWriter
-{
- //static Logger logger = LoggerFactory.getLogger(N3JenaWriter.class) ;
- static public boolean DEBUG = false ;
-
- // Note: properties are URIs, not java convention package/class names.
- static protected final String propBase = "http://jena.hpl.hp.com/n3/properties/" ;
-
- /** System property name that sets the default N3 writer name */
- static public final String propWriterName = propBase+"writer" ;
-
- /**
- * General name for the N3 writer. Will make a decision on exactly which
- * writer to use (pretty writer, plain writer or simple writer) when created.
- * Default is the pretty writer but can be overridden with system property
- * <code>org.apache.jena.n3.N3JenaWriter.writer</code>.
- */
-
- static public final String n3Writer = "N3" ;
-
- /**
- * Turtle writer.
- */
- static public final String turtleWriter = "TURTLE" ;
- static public final String turtleWriterAlt1 = "Turtle" ;
- static public final String turtleWriterAlt2 = "TTL" ;
-
- protected N3JenaWriterCommon writer = null ;
-
- public N3JenaWriter() { writer = chooseWriter() ; }
- public N3JenaWriter(N3JenaWriterCommon w) { writer = w ;}
-
- N3JenaWriterCommon chooseWriter()
- {
- // Choose the writer
- String writerName = JenaRuntime.getSystemProperty(propWriterName) ;
- if ( writerName == null )
- return new N3JenaWriterPP() ;
- if ( writerName.equals("N3") )
- return new N3JenaWriterPP() ;
-
-// if ( writerName.equals(n3WriterPrettyPrinter) )
-// return new N3JenaWriterPP() ;
-//
-// if ( writerName.equalsIgnoreCase(n3WriterPlain) )
-// return new N3JenaWriterCommon() ;
-//
-// if ( writerName.equalsIgnoreCase(n3WriterTriples) ||
-// writerName.equalsIgnoreCase(n3WriterTriplesAlt) )
-// return new N3JenaWriterTriples() ;
-
- if ( writerName.equalsIgnoreCase(turtleWriter) )
- {
- N3JenaWriterPP w = new N3JenaWriterPP() ;
- w.useWellKnownPropertySymbols = false ;
- return w ;
- }
-
- // Don't know or default.
- return new N3JenaWriterPP() ;
- }
-
-
- /** Write the model out in N3, encoded in in UTF-8
- * @see #write(Model,Writer,String)
- */
-
- @Override
- public void write(Model model, Writer out, String base)
- {
- writer.write(model, out, base) ;
- }
-
- /** Write the model out in N3. The writer should be one suitable for UTF-8 which
- * excludes a PrintWriter or a FileWriter which use default character set.
- *
- * Examples:
- * <pre>
- * try {
- * Writer w = new BufferedWriter(new OutputStreamWriter(output, "UTF-8")) ;
- * model.write(w, base) ;
- * try { w.flush() ; } catch (IOException ioEx) {...}
- * } catch (java.io.UnsupportedEncodingException ex) {} //UTF-8 is required so can't happen
- * </pre>
- * or
- * <pre>
- * try {
- * OutputStream out = new FileOutputStream(file) ;
- * Writer w = new BufferedWriter(new OutputStreamWriter(out, "UTF-8")) ;
- * model.write(w, base) ;
- * }
- * catch (java.io.UnsupportedEncodingException ex) {}
- * catch (java.io.FileNotFoundException noFileEx) { ... }
- * </pre>
- * @see #write(Model,Writer,String)
- */
-
- @Override
- public void write(Model model, OutputStream out, String base)
- {
- writer.write(model, out, base) ;
- }
-
-
- /**
- * @see org.apache.jena.rdf.model.RDFWriter#setProperty(java.lang.String, java.lang.Object)
- */
- @Override
- public Object setProperty(String propName, Object propValue)
- {
- return writer.setProperty(propName, propValue) ;
- }
-
- /**
- * @see org.apache.jena.rdf.model.RDFWriter#setErrorHandler(org.apache.jena.rdf.model.RDFErrorHandler)
- */
- @Override
- public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
- {
- return writer.setErrorHandler(errHandler) ;
- }
-
-}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterCommon.java b/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterCommon.java
deleted file mode 100644
index 9806fe1..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterCommon.java
+++ /dev/null
@@ -1,964 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-import java.io.*;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.charset.StandardCharsets;
-import java.text.CharacterIterator;
-import java.text.StringCharacterIterator;
-import java.util.*;
-import java.util.Map.Entry;
-
-import org.apache.jena.JenaRuntime ;
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.rdf.model.impl.Util ;
-import org.apache.jena.shared.JenaException ;
-import org.apache.jena.util.iterator.ClosableIterator ;
-import org.apache.jena.util.iterator.WrappedIterator ;
-import org.apache.jena.vocabulary.OWL ;
-import org.apache.jena.vocabulary.RDF ;
-import org.apache.jena.vocabulary.XSD ;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/** Common framework for implementing N3 writers.
- */
-
-public class N3JenaWriterCommon implements RDFWriter
-{
- static Logger logger = LoggerFactory.getLogger(N3JenaWriterCommon.class) ;
-
- // N3 writing proceeds in 2 stages.
- // First, it analysis the model to be written to extract information
- // that is going to be specially formatted (RDF lists, one ref anon nodes)
- // Second do the writing walk.
-
- // The simple N3 writer does nothing during preparation.
-
- protected Map<String, Object> writerPropertyMap = null ;
-
-// BaseURI - <#>
-// final boolean doAbbreviatedBaseURIref = getBooleanValue("abbrevBaseURI", true) ;
- protected boolean alwaysAllocateBNodeLabel = false ;
-
- // Common variables
- protected RDFErrorHandler errorHandler = null;
-
- protected Map<String, String> prefixMap = new HashMap<>() ; // Prefixes to actually use
- protected Map<String, String> reversePrefixMap = new HashMap<>() ; // URI->prefix
- protected Map<Resource, String> bNodesMap = null ; // BNodes seen.
- protected int bNodeCounter = 0 ;
-
- // Specific properties that have a short form.
- // Not Turtle.
- protected static final String NS_W3_log = "http://www.w3.org/2000/10/swap/log#" ;
-
- protected static Map<String, String> wellKnownPropsMapN3 = new HashMap<>() ;
- static {
- wellKnownPropsMapN3.put(NS_W3_log+"implies", "=>" ) ;
- wellKnownPropsMapN3.put(OWL.sameAs.getURI(), "=" ) ;
- wellKnownPropsMapN3.put(RDF.type.getURI(), "a" ) ;
- }
-
- protected static Map<String, String> wellKnownPropsMapTurtle = new HashMap<>() ;
- static {
- //wellKnownPropsMapTurtle.put(OWL.sameAs.getURI(), "=" ) ;
- wellKnownPropsMapTurtle.put(RDF.type.getURI(), "a" ) ;
- }
-
- protected Map<String, String> wellKnownPropsMap = wellKnownPropsMapN3 ;
-
- // Work variables controlling the output
- protected N3IndentedWriter out = null ;
- //Removed base URI specials - look for "// BaseURI - <#>" & doAbbreviatedBaseURIref
- //String baseURIref = null ;
- //String baseURIrefHash = null ;
-
- // Min spacing of items
- protected int minGap = getIntValue("minGap", 1) ;
- protected String minGapStr = pad(minGap) ;
-
- // Gap from subject to property
- protected int indentProperty = getIntValue("indentProperty", 6) ;
-
- // Width of property before wrapping.
- // This is not necessarily a control of total width
- // e.g. the pretty writer may be writing properties inside indented one ref bNodes
- protected int widePropertyLen = getIntValue("widePropertyLen", 20) ;
-
- // Column for property when an object follows a property on the same line
- protected int propertyCol = getIntValue("propertyColumn", 8) ;
-
- // Minimum gap from property to object when object on a new line.
- protected int indentObject = propertyCol ;
-
- // If a subject is shorter than this, the first property may go on same line.
- protected int subjectColumn = getIntValue("subjectColumn", indentProperty) ;
- // Require shortSubject < subjectCol (strict less than)
- protected int shortSubject = subjectColumn-minGap;
-
- protected boolean useWellKnownPropertySymbols = getBooleanValue("usePropertySymbols", true) ;
-
- protected boolean allowTripleQuotedStrings = getBooleanValue("useTripleQuotedStrings", true) ;
- protected boolean allowDoubles = getBooleanValue("useDoubles", true) ;
- protected boolean allowDecimals = getBooleanValue("useDecimals", true) ;
-
- // ----------------------------------------------------
- // Jena RDFWriter interface
-
- @Override
- public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
- {
- RDFErrorHandler old = errorHandler;
- errorHandler = errHandler;
- return old;
- }
-
- @Override
- public Object setProperty(String propName, Object propValue)
- {
- if ( ! ( propValue instanceof String ) )
- {
- logger.warn("N3.setProperty: Property for '"+propName+"' is not a string") ;
- propValue = propValue.toString() ;
- }
-
- // Store absolute name of property
- propName = absolutePropName(propName) ;
- if ( writerPropertyMap == null )
- writerPropertyMap = new HashMap<>() ;
- Object oldValue = writerPropertyMap.get(propName);
- writerPropertyMap.put(propName, propValue);
- return oldValue;
- }
-
- /** Write the model out in N3. The writer should be one suitable for UTF-8 which
- * excludes a PrintWriter or a FileWriter which use default character set.
- *
- * Examples:
- * <pre>
- * try {
- * Writer w = new BufferedWriter(new OutputStreamWriter(output, "UTF-8")) ;
- * model.write(w, base) ;
- * try { w.flush() ; } catch (IOException ioEx) {...}
- * } catch (java.io.UnsupportedEncodingException ex) {} //UTF-8 is required so can't happen
- * </pre>
- * or
- * <pre>
- * try {
- * OutputStream out = new FileOutputStream(file) ;
- * Writer w = new BufferedWriter(new OutputStreamWriter(out, "UTF-8")) ;
- * model.write(w, base) ;
- * }
- * catch (java.io.UnsupportedEncodingException ex) {}
- * catch (java.io.FileNotFoundException noFileEx) { ... }
- * </pre>
- * @see #write(Model,Writer,String)
- */
-
- @Override
- public void write(Model baseModel, Writer _out, String base)
- {
- if (!(_out instanceof BufferedWriter))
- _out = new BufferedWriter(_out);
- out = new N3IndentedWriter(_out);
-
-// BaseURI - <#>
-// if ( base != null )
-// {
-// baseURIref = base ;
-// if ( !base.endsWith("#") &&! isOpaque(base) )
-// baseURIrefHash = baseURIref+"#" ;
-// }
-
- processModel(baseModel) ;
- }
-
- /** Write the model out in N3, encoded in in UTF-8
- * @see #write(Model,Writer,String)
- */
-
- @Override
- public synchronized void write(Model model, OutputStream output, String base)
- {
- Writer w = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8)) ;
- write(model, w, base) ;
- try { w.flush() ; } catch (IOException ioEx) { throw new JenaException(ioEx) ; }
- }
-
- // ----------------------------------------------------
- // The assumed processing model is:
- // Writing N3 involves ordering the graph into:
- // -- Subjects
- // -- Property lists within subjects
- // -- Object lists with in properties
-
- // A derived class may choose to intercept and implement at any of these levels.
-
- // Standard layout is:
- // subject
- // property1 value1 ;
- // property2 value2 ;
- // property3 value3 .
-
- // Normal hook points for subclasses.
-
- protected void startWriting() {}
- protected void finishWriting() {}
- protected void prepare(Model model) {}
-
- protected void processModel(Model model)
- {
- prefixMap = model.getNsPrefixMap() ;
- bNodesMap = new HashMap<>() ;
-
- for ( Iterator<Entry<String, String>> iter = prefixMap.entrySet().iterator() ; iter.hasNext() ; )
- {
- Entry<String, String> e = iter.next() ;
- String prefix = e.getKey() ;
- String uri = e.getValue();
-
- // XML namespaces name can include '.'
- // Turtle prefixed names can't.
- if ( ! checkPrefixPart(prefix) )
- iter.remove() ;
- else
- {
- if ( checkPrefixPart(prefix) )
- // Build acceptable reverse mapping
- reversePrefixMap.put(uri, prefix) ;
- }
- }
-
- startWriting() ;
- prepare(model) ;
-
- writeHeader(model) ;
- writePrefixes(model) ;
-
- if (prefixMap.size() != 0)
- out.println();
-
- // Do the output.
- writeModel(model) ;
-
- // Release intermediate memory - allows reuse of a writer
- finishWriting() ;
- bNodesMap = null ;
- }
-
- protected void writeModel(Model model)
- {
- // Needed only for no prefixes, no blank first line.
- boolean doingFirst = true;
- ResIterator rIter = listSubjects(model);
- for (; rIter.hasNext();)
- {
- // Subject:
- // First - it is something we will write out as a structure in an object field?
- // That is, a RDF list or the object of exactly one statement.
- Resource subject = rIter.nextResource();
- if ( skipThisSubject(subject) )
- {
- if (N3JenaWriter.DEBUG)
- out.println("# Skipping: " + formatResource(subject));
- continue;
- }
-
- // We really are going to print something via writeTriples
- if (doingFirst)
- doingFirst = false;
- else
- out.println();
-
- writeOneGraphNode(subject) ;
-
-
- }
- rIter.close();
- }
-
- protected ResIterator listSubjects(Model model) { return model.listSubjects(); }
-
- protected void writeOneGraphNode(Resource subject)
- {
- // New top level item.
- // Does not take effect until newline.
- out.incIndent(indentProperty) ;
- writeSubject(subject);
- ClosableIterator<Property> iter = preparePropertiesForSubject(subject);
- writePropertiesForSubject(subject, iter) ;
- out.decIndent(indentProperty) ;
- out.println(" .");
- }
-
- protected void writePropertiesForSubject(Resource subj, ClosableIterator<Property> iter)
- {
- // For each property.
- for (; iter.hasNext();)
- {
- Property property = iter.next();
-
- // Object list
- writeObjectList(subj, property);
-
- if (iter.hasNext())
- out.println(" ;");
- }
- iter.close();
- }
-
- // Hook called on every resource.
- // Since there is spacing bewteen resource frames, need to know
- // whether an item will cause any output.
- protected boolean skipThisSubject(Resource r) { return false ; }
-
-
- // This is the hook called within writeModel.
- // NB May not be at the top level (indent = 0)
-
- protected void writeSubject(Resource subject)
- {
- String subjStr = formatResource(subject);
- out.print(subjStr);
- // May be very short : if so, stay on this line.
-
- // Currently at end of subject.
- // NB shortSubject is (subjectColumn-minGap) so there is a gap.
-
- if (subjStr.length() < shortSubject )
- {
- out.print(pad(subjectColumn - subjStr.length()) );
- }
- else
- // Does not fit this line.
- out.println();
- }
-
- protected void writeHeader(Model model)
- {
-// BaseURI - <#>
-// if (baseURIref != null && !baseURIref.equals("") )
-// out.println("# Base: " + baseURIref);
- }
-
- protected N3IndentedWriter getOutput() { return out ; }
- protected Map<String, String> getPrefixes() { return prefixMap ; }
-
- protected void writePrefixes(Model model)
- {
- for ( Entry<String, String> entry : prefixMap.entrySet() )
- {
- String u = entry.getValue();
- String p = entry.getKey();
-
-// BaseURI - <#>
-// // Special cases: N3 handling of base names.
-// if (doAbbreviatedBaseURIref && p.equals(""))
-// {
-// if (baseURIrefHash != null && u.equals(baseURIrefHash))
-// u = "#";
-// if (baseURIref != null && u.equals(baseURIref))
-// u = "";
-// }
-
- String tmp = "@prefix " + p + ": ";
- out.print( tmp );
- out.print( pad( 16 - tmp.length() ) );
- // NB Starts with a space to ensure a gap.
- out.println( " <" + u + "> ." );
- }
-
- }
-
- protected void writeObjectList(Resource subject, Property property)
- {
- String propStr = formatProperty(property) ;
-
-// if (wellKnownPropsMap.containsKey(property.getURI()))
-// propStr = (String) wellKnownPropsMap.get(property.getURI());
-// else
-// propStr = formatResource(property);
-
- // Write with object lists as clusters of statements with the same property
- // Looks more like a machine did it but fewer bad cases.
-
- StmtIterator sIter = subject.listProperties(property);
- for (; sIter.hasNext();)
- {
- Statement stmt = sIter.nextStatement() ;
- String objStr = formatNode(stmt.getObject()) ;
-
- out.print(propStr);
- out.incIndent(indentObject);
-
- if ( (propStr.length()+minGap) <= widePropertyLen )
- {
- // Property col allows for min gap but widePropertyLen > propertyCol
- // (which looses alignment - this is intentional.
- // Ensure there is at least min gap.
-
- int padding = calcPropertyPadding(propStr) ;
- out.print(pad(padding)) ;
-
-// if ( propStr.length() < propertyWidth )
-// out.print( pad(propertyCol-minGap-propStr.length()) ) ;
-// out.print(minGapStr) ;
- }
- else
- // Does not fit this line.
- out.println();
-
- // Write one object - simple writing.
-
- out.print(objStr) ;
- out.decIndent(indentObject);
-
- if ( sIter.hasNext() )
- {
- out.println(" ;") ;
- }
- }
- sIter.close() ;
-
- }
-
- protected String formatNode(RDFNode node)
- {
- if (node instanceof Literal)
- return formatLiteral((Literal) node);
- else
- return formatResource((Resource)node) ;
- }
-
- protected void writeObject(RDFNode node)
- {
- if (node instanceof Literal)
- {
- writeLiteral((Literal) node);
- return;
- }
-
- Resource rObj = (Resource) node;
-
- out.print(formatResource(rObj));
- }
-
- protected void writeLiteral(Literal literal)
- {
- out.print(formatLiteral(literal)) ;
- }
-
- protected ClosableIterator<Property> preparePropertiesForSubject(Resource r)
- {
- // Properties to do.
- Set<Property> properties = new HashSet<>() ;
-
- StmtIterator sIter = r.listProperties();
- for ( ; sIter.hasNext() ; )
- properties.add(sIter.nextStatement().getPredicate()) ;
- sIter.close() ;
- return WrappedIterator.create(properties.iterator()) ;
- }
-
-
- // Utility operations
- protected String formatResource(Resource r)
- {
- if ( r.isAnon() )
- {
- if ( ! alwaysAllocateBNodeLabel )
- {
- // Does anything point to it?
- StmtIterator sIter = r.getModel().listStatements(null, null, r) ;
-
- if ( ! sIter.hasNext() )
- {
- sIter.close() ;
- // This bNode is not referenced so don't need the bNode Id.
- // Must be a subject - indent better be zero!
- // This only happens for subjects because object bNodes
- // referred to once (the other case for [] syntax)
- // are handled elsewhere (by oneRef set)
-
- // Later: use [ prop value ] for this.
- return "[]" ;
- }
- sIter.close() ;
- }
- if ( ! bNodesMap.containsKey(r) )
- bNodesMap.put(r, "_:b"+(++bNodeCounter)) ;
- return bNodesMap.get(r) ;
-
- }
-
- // It has a URI.
-
- if ( r.equals(RDF.nil) )
- return "()" ;
-
- return formatURI(r.getURI()) ;
- }
-
- protected String formatLiteral(Literal literal)
- {
- String datatype = literal.getDatatypeURI() ;
- String lang = literal.getLanguage() ;
- String s = literal.getLexicalForm() ;
-
- if ( datatype != null )
- {
- // Special form we know how to handle?
- // Assume valid text
- if ( datatype.equals(XSD.integer.getURI()) )
- {
- try {
- new java.math.BigInteger(s) ;
- return s ;
- } catch (NumberFormatException nfe) {}
- // No luck. Continue.
- // Continuing is always safe.
- }
-
- if ( datatype.equals(XSD.decimal.getURI()) )
- {
- // Must have ., can't have e or E
- if ( s.indexOf('.') >= 0 &&
- s.indexOf('e') == -1 && s.indexOf('E') == -1 )
- {
- // Turtle - N3 does not allow .3 +.3 or -.3
- // See if parsable.
- try {
- new BigDecimal(s);
- return s ;
- } catch (NumberFormatException nfe) {}
- }
- }
-
- if ( this.allowDoubles && datatype.equals(XSD.xdouble.getURI()) )
- {
- // Must have 'e' or 'E' (N3 and Turtle now read 2.3 as a decimal).
- if ( s.indexOf('e') >= 0 ||
- s.indexOf('E') >= 0 )
- {
- try {
- // Validate it.
- Double.parseDouble(s) ;
- return s ;
- } catch (NumberFormatException nfe) {}
- // No luck. Continue.
- }
- }
- }
- // Format the text - with escaping.
- StringBuffer sbuff = new StringBuffer() ;
- boolean singleQuoteLiteral = true ;
-
- String quoteMarks = "\"" ;
-
- // Things that force the use of """ strings
- if ( this.allowTripleQuotedStrings &&
- ( s.indexOf("\n") != -1 ||
- s.indexOf("\r") != -1 ||
- s.indexOf("\f") != -1 ) )
- {
- quoteMarks = "\"\"\"" ;
- singleQuoteLiteral = false ;
- }
-
- sbuff.append(quoteMarks);
- string(sbuff, s, singleQuoteLiteral) ;
- sbuff.append(quoteMarks);
-
- if ( Util.isLangString(literal) ) {
- sbuff.append("@") ;
- sbuff.append(lang) ;
- } else if ( ! Util.isSimpleString(literal) ) {
- sbuff.append("^^") ;
- sbuff.append(formatURI(datatype)) ;
- }
- return sbuff.toString() ;
- }
-
- protected String formatProperty(Property p)
- {
- String prop = p.getURI() ;
- if ( this.useWellKnownPropertySymbols && wellKnownPropsMap.containsKey(prop) )
- return wellKnownPropsMap.get(prop);
-
- return formatURI(prop) ;
- }
-
- protected String formatURI(String uriStr)
- {
-
-
-// BaseURI - <#>
-// if ( doAbbreviatedBaseURIref && uriStr.equals(baseURIref) )
-// return "<>" ;
-
- // Try for a prefix and write as prefixed name.
- // 1/ Try splitting as a prefixed name
- // 2/ Search for possibilities
-
- // Stage 1.
- int idx = splitIdx(uriStr) ;
- // Depends on legal URIs.
- if ( idx >= 0 )
- {
- // Include the # itself.
- String x = uriStr.substring(0,idx+1) ;
- String prefix = reversePrefixMap.get(x) ;
- if ( prefix != null )
- {
- String localPart = uriStr.substring(idx+1) ;
- if ( checkNamePart(localPart) )
- return prefix+':'+localPart ;
- }
- }
-
- // Unsplit. Could just return here.
-// // Find the longest if several.
-// // Possible optimization: split URI and have URI=> ns: map.
-// // Ordering prefixes by length, then first hit is better.
-// //
-// // Also: could just assume that the split is on / or #
-// // Means we need to find a prefix just once.
-// for ( Iterator<String> pIter = prefixMap.keySet().iterator() ; pIter.hasNext() ; )
-// {
-// String p = pIter.next() ;
-// String u = prefixMap.get(p) ;
-// if ( uriStr.startsWith(u) )
-// if ( matchURI.length() < u.length() )
-// {
-// matchPrefix = p ;
-// matchURI = u ;
-// }
-// }
-// if ( matchPrefix != null )
-// {
-// String localname = uriStr.substring(matchURI.length()) ;
-//
-// if ( checkPrefixedName(matchPrefix, localname) )
-// return matchPrefix+":"+localname ;
-//
-// // Continue and return quoted URIref
-// }
-
- // Not as a prefixed name - write as a quoted URIref
- // It should be right - the writer should be UTF-8 on output.
- return "<"+uriStr+">" ;
- }
-
- protected static int splitIdx(String uriStr)
- {
- int idx = uriStr.lastIndexOf('#') ;
- if ( idx >= 0 )
- return idx ;
- // No # - try for /
- idx = uriStr.lastIndexOf('/') ;
- return idx ;
- }
-
- // Checks of prefixed names
- // These tests must agree, or be more restrictive, than the parser.
- protected static boolean checkPrefixedName(String ns, String local)
- {
- return checkPrefixPart(ns) && checkNamePart(local) ;
- }
-
- /* http://www.w3.org/TeamSubmission/turtle/#sec-grammar-grammar
- * [27] qname ::= prefixName? ':' name?
- * [30] nameStartChar ::= [A-Z] | "_" | [a-z] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | [#x00F8-#x02FF] | [#x0370-#x037D] | [#x037F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
- * [31] nameChar ::= nameStartChar | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040]
- * [32] name ::= nameStartChar nameChar*
- * [33] prefixName ::= ( nameStartChar - '_' ) nameChar*
- */
-
- protected static boolean checkPrefixPart(String s)
- {
- if ( s.length() == 0 )
- return true;
- CharacterIterator cIter = new StringCharacterIterator(s) ;
- char ch = cIter.first() ;
- if ( ! checkNameStartChar(ch) )
- return false ;
- if ( ch == '_' ) // Can't start with _ (bnodes labels handled separately)
- return false ;
- return checkNameTail(cIter) ;
- }
-
- protected static boolean checkNamePart(String s)
- {
- if ( s.length() == 0 )
- return true;
- CharacterIterator cIter = new StringCharacterIterator(s) ;
- char ch = cIter.first() ;
- if ( ! checkNameStartChar(ch) )
- return false ;
- return checkNameTail(cIter) ;
- }
-
- private static boolean checkNameTail(CharacterIterator cIter)
- {
- // Assumes cIter.first already called but nothing else.
- // Skip first char.
- char ch = cIter.next() ;
- for ( ; ch != java.text.CharacterIterator.DONE ; ch = cIter.next() )
- {
- if ( ! checkNameChar(ch) )
- return false ;
- }
- return true ;
- }
-
- protected static boolean checkNameStartChar(char ch)
- {
- if ( Character.isLetter(ch) )
- return true ;
- if ( ch == '_' )
- return true ;
- return false ;
- }
-
- protected static boolean checkNameChar(char ch)
- {
- if ( Character.isLetterOrDigit(ch) )
- return true ;
- if ( ch == '_' )
- return true ;
- if ( ch == '-' )
- return true ;
- return false ;
- }
-
-
- protected final static String WS = "\n\r\t" ;
-
- protected static void string(StringBuffer sbuff, String s, boolean singleQuoteLiteral)
- {
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
-
- // Escape escapes and quotes
- if (c == '\\' || c == '"' )
- {
- sbuff.append('\\') ;
- sbuff.append(c) ;
- continue ;
- }
-
- // Characters to literally output.
- // This would generate 7-bit safe files
-// if (c >= 32 && c < 127)
-// {
-// sbuff.append(c) ;
-// continue;
-// }
-
- // Whitespace
- if ( singleQuoteLiteral && ( c == '\n' || c == '\r' || c == '\f' ) )
- {
- if (c == '\n') sbuff.append("\\n");
- if (c == '\t') sbuff.append("\\t");
- if (c == '\r') sbuff.append("\\r");
- if (c == '\f') sbuff.append("\\f");
- continue ;
- }
-
- // Output as is (subject to UTF-8 encoding on output that is)
- sbuff.append(c) ;
-
-// // Unicode escapes
-// // c < 32, c >= 127, not whitespace or other specials
-// String hexstr = Integer.toHexString(c).toUpperCase();
-// int pad = 4 - hexstr.length();
-// sbuff.append("\\u");
-// for (; pad > 0; pad--)
-// sbuff.append("0");
-// sbuff.append(hexstr);
- }
- }
-
- protected int calcPropertyPadding(String propStr)
- {
- int padding = propertyCol - propStr.length();
- if (padding < minGap)
- padding = minGap;
- return padding ;
- }
-
- protected static String pad(int cols)
- {
- StringBuffer sb = new StringBuffer() ;
- for ( int i = 0 ; i < cols ; i++ )
- sb.append(' ') ;
- return sb.toString() ;
- }
-
- // Utilities
-
- protected int countProperties(Resource r)
- {
- int numProp = 0 ;
- StmtIterator sIter = r.listProperties() ;
- for ( ; sIter.hasNext() ; )
- {
- sIter.nextStatement() ;
- numProp++ ;
- }
- sIter.close() ;
- return numProp ;
- }
-
- protected int countProperties(Resource r, Property p)
- {
- int numProp = 0 ;
- StmtIterator sIter = r.listProperties(p) ;
- for ( ; sIter.hasNext() ; )
- {
- sIter.nextStatement() ;
- numProp++ ;
- }
- sIter.close() ;
- return numProp ;
- }
-
-
- protected int countArcsTo(Resource resource)
- {
- return countArcsTo(null, resource) ;
- }
-
- protected int countArcsTo(Property prop, Resource resource)
- {
- int numArcs = 0 ;
- StmtIterator sIter = resource.getModel().listStatements(null, prop, resource) ;
- for ( ; sIter.hasNext() ; )
- {
- sIter.nextStatement() ;
- numArcs++ ;
- }
- sIter.close() ;
- return numArcs ;
- }
-
-
- protected Iterator<RDFNode> rdfListIterator(Resource r)
- {
- List<RDFNode> list = new ArrayList<>() ;
-
- for ( ; ! r.equals(RDF.nil); )
- {
- StmtIterator sIter = r.getModel().listStatements(r, RDF.first, (RDFNode)null) ;
- list.add(sIter.nextStatement().getObject()) ;
- if ( sIter.hasNext() )
- // @@ need to cope with this (unusual) case
- throw new JenaException("N3: Multi valued list item") ;
- sIter = r.getModel().listStatements(r, RDF.rest, (RDFNode)null) ;
- r = (Resource)sIter.nextStatement().getObject() ;
- if ( sIter.hasNext() )
- throw new JenaException("N3: List has two tails") ;
- }
- return list.iterator() ;
- }
-
- // Convenience operations for accessing system properties.
-
- protected String getStringValue(String prop, String defaultValue)
- {
- String p = getPropValue(prop) ;
-
- if ( p == null )
- return defaultValue ;
- return p ;
- }
-
- protected boolean getBooleanValue(String prop, boolean defaultValue)
- {
- String p = getPropValue(prop) ;
-
- if ( p == null )
- return defaultValue ;
-
- if ( p.equalsIgnoreCase("true") )
- return true ;
-
- if ( p.equals("1") )
- return true ;
-
- return false ;
- }
-
- protected int getIntValue(String prop, int defaultValue)
- {
- String p = getPropValue(prop) ;
- if ( p == null )
- return defaultValue ;
- try {
- return Integer.parseInt(p) ;
- } catch (NumberFormatException ex)
- {
- logger.warn("Format error for property: "+prop) ;
- return defaultValue ;
- }
- }
-
- // May be the absolute or local form of the property name
-
- protected String getPropValue(String prop)
- {
- prop = absolutePropName(prop) ;
- if ( writerPropertyMap != null && writerPropertyMap.containsKey(prop) )
- {
- Object obj = writerPropertyMap.get(prop) ;
- if ( ! ( obj instanceof String ) )
- logger.warn("getPropValue: N3 Property for '"+prop+"' is not a string") ;
- return (String)obj ;
- }
- String s = JenaRuntime.getSystemProperty(prop) ;
- if ( s == null )
- s = JenaRuntime.getSystemProperty(localPropName(prop)) ;
- return s ;
- }
-
- protected String absolutePropName(String propName)
- {
- if ( propName.indexOf(':') == -1 )
- return N3JenaWriter.propBase + propName ;
- return propName ;
- }
-
- protected String localPropName(String propName)
- {
- if ( propName.startsWith(N3JenaWriter.propBase) )
- propName = propName.substring(N3JenaWriter.propBase.length()) ;
- return propName ;
- }
-
- private boolean isOpaque(String uri)
- {
- try {
- return new URI(uri).isOpaque() ;
- } catch (URISyntaxException ex) { return true ; }
- }
-}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterPP.java b/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterPP.java
deleted file mode 100644
index b7d9df4..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterPP.java
+++ /dev/null
@@ -1,633 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-//import org.apache.commons.logging.*;
-import java.util.* ;
-
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.shared.JenaException ;
-import org.apache.jena.util.iterator.* ;
-import org.apache.jena.vocabulary.RDF ;
-import org.apache.jena.vocabulary.RDFS ;
-
-/** An N3 pretty printer.
- * Tries to make N3 data look readable - works better on regular data.
- */
-
-
-
-public class N3JenaWriterPP extends N3JenaWriterCommon
- /*implements RDFWriter*/
-{
- // This N3 writer proceeds in 2 stages. First, it analysises the model to be
- // written to extract information that is going to be specially formatted
- // (RDF lists, small anon nodes) and to calculate the prefixes that will be used.
-
- final protected boolean doObjectListsAsLists = getBooleanValue("objectLists", true) ;
-
- // Data structures used in controlling the formatting
-
- protected Set<Resource> rdfLists = null ; // Heads of lists
- protected Set<Resource> rdfListsAll = null ; // Any resources in a collection
- protected Set<Resource> rdfListsDone = null ; // RDF lists written
- protected Set<RDFNode> oneRefObjects = null ; // Bnodes referred to once as an object - can inline
- protected Set<Resource> oneRefDone = null ; // Things done - so we can check for missed items
-
- // Do we do nested (one reference) nodes?
- protected boolean allowDeep = true ;
-
- static final protected String objectListSep = " , " ;
-
- // ----------------------------------------------------
- // Prepatation stage
-
- @Override
- protected void prepare(Model model)
- {
- prepareLists(model) ;
- prepareOneRefBNodes(model) ;
- }
-
- // Find well-formed RDF lists - does not find empty lists (this is intentional)
- // Works by finding all tails, and work backwards to the head.
- // RDF lists may, or may not, have a type element.
- // Should do this during preparation, not as objects found during the write
- // phase.
-
- protected void prepareLists(Model model)
- {
- Set<Resource> thisListAll = new HashSet<>();
-
- StmtIterator listTailsIter = model.listStatements(null, RDF.rest, RDF.nil);
-
- // For every tail of a list
- //tailLoop:
- for ( ; listTailsIter.hasNext() ; )
- {
- // The resource for the current element being considered.
- Resource listElement = listTailsIter.nextStatement().getSubject() ;
- // The resource pointing to the link we have just looked at.
- Resource validListHead = null ;
-
- // Chase to head of list
- for ( ; ; )
- {
- boolean isOK = checkListElement(listElement) ;
- if ( ! isOK )
- break ;
-
- // At this point the element is exactly a collection element.
- if ( N3JenaWriter.DEBUG ) out.println("# RDF list all: "+formatResource(listElement)) ;
- validListHead = listElement ;
- thisListAll.add(listElement) ;
-
- // Find the previous node.
- StmtIterator sPrev = model.listStatements(null, RDF.rest, listElement) ;
-
- if ( ! sPrev.hasNext() )
- // No rdf:rest link
- break ;
-
- // Valid pretty-able list. Might be longer.
- listElement = sPrev.nextStatement().getSubject() ;
- if ( sPrev.hasNext() )
- {
- if ( N3JenaWriter.DEBUG ) out.println("# RDF shared tail from "+formatResource(listElement)) ;
- break ;
- }
- }
- // At head of a pretty-able list - add its elements and its head.
- if ( N3JenaWriter.DEBUG ) out.println("# Collection list head: "+formatResource(validListHead)) ;
- rdfListsAll.addAll(thisListAll) ;
- if ( validListHead != null )
- rdfLists.add(validListHead) ;
- }
- listTailsIter.close() ;
- }
-
- // Validate one list element.
- protected boolean checkListElement(Resource listElement)
- {
- // Must be a blank node for abbreviated form.
- if ( ! listElement.isAnon() )
- return false ;
-
- if (!listElement.hasProperty(RDF.rest)
- || !listElement.hasProperty(RDF.first))
- {
- if (N3JenaWriter.DEBUG)
- out.println(
- "# RDF list element does not have required properties: "
- + formatResource(listElement));
- return false;
- }
-
- // Must be exactly two properties (the ones we just tested for)
- // or three including the RDF.type RDF.List statement.
- int numProp = countProperties(listElement);
-
- if ( numProp == 2)
- // Must have exactly the properties we just tested for.
- return true ;
-
- // rdf:type is not implicit.
-// if (numProp == 3)
-// {
-// if (listElement.hasProperty(RDF.type, RDF.List))
-// return true;
-// if (N3JenaWriter.DEBUG)
-// out.println(
-// "# RDF list element: 3 properties but no rdf:type rdf:List"
-// + formatResource(listElement));
-// return false;
-// }
-
- if (N3JenaWriter.DEBUG)
- out.println(
- "# RDF list element does not right number of properties: "
- + formatResource(listElement));
- return false;
- }
-
- // Find bnodes that are objects of only one statement (and hence can be inlined)
- // which are not RDF lists.
- // Could do this testing at write time (unlike lists)
-
- protected void prepareOneRefBNodes(Model model)
- {
-
- NodeIterator objIter = model.listObjects() ;
- for ( ; objIter.hasNext() ; )
- {
- RDFNode n = objIter.nextNode() ;
-
- if ( testOneRefBNode(n) )
- oneRefObjects.add(n) ;
- objIter.close() ;
-
- // N3JenaWriter.DEBUG
- if ( N3JenaWriter.DEBUG )
- {
- out.println("# RDF Lists = "+rdfLists.size()) ;
- out.println("# RDF ListsAll = "+rdfListsAll.size()) ;
- out.println("# oneRefObjects = "+oneRefObjects.size()) ;
- }
- }
- }
-
- protected boolean testOneRefBNode(RDFNode n)
- {
- if ( ! ( n instanceof Resource ) )
- return false ;
-
- Resource obj = (Resource)n ;
-
- if ( ! obj.isAnon() )
- return false ;
-
- // In a list - done as list, not as embedded bNode.
- if ( rdfListsAll.contains(obj) )
- // RDF list (head or element)
- return false ;
-
- StmtIterator pointsToIter = obj.getModel().listStatements(null, null, obj) ;
- if ( ! pointsToIter.hasNext() )
- // Corrupt graph!
- throw new JenaException("N3: found object with no arcs!") ;
-
- pointsToIter.nextStatement() ;
-
- if ( pointsToIter.hasNext() )
- return false ;
-
- if ( N3JenaWriter.DEBUG )
- out.println("# OneRef: "+formatResource(obj)) ;
- return true ;
- }
-
- // ----------------------------------------------------
- // Output stage
-
- // Property order is:
- // 1 - rdf:type (as "a")
- // 2 - other rdf: rdfs: namespace items (sorted)
- // 3 - all other properties, sorted by URI (not qname)
-
-
-
- @Override
- protected ClosableIterator<Property> preparePropertiesForSubject(Resource r)
- {
- Set<Property> seen = new HashSet<>() ;
- boolean hasTypes = false ;
- SortedMap<String, Property> tmp1 = new TreeMap<>() ;
- SortedMap<String, Property> tmp2 = new TreeMap<>() ;
-
- StmtIterator sIter = r.listProperties();
- for ( ; sIter.hasNext() ; )
- {
- Property p = sIter.nextStatement().getPredicate() ;
- if ( seen.contains(p) )
- continue ;
- seen.add(p) ;
-
- if ( p.equals(RDF.type) )
- {
- hasTypes = true ;
- continue ;
- }
-
- if ( p.getURI().startsWith(RDF.getURI()) ||
- p.getURI().startsWith(RDFS.getURI()) )
- {
- tmp1.put(p.getURI(), p) ;
- continue ;
- }
-
- tmp2.put(p.getURI(), p) ;
- }
- sIter.close() ;
-
- ExtendedIterator<Property> eIter = null ;
-
- if ( hasTypes )
- eIter = new SingletonIterator<>(RDF.type) ;
-
- ExtendedIterator<Property> eIter2 = WrappedIterator.create(tmp1.values().iterator()) ;
-
- eIter = (eIter == null) ? eIter2 : eIter.andThen(eIter2) ;
-
- eIter2 = WrappedIterator.create(tmp2.values().iterator()) ;
-
- eIter = (eIter == null) ? eIter2 : eIter.andThen(eIter2) ;
- return eIter ;
- }
-
- @Override
- protected boolean skipThisSubject(Resource subj)
- {
- return rdfListsAll.contains(subj) ||
- oneRefObjects.contains(subj) ;
- }
-
-// protected void writeModel(Model model)
-// {
-// super.writeModel(model) ;
-//
-//
-
- // Before ...
-
- @Override
- protected void startWriting()
- {
- allocateDatastructures() ;
- }
-
- // Flush any unwritten objects.
- // 1 - OneRef objects
- // Normally there are "one ref" objects left
- // However loops of "one ref" are possible.
- // 2 - Lists
-
- @Override
- protected void finishWriting()
- {
-
- // Are there any unattached RDF lists?
- // e..g ([] [] []) . in the data.
- // We missed these earlier.
- for ( Resource r : rdfLists )
- {
- if ( rdfListsDone.contains( r ) )
- {
- continue;
- }
- out.println();
- if ( N3JenaWriter.DEBUG )
- {
- out.println( "# RDF List" );
- }
-
- // Includes the case of shared lists-as-objects.
-// if (!r.isAnon() || countArcsTo(r) > 0 )
-// {
-// // Name it.
-// out.print(formatResource(r));
-// out.print(" :- ");
-// }
-// writeList(r);
-// out.println(" .");
- // Turtle does not have :-
- writeListUnpretty( r );
- }
-
- // Finally, panic.
- // Dump anything that has not been output yet.
- oneRefObjects.removeAll(oneRefDone);
- for ( RDFNode oneRefObject : oneRefObjects )
- {
- out.println();
- if ( N3JenaWriter.DEBUG )
- {
- out.println( "# One ref" );
- }
- // Don't allow further one ref objects to be inlined.
- allowDeep = false;
- writeOneGraphNode( (Resource) oneRefObject );
- allowDeep = true;
- }
-
- //out.println() ;
- //writeModelSimple(model, bNodesMap, base) ;
- out.flush();
- clearDatastructures() ;
- }
-
-
-
- // Need to decide between one line or many.
- // Very hard to do a pretty thing here because the objects may be large or small or a mix.
-
- @Override
- protected void writeObjectList(Resource subject, Property property)
- {
-// if ( ! doObjectListsAsLists )
-// {
-// super.writeObjectList(resource, property) ;
-// return ;
-// }
-
- String propStr = formatProperty(property);
-
- // Find which objects are simple (i.e. not nested structures)
-
- StmtIterator sIter = subject.listProperties(property);
- Set<RDFNode> simple = new HashSet<>() ;
- Set<RDFNode> complex = new HashSet<>() ;
-
- for (; sIter.hasNext();)
- {
- Statement stmt = sIter.nextStatement();
- RDFNode obj = stmt.getObject() ;
- if ( isSimpleObject(obj) )
- simple.add(obj) ;
- else
- complex.add(obj) ;
- }
- sIter.close() ;
- // Write property/simple objects
-
- if ( simple.size() > 0 )
- {
- String padSp = null ;
- // Simple objects - allow property to be long and alignment to be lost
- if ((propStr.length()+minGap) <= widePropertyLen)
- padSp = pad(calcPropertyPadding(propStr)) ;
-
- if ( doObjectListsAsLists )
- {
- // Write all simple objects as one list.
- out.print(propStr);
- out.incIndent(indentObject) ;
-
- if ( padSp != null )
- out.print(padSp) ;
- else
- out.println() ;
-
- for (Iterator<RDFNode> iter = simple.iterator(); iter.hasNext();)
- {
- RDFNode n = iter.next();
- writeObject(n);
-
- // As an object list
- if (iter.hasNext())
- out.print(objectListSep);
- }
-
- out.decIndent(indentObject) ;
- }
- else
- {
- for (Iterator<RDFNode> iter = simple.iterator(); iter.hasNext();)
- {
- // This is also the same as the complex case
- // except the width the property can go in is different.
- out.print(propStr);
- out.incIndent(indentObject) ;
- if ( padSp != null )
- out.print(padSp) ;
- else
- out.println() ;
-
- RDFNode n = iter.next();
- writeObject(n);
- out.decIndent(indentObject) ;
-
- // As an object list
- if (iter.hasNext())
- out.println(" ;");
- }
-
- }
- }
- // Now do complex objects.
- // Write property each time for a complex object.
- // Do not allow over long properties but same line objects.
-
- if (complex.size() > 0)
- {
- // Finish the simple list if there was one
- if ( simple.size() > 0 )
- out.println(" ;");
-
- int padding = -1 ;
- String padSp = null ;
-
- // Can we fit teh start of teh complex object on this line?
-
- // Complex objects - do not allow property to be long and alignment to be lost
- if ((propStr.length()+minGap) <= propertyCol)
- {
- padding = calcPropertyPadding(propStr) ;
- padSp = pad(padding) ;
- }
-
- for (Iterator<RDFNode> iter = complex.iterator(); iter.hasNext();)
- {
- int thisIndent = indentObject ;
- //if ( i )
- out.incIndent(thisIndent);
- out.print(propStr);
- if ( padSp != null )
- out.print(padSp) ;
- else
- out.println() ;
-
- RDFNode n = iter.next();
- writeObject(n);
- out.decIndent(thisIndent);
- if ( iter.hasNext() )
- out.println(" ;");
- }
- }
- return;
- }
-
-
- protected boolean isSimpleObject(RDFNode node)
- {
- if (node instanceof Literal)
- return true ;
- Resource rObj = (Resource) node;
- if ( allowDeep && oneRefObjects.contains(rObj) )
- return false ;
- return true ;
- }
-
- @Override
- protected void writeObject(RDFNode node)
- {
- if (node instanceof Literal)
- {
- writeLiteral((Literal) node);
- return;
- }
-
- Resource rObj = (Resource) node;
- if ( allowDeep && ! isSimpleObject(rObj))
- {
- oneRefDone.add(rObj);
- ClosableIterator<Property> iter = preparePropertiesForSubject(rObj);
- if (! iter.hasNext() )
- {
- // No properties.
- out.print("[]");
- }
- else
- {
- out.print("[ ");
- out.incIndent(2);
- writePropertiesForSubject(rObj, iter);
- out.decIndent(2);
- out.println() ;
- // Line up []
- out.print("]");
- }
- iter.close();
- return ;
- }
-
- if (rdfLists.contains(rObj))
- if (countArcsTo(rObj) <= 1)
- {
- writeList(rObj);
- return;
- }
-
- out.print(formatResource(rObj));
- }
-
-
-
- // Need to out.print in short (all on one line) and long forms (multiple lines)
- protected void writeList(Resource resource)
- {
- out.print( "(");
- out.incIndent(2) ;
- boolean listFirst = true;
- for (Iterator<RDFNode> iter = rdfListIterator(resource); iter.hasNext();)
- {
- if (!listFirst)
- out.print( " ");
- listFirst = false;
- RDFNode n = iter.next();
- writeObject(n) ;
- }
- out.print( ")");
- out.decIndent(2) ;
- rdfListsDone.add(resource);
-
- }
-
- // Need to out.print in long (triples) form.
- protected void writeListUnpretty(Resource r)
- {
- //for ( ; ! r.equals(RDF.nil); )
- {
- // Write statements at this node.
- StmtIterator sIter = r.getModel().listStatements(r, null, (RDFNode)null) ;
- for ( ; sIter.hasNext() ; )
- {
- Statement s = sIter.next() ;
- writeStatement(s) ;
- }
-
- // Look for rdf:rest.
- sIter = r.getModel().listStatements(r, RDF.rest, (RDFNode)null) ;
- for ( ; sIter.hasNext() ; )
- {
- Statement s = sIter.next() ;
- RDFNode nextNode = s.getObject() ;
- if ( nextNode instanceof Resource )
- {
- Resource r2 = (Resource)nextNode ;
- writeListUnpretty(r2) ;
- }
- else
- writeStatement(s) ;
- }
- }
- }
-
- private void writeStatement(Statement s)
- {
- out.print(formatResource(s.getSubject()));
- out.print(" ") ;
-
- out.print(formatResource(s.getPredicate())) ;
- out.print(" ") ;
-
- out.print(formatNode(s.getObject())) ;
- out.println(" .") ;
-
- }
-
- // Called before each writing run.
- protected void allocateDatastructures()
- {
- rdfLists = new HashSet<>() ;
- rdfListsAll = new HashSet<>() ;
- rdfListsDone = new HashSet<>() ;
- oneRefObjects = new HashSet<>() ;
- oneRefDone = new HashSet<>() ;
- }
-
- // Especially release large intermediate memory objects
- protected void clearDatastructures()
- {
- rdfLists = null ;
- rdfListsAll = null ;
- rdfListsDone = null ;
- oneRefObjects = null ;
- oneRefDone = null ;
- }
-}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterPlain.java b/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterPlain.java
deleted file mode 100644
index 3e7ef6e..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterPlain.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-/** An simple N3 writer - writes N3 out as records, one per subject in the graph.
- */
-
-
-
-public class N3JenaWriterPlain extends N3JenaWriterCommon
-{
-
-}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterTriples.java b/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterTriples.java
deleted file mode 100644
index b71d7cc..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3JenaWriterTriples.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-//import org.apache.commons.logging.*;
-import org.apache.jena.rdf.model.* ;
-
-/** A simple N3 writer - writes N3 out as triples with prefixes done.
- * "N3 triples" - triples with N3 abbreviations and prefixes.
- * Very simple.
- */
-
-public class N3JenaWriterTriples extends N3JenaWriterCommon
-{
- static public final int colWidth = 8 ;
-
- @Override
- protected void writeModel(Model model)
- {
- alwaysAllocateBNodeLabel = true ;
- StmtIterator sIter = model.listStatements() ;
- for ( ; sIter.hasNext() ; )
- {
- Statement stmt = sIter.nextStatement() ;
- String subjStr = formatResource(stmt.getSubject()) ;
-
- out.print(subjStr) ;
- padCol(subjStr) ;
- out.print(minGapStr) ;
-
-
- String predStr = formatProperty(stmt.getPredicate()) ;
- out.print(predStr) ;
- padCol(predStr) ;
- out.print(minGapStr) ;
-
- out.print( formatNode(stmt.getObject()) ) ;
- out.println(" .") ;
- }
- sIter.close() ;
- }
-
- private void padCol(String tmp)
- {
- if ( tmp.length() < (colWidth) )
- out.print(pad( colWidth - tmp.length())) ;
- }
-}
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3TurtleJenaWriter.java b/jena-core/src/main/java/org/apache/jena/n3/N3TurtleJenaWriter.java
deleted file mode 100644
index 64114e9..0000000
--- a/jena-core/src/main/java/org/apache/jena/n3/N3TurtleJenaWriter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.
- */
-
-// To do:
-// Better detection of illegal characters in qnames (? and = for example)
-
-package org.apache.jena.n3;
-
-
-/** Turtle writer */
-
-
-
-public class N3TurtleJenaWriter extends N3JenaWriter
-{
- public N3TurtleJenaWriter()
- {
- super() ;
-// if ( writer.getPropValue("usePropertySymbols") == null )
-// writer.useWellKnownPropertySymbols = false ;
- // Only allow "a" for rdf:type.
- writer.wellKnownPropsMap = N3JenaWriterPP.wellKnownPropsMapTurtle ;
- writer.allowTripleQuotedStrings = true ;
- }
-}
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/RDFReaderF.java b/jena-core/src/main/java/org/apache/jena/rdf/model/RDFReaderF.java
index aaab438..240b3e1 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/RDFReaderF.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/RDFReaderF.java
@@ -54,29 +54,4 @@ public interface RDFReaderF {
*/
public RDFReader getReader(String lang) ;
-
-/** set the class name for the RDFReader for a language
- * @param lang the language for which this class should be used
- * @param className the class name for readers for this language
- * @return the old class name for this language
- */
- @Deprecated
- public String setReaderClassName(String lang, String className);
-
- /**
- * Resets the values to the initial condition.
- */
- @Deprecated
- public void resetRDFReaderF();
-
- /**
- * Remove lang from list of readers..
- * Must be one of the classes that was added using setReaderClassName()
- * @param lang The lang to remove.
- * @return the old class name for this language
- * @throws IllegalArgumentException if lang is one of the initial languages
- */
- @Deprecated
- public String removeReader( String lang ) throws IllegalArgumentException;
-
}
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/RDFWriterF.java b/jena-core/src/main/java/org/apache/jena/rdf/model/RDFWriterF.java
index ad2b949..3bf07d7 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/RDFWriterF.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/RDFWriterF.java
@@ -21,17 +21,15 @@ package org.apache.jena.rdf.model;
/** An RDFWriter factory interface.
*
* <p>The factory will create an appropriate writer for the particular
- * serialization language being read. Predefined languages include:</p>
+ * serialization language being read. Predefined languages:</p>
* <ul>
* <li>RDF/XML - default</li>
* <li>RDF/XML-ABBREV</li>
* <li>N-TRIPLE</li>
- * <li>N3</li>
* </ul>
*<p>System wide defaults for classes to use as readers for these languages
- *are defined. These defaults may be overridden by setting a system property
- *with a name of the form org.apache.jena.readers.<lang> to the class
- *name.</p>
+ *are defined.
+ *</p>
*<p><b>NOTE:</b> All settings are global in nature</p>
*/
@@ -48,29 +46,4 @@ public interface RDFWriterF {
* @return the RDFWriter instance
*/
public RDFWriter getWriter(String lang);
-
-/** set the class name for the RDFWriter for a language
- * @param lang the language for which this class should be used
- * @param className the class name for writers for this language
- * @throws NullPointerException if lang or classname is null.
- * @return the old class name for this language
- */
- @Deprecated
- public String setWriterClassName(String lang, String className);
-
- /**
- * Resets the values to the initial condition.
- */
- @Deprecated
- public void resetRDFWriterF();
-
- /**
- * Remove lang from list of writers.
- * Must be one of the classes that was added using setWriterClassName()
- * @param lang The lang to remove.
- * @return the old class name for this language
- * @throws IllegalArgumentException if lang is one of the initial languages
- */
- @Deprecated
- public String removeWriter( String lang ) throws IllegalArgumentException;
}
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
index f989380..eb4b5f4 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
@@ -236,28 +236,6 @@ implements Model, PrefixMapping, Lock
return readerFactory.getReader(lang);
}
- /** @deprecated Use {@code org.apache.jena.riot.RDFParserRegistry.register}
- */
- @Override
- @Deprecated
- public String setReaderClassName(String lang, String className) {
- return readerFactory.setReaderClassName(lang, className);
- }
-
- @Override
- @Deprecated
- public void resetRDFReaderF()
- {
- readerFactory.resetRDFReaderF();
- }
-
- @Override
- @Deprecated
- public String removeReader( String lang ) throws IllegalArgumentException
- {
- return readerFactory.removeReader(lang);
- }
-
@Override
public Model read(String url) {
readerFactory .getReader() .read(this, url);
@@ -324,27 +302,6 @@ implements Model, PrefixMapping, Lock
return writerFactory.getWriter(lang);
}
-
- /** @deprecated Use {@code org.apache.jena.riot.RDFWriterRegistry.register}
- */
- @Override
- @Deprecated
- public String setWriterClassName(String lang, String className) {
- return writerFactory.setWriterClassName(lang, className);
- }
-
- @Override
- @Deprecated
- public void resetRDFWriterF() {
- writerFactory.resetRDFWriterF();
- }
-
- @Override
- @Deprecated
- public String removeWriter( String lang ) throws IllegalArgumentException {
- return writerFactory.removeWriter( lang );
- }
-
@Override
public Model write(Writer writer)
{
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
index 3fb35ce..3a5e0fe 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
@@ -70,19 +70,6 @@ public class RDFReaderFImpl extends Object implements RDFReaderF {
/**
* Use RIOT to add custom RDF parsers. See
- * {@code RDFParserRegistry.registerLangTriples} and
- * {@code RDFParserRegistry.registerLangQuads}
- *
- * @deprecated Register with RIOT.
- */
- @Override
- @Deprecated
- public String setReaderClassName(String lang, String className) {
- return setBaseReaderClassName(lang, className);
- }
-
- /**
- * Use RIOT to add custom RDF parsers. See
* {@code RDFParserRegistry.registerLang}
*
* @deprecated Register with RIOT.
@@ -108,16 +95,6 @@ public class RDFReaderFImpl extends Object implements RDFReaderF {
}
}
- @Override
- public void resetRDFReaderF() {
- reset();
- }
-
- @Override
- public String removeReader(String lang) throws IllegalArgumentException {
- return remove(lang);
- }
-
static {
// static initializer - set default readers
reset();
@@ -126,7 +103,7 @@ public class RDFReaderFImpl extends Object implements RDFReaderF {
private static void reset() {
Class<? extends RDFReader> rdfxmlReader = org.apache.jena.rdfxml.xmlinput.JenaReader.class;
Class<? extends RDFReader> ntReader = org.apache.jena.rdf.model.impl.NTripleReader.class;
- Class<? extends RDFReader> turtleReader = org.apache.jena.n3.turtle.TurtleReader.class;
+ Class<? extends RDFReader> turtleReader = org.apache.jena.ttl.turtle.TurtleReader.class;
custom.put("RDF", rdfxmlReader);
custom.put("RDF/XML", rdfxmlReader);
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
index d2847bd..6f075e8 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
@@ -22,10 +22,8 @@ import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.n3.N3JenaWriter;
import org.apache.jena.rdf.model.RDFWriter;
import org.apache.jena.rdf.model.RDFWriterF;
-import org.apache.jena.shared.ConfigException;
import org.apache.jena.shared.JenaException;
import org.apache.jena.shared.NoWriterForLangException ;
@@ -42,7 +40,12 @@ public class RDFWriterFImpl extends Object implements RDFWriterF {
public static void alternative(RDFWriterF other) {
rewiredAlternative = other ;
}
-
+
+ /** Return the the current "rewiredAlternative" which may be null, meaning {@code RDFWriterFImpl} is in use. */
+ public static RDFWriterF getCurrentRDFWriterF(RDFWriterF other) {
+ return rewiredAlternative;
+ }
+
/** Creates new RDFReaderFImpl */
public RDFWriterFImpl() {}
@@ -69,55 +72,7 @@ public class RDFWriterFImpl extends Object implements RDFWriterF {
}
}
- /**
- * Use RIOT to add custom RDF parsers. See
- * {@code RDFWriterRegistry.registerLang}
- *
- * @deprecated Register with RIOT.
- */
- @Override
- @Deprecated
- public String setWriterClassName(String lang, String className) {
- return setBaseWriterClassName(lang, className);
- }
-
- /**
- * Use RIOT to add custom RDF parsers. See
- * {@code RDFWriterRegistry.registerLang}
- *
- * @deprecated Register with RIOT.
- */
- @Deprecated
- public static String setBaseWriterClassName(String lang, String className) {
- if ( rewiredAlternative != null )
- Log.error(RDFWriterFImpl.class, "Rewired RDFWriterFImpl2 - configuration changes have no effect on writing");
- String oldClassName = currentEntry(lang);
- try {
- @SuppressWarnings("unchecked")
- Class<? extends RDFWriter> newClass = (Class<? extends RDFWriter>)Class.forName(className, false,
- Thread.currentThread().getContextClassLoader());
- custom.put(lang, newClass);
- return oldClassName;
- }
- catch (ClassNotFoundException e) {
- throw new ConfigException("Reader not found on classpath", e);
- }
- catch (Exception e) {
- throw new JenaException(e);
- }
- }
-
- @Override
- public void resetRDFWriterF() {
- reset();
- }
-
- @Override
- public String removeWriter(String lang) throws IllegalArgumentException {
- return remove(lang);
- }
-
- static { // static initializer - set default readers
+ static {
reset();
}
@@ -125,7 +80,6 @@ public class RDFWriterFImpl extends Object implements RDFWriterF {
Class<? extends RDFWriter> rdfxmlWriter = org.apache.jena.rdfxml.xmloutput.impl.Basic.class;
Class<? extends RDFWriter> rdfxmlAbbrevWriter = org.apache.jena.rdfxml.xmloutput.impl.Abbreviated.class;
Class<? extends RDFWriter> ntWriter = org.apache.jena.rdf.model.impl.NTripleWriter.class;
- Class<? extends RDFWriter> ttlWriter = org.apache.jena.n3.N3TurtleJenaWriter.class;
custom.put("RDF/XML", rdfxmlWriter);
custom.put("RDF/XML-ABBREV", rdfxmlAbbrevWriter);
@@ -133,12 +87,6 @@ public class RDFWriterFImpl extends Object implements RDFWriterF {
custom.put("N-TRIPLE", ntWriter);
custom.put("N-TRIPLES", ntWriter);
custom.put("N-Triples", ntWriter);
-
- custom.put("N3", org.apache.jena.n3.N3JenaWriter.class);
-
- custom.put(N3JenaWriter.turtleWriter, ttlWriter);
- custom.put(N3JenaWriter.turtleWriterAlt1, ttlWriter);
- custom.put(N3JenaWriter.turtleWriterAlt2, ttlWriter);
}
private static String currentEntry(String lang) {
diff --git a/jena-core/src/main/java/org/apache/jena/n3/JenaReaderBase.java b/jena-core/src/main/java/org/apache/jena/ttl/JenaReaderBase.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/JenaReaderBase.java
rename to jena-core/src/main/java/org/apache/jena/ttl/JenaReaderBase.java
index 3bb56a4..e808e9b 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/JenaReaderBase.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/JenaReaderBase.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3;
+package org.apache.jena.ttl;
import java.net.* ;
import java.nio.charset.StandardCharsets ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/JenaURIException.java b/jena-core/src/main/java/org/apache/jena/ttl/JenaURIException.java
similarity index 97%
rename from jena-core/src/main/java/org/apache/jena/n3/JenaURIException.java
rename to jena-core/src/main/java/org/apache/jena/ttl/JenaURIException.java
index 6087bc9..e4288a3 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/JenaURIException.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/JenaURIException.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3;
+package org.apache.jena.ttl;
import org.apache.jena.shared.JenaException ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/N3IRIResolver.java b/jena-core/src/main/java/org/apache/jena/ttl/N3IRIResolver.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/N3IRIResolver.java
rename to jena-core/src/main/java/org/apache/jena/ttl/N3IRIResolver.java
index 2084604..4c21261 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/N3IRIResolver.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/N3IRIResolver.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3;
+package org.apache.jena.ttl;
import java.io.File;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/RelativeURIException.java b/jena-core/src/main/java/org/apache/jena/ttl/RelativeURIException.java
similarity index 96%
rename from jena-core/src/main/java/org/apache/jena/n3/RelativeURIException.java
rename to jena-core/src/main/java/org/apache/jena/ttl/RelativeURIException.java
index 9ffbb6c..890b242 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/RelativeURIException.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/RelativeURIException.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3;
+package org.apache.jena.ttl;
public class RelativeURIException extends JenaURIException
{
diff --git a/jena-core/src/main/java/org/apache/jena/n3/package.html b/jena-core/src/main/java/org/apache/jena/ttl/package.html
similarity index 100%
rename from jena-core/src/main/java/org/apache/jena/n3/package.html
rename to jena-core/src/main/java/org/apache/jena/ttl/package.html
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/LabelToNodeMap.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/LabelToNodeMap.java
similarity index 97%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/LabelToNodeMap.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/LabelToNodeMap.java
index c8eef67..c49c536 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/LabelToNodeMap.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/LabelToNodeMap.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import java.util.HashMap;
import java.util.Map;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/ParserBase.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/ParserBase.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/ParserBase.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/ParserBase.java
index 197e231..af9f04e 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/ParserBase.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/ParserBase.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import org.apache.jena.datatypes.RDFDatatype ;
import org.apache.jena.datatypes.TypeMapper ;
@@ -24,10 +24,10 @@ import org.apache.jena.datatypes.xsd.XSDDatatype ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.graph.Triple ;
-import org.apache.jena.n3.N3IRIResolver ;
-import org.apache.jena.n3.JenaURIException ;
import org.apache.jena.shared.PrefixMapping ;
import org.apache.jena.shared.impl.PrefixMappingImpl ;
+import org.apache.jena.ttl.JenaURIException;
+import org.apache.jena.ttl.N3IRIResolver;
import org.apache.jena.vocabulary.RDF ;
@SuppressWarnings("deprecation")
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/ParserTurtle.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/ParserTurtle.java
similarity index 89%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/ParserTurtle.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/ParserTurtle.java
index bdab061..86776bf 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/ParserTurtle.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/ParserTurtle.java
@@ -16,15 +16,15 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import java.io.InputStream ;
import java.io.Reader ;
import org.apache.jena.graph.Graph ;
-import org.apache.jena.n3.turtle.parser.ParseException ;
-import org.apache.jena.n3.turtle.parser.TokenMgrError ;
-import org.apache.jena.n3.turtle.parser.TurtleParser ;
+import org.apache.jena.ttl.turtle.parser.ParseException;
+import org.apache.jena.ttl.turtle.parser.TokenMgrError;
+import org.apache.jena.ttl.turtle.parser.TurtleParser;
import org.apache.jena.util.FileUtils ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/Turtle2NTriples.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/Turtle2NTriples.java
similarity index 98%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/Turtle2NTriples.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/Turtle2NTriples.java
index cdec2d9..67dc8a1 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/Turtle2NTriples.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/Turtle2NTriples.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import java.io.PrintStream;
import java.io.PrintWriter;
@@ -30,7 +30,7 @@ import org.apache.jena.graph.Triple ;
public class Turtle2NTriples implements TurtleEventHandler
{
PrintStream out = System.out ;
- public Turtle2NTriples(PrintStream out) { this.out = out ; }
+ public Turtle2NTriples(int x, PrintStream out) { this.out = out ; }
@Override
public void triple(int line, int col, Triple triple)
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventDump.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventDump.java
similarity index 97%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventDump.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventDump.java
index 8fc3faa..10d5757 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventDump.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventDump.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import org.apache.jena.graph.Triple ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventHandler.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventHandler.java
similarity index 96%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventHandler.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventHandler.java
index 199528d..a1ee0af 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventHandler.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventHandler.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import org.apache.jena.graph.Triple ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventNull.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventNull.java
similarity index 97%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventNull.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventNull.java
index 6db4306..193b0ae 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleEventNull.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleEventNull.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import org.apache.jena.graph.Triple ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleParseException.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleParseException.java
similarity index 97%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleParseException.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleParseException.java
index 7365bc6..76a8468 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleParseException.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleParseException.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import org.apache.jena.shared.JenaException ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleRDFGraphInserter.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleRDFGraphInserter.java
similarity index 98%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleRDFGraphInserter.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleRDFGraphInserter.java
index 4b9d50d..7545e11 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleRDFGraphInserter.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleRDFGraphInserter.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Node ;
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleReader.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleReader.java
similarity index 93%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleReader.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleReader.java
index 3f00b15..e76030e 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/TurtleReader.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/TurtleReader.java
@@ -16,12 +16,12 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import java.io.Reader;
-import org.apache.jena.n3.JenaReaderBase ;
import org.apache.jena.rdf.model.Model ;
+import org.apache.jena.ttl.JenaReaderBase;
public class TurtleReader extends JenaReaderBase
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/JavaCharStream.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/JavaCharStream.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/JavaCharStream.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/JavaCharStream.java
index 5f0a3f8..e0243db 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/JavaCharStream.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/JavaCharStream.java
@@ -18,7 +18,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
/**
* An implementation of interface CharStream, where the stream is assumed to
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/ParseException.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/ParseException.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/ParseException.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/ParseException.java
index 8754ba3..afb1491 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/ParseException.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/ParseException.java
@@ -18,7 +18,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
/**
* This exception is thrown when parse errors are encountered.
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/Token.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/Token.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/Token.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/Token.java
index 57cc0d3..23ee505 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/Token.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/Token.java
@@ -18,7 +18,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
/**
* Describes the input token stream.
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TokenMgrError.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TokenMgrError.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TokenMgrError.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TokenMgrError.java
index 749d201..d94406d 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TokenMgrError.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TokenMgrError.java
@@ -18,7 +18,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
/** Token Manager Error. */
public class TokenMgrError extends Error
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParser.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParser.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParser.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParser.java
index b2141e5..f798386 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParser.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParser.java
@@ -17,10 +17,10 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
import org.apache.jena.graph.* ;
-import org.apache.jena.n3.turtle.ParserBase ;
+import org.apache.jena.ttl.turtle.ParserBase;
public class TurtleParser extends ParserBase implements TurtleParserConstants {
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParserConstants.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParserConstants.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParserConstants.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParserConstants.java
index 36cfcab..826cce1 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParserConstants.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParserConstants.java
@@ -17,7 +17,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
/**
diff --git a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParserTokenManager.java b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParserTokenManager.java
similarity index 99%
rename from jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParserTokenManager.java
rename to jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParserTokenManager.java
index 3a3921e..e14c0a9 100644
--- a/jena-core/src/main/java/org/apache/jena/n3/turtle/parser/TurtleParserTokenManager.java
+++ b/jena-core/src/main/java/org/apache/jena/ttl/turtle/parser/TurtleParserTokenManager.java
@@ -17,7 +17,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle.parser ;
+package org.apache.jena.ttl.turtle.parser ;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/N3ExternalTestsCom.java b/jena-core/src/test/java/org/apache/jena/n3/N3ExternalTestsCom.java
deleted file mode 100644
index 48915a9..0000000
--- a/jena-core/src/test/java/org/apache/jena/n3/N3ExternalTestsCom.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-import java.io.* ;
-import java.util.List ;
-
-import junit.framework.TestSuite ;
-import org.apache.jena.shared.JenaException ;
-import org.apache.jena.util.FileUtils ;
-
-
-public abstract class N3ExternalTestsCom extends TestSuite
-{
- // List of places
- static protected final String dirbases[] = {".", "testN3",
- // Jena2: correct location
- "testing/Turtle/N3", } ;
-
- // Record where we find the file in the constructor
- protected String basedir = null ;
- protected String testFile ;
-
- public N3ExternalTestsCom(String testName, String filename)
- {
- super(testName) ;
- testFile = findFile(filename) ;
- if ( testFile == null )
- throw new JenaException("No such file: "+filename) ;
- TupleSet tests = null ;
- try {
- Reader r = new BufferedReader(new FileReader(testFile)) ;
- tests = new TupleSet(r) ;
- } catch (IOException ioEx)
- {
- System.err.println("IO exception: "+ioEx) ;
- return ;
- }
-
- for ( ; tests.hasNext() ; )
- {
- List<TupleItem> l = tests.next() ;
- if ( l.size() != 2 )
- {
- System.err.println("Error in N3 test configuration file: "+filename+": length of an entry is "+l.size()) ;
- return ;
- }
- String n3File = l.get(0).get() ;
- String resultsFile = l.get(1).get() ;
-
- makeTest(n3File, resultsFile) ;
- }
- }
-
- abstract protected void makeTest(String n3File, String resultsFile) ;
-
- protected String findFile(String fname)
- {
- for ( String dirbase : dirbases )
- {
- String maybeFile = dirbase + "/" + fname;
- File f = new File( maybeFile );
- if ( f.exists() )
- {
- basedir = dirbase;
- return f.getAbsolutePath();
- }
- }
- return null ;
- }
-
- // Utilities.
-
- static protected PrintWriter makeWriter(OutputStream out)
- {
- return FileUtils.asPrintWriterUTF8(out) ;
- }
-
- static protected BufferedReader makeReader(InputStream in)
- {
- return new BufferedReader(FileUtils.asUTF8(in)) ;
- }
-}
diff --git a/jena-core/src/test/java/org/apache/jena/n3/N3JenaWriterTests.java b/jena-core/src/test/java/org/apache/jena/n3/N3JenaWriterTests.java
deleted file mode 100644
index ba8e78b..0000000
--- a/jena-core/src/test/java/org/apache/jena/n3/N3JenaWriterTests.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * 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 org.apache.jena.n3 ;
-
-import java.io.* ;
-
-import junit.framework.* ;
-import org.apache.jena.rdf.model.* ;
-
-public class N3JenaWriterTests extends N3ExternalTestsCom
-{
- /* JUnit swingUI needed this */
- static public TestSuite suite() {
- return new N3JenaWriterTests() ;
- }
-
- static final String uriBase = "http://host/base/" ;
-
- public N3JenaWriterTests()
- {
- this("n3-writer-tests") ;
- }
-
- public N3JenaWriterTests(String filename)
- {
- super("N3 Jena Writer tests", filename) ;
- }
-
-
- @Override
- protected void makeTest(String inputFile, String resultsFile)
- {
- String testName = inputFile ;
-
- if ( basedir != null )
- inputFile = basedir+"/"+inputFile ;
-
- if ( basedir != null && resultsFile != null && !resultsFile.equals("") )
- resultsFile = basedir + "/" + resultsFile ;
-
- // Run on each of the writers
- addTest(new Test(testName, inputFile, resultsFile, N3JenaWriter.n3Writer));
-
- }
-
- static class Test extends TestCase
- {
- String writerName = null ;
- String testName = null ;
- String basename = null ;
- String inputFile = null ;
- String resultsFile = null ;
- Reader data = null ;
-
-
- Test(String _testName, String _inputFile, String _resultsFile, String wName)
- {
- super("N3 Jena Writer test: "+_testName+"-"+wName) ;
- testName = _testName ;
- inputFile = _inputFile ;
- resultsFile = _resultsFile ;
- writerName = wName ;
- }
-
- @Override
- protected void runTest() throws Throwable
- {
- try {
- data = makeReader(new FileInputStream(inputFile)) ;
- } catch (IOException ioEx)
- {
- fail("File does not exist: "+inputFile) ;
- return ;
- }
-
- // Test: write model to a string, read it again and see if same/isomorphic
-
- Model model_1 = ModelFactory.createDefaultModel() ;
- model_1.read(data, uriBase, "N3") ;
-
- String tmpStr ;
- try ( StringWriter w = new StringWriter() ){
- model_1.write(w, writerName, uriBase) ;
- tmpStr = w.toString() ;
- }
- Model model_2 = ModelFactory.createDefaultModel() ;
- try ( StringReader r = new StringReader(tmpStr) ) {
- model_2.read(r, uriBase, "N3") ;
- }
- if ( ! model_1.isIsomorphicWith(model_2) )
- {
- System.out.println("#### ---- "+testName+" ------------------------------") ;
- System.out.println("#### Model 1 ---- "+testName+" ------------------------------") ;
- model_1.write(System.out, "N3") ;
- System.out.println("#### Model 2 --- "+testName+" ------------------------------") ;
- model_2.write(System.out, "N3") ;
- assertTrue("Models don't match: "+testName, false) ;
- }
- }
- }
-}
diff --git a/jena-core/src/test/java/org/apache/jena/n3/N3TestSuite.java b/jena-core/src/test/java/org/apache/jena/n3/N3TestSuite.java
deleted file mode 100644
index 9f9e2a5..0000000
--- a/jena-core/src/test/java/org/apache/jena/n3/N3TestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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 org.apache.jena.n3;
-
-import junit.framework.* ;
-
-public class N3TestSuite extends TestSuite
-{
- /* JUnit swingUI needed this */
- static public TestSuite suite() {
- return new N3TestSuite() ;
- }
-
-
- private N3TestSuite()
- {
- super("N3") ;
- addTest(TestResolver.suite()) ;
-// addTest(new N3InternalTests()) ;
-// addTest(new N3ExternalTests()) ;
-// addTest(new N3JenaReaderTests()) ;
- addTest(new N3JenaWriterTests()) ;
- }
-}
diff --git a/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestModelRead.java b/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestModelRead.java
index 4551fee..73f4b1a 100644
--- a/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestModelRead.java
+++ b/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestModelRead.java
@@ -69,7 +69,7 @@ public class TestModelRead extends AbstractModelTestBase
@SuppressWarnings("deprecation")
public void testSimpleLoadImplictBase() throws IRIException {
final Model mBasedImplicit = createModel() ;
- String fn=org.apache.jena.n3.N3IRIResolver.resolveGlobal(getFileName("modelReading/based.n3"));
+ String fn=org.apache.jena.ttl.N3IRIResolver.resolveGlobal(getFileName("modelReading/based.n3"));
final Model wanted = createModel().add(ModelHelper.resource(fn), ModelHelper.property("ja:predicate"),
ModelHelper.resource("ja:object")) ;
mBasedImplicit.read(fn, "N3") ;
diff --git a/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFWriterMap.java b/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFWriterMap.java
index be08455..0a851ad 100644
--- a/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFWriterMap.java
+++ b/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFWriterMap.java
@@ -79,9 +79,7 @@ public class TestRDFWriterMap extends JenaTestBase
setWriterClassName(TestRDFWriterMap.NTRIPLES, Jena.PATH + ".rdf.model.impl.NTripleWriter");
}
- @Override
- public String setWriterClassName( final String lang,
- final String className )
+ private String setWriterClassName( final String lang, String className )
{
try
{
@@ -100,18 +98,6 @@ public class TestRDFWriterMap extends JenaTestBase
throw new JenaException(e);
}
}
-
- @Override
- public void resetRDFWriterF() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public String removeWriter(String lang) throws IllegalArgumentException {
- // TODO Auto-generated method stub
- return null;
- }
}
public static final String RDF_XML = "RDF/XML";
diff --git a/jena-core/src/test/java/org/apache/jena/test/TestPackage.java b/jena-core/src/test/java/org/apache/jena/test/TestPackage.java
index 334e815..4ba9ee9 100644
--- a/jena-core/src/test/java/org/apache/jena/test/TestPackage.java
+++ b/jena-core/src/test/java/org/apache/jena/test/TestPackage.java
@@ -40,8 +40,7 @@ public class TestPackage extends TestCase {
addTest(ts, "Mem", org.apache.jena.mem.test.TestMemPackage.suite() );
addTest(ts, "Mem2", org.apache.jena.mem.test.TestGraphMemPackage.suite() );
addTest(ts, "Model", org.apache.jena.rdf.model.test.TestPackage.suite());
- addTest(ts, "N3", org.apache.jena.n3.N3TestSuite.suite());
- addTest(ts, "Turtle", org.apache.jena.n3.turtle.TurtleTestSuite.suite()) ;
+ addTest(ts, "Turtle", org.apache.jena.ttl.turtle.TurtleTestSuite.suite()) ;
addTest(ts, "XML Output", org.apache.jena.rdfxml.xmloutput.TestPackage.suite());
addTest(ts, "Util", org.apache.jena.util.TestPackage.suite());
addTest(ts, "Jena iterator", org.apache.jena.util.iterator.test.TestPackage.suite() );
diff --git a/jena-core/src/test/java/org/apache/jena/n3/TestResolver.java b/jena-core/src/test/java/org/apache/jena/ttl/TestN3IRIResolver.java
similarity index 98%
rename from jena-core/src/test/java/org/apache/jena/n3/TestResolver.java
rename to jena-core/src/test/java/org/apache/jena/ttl/TestN3IRIResolver.java
index 961959f..0c6760f 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/TestResolver.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/TestN3IRIResolver.java
@@ -16,17 +16,17 @@
* limitations under the License.
*/
-package org.apache.jena.n3;
+package org.apache.jena.ttl;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@SuppressWarnings("deprecation")
// Tests the old N3IRIResolver which is now only used for tests.
-public class TestResolver extends TestCase
+public class TestN3IRIResolver extends TestCase
{
public static TestSuite suite()
{
- TestSuite ts = new TestSuite(TestResolver.class) ;
+ TestSuite ts = new TestSuite(TestN3IRIResolver.class) ;
ts.setName("TestURI") ;
return ts ;
}
diff --git a/jena-core/src/test/java/org/apache/jena/n3/TupleItem.java b/jena-core/src/test/java/org/apache/jena/ttl/TupleItem.java
similarity index 98%
rename from jena-core/src/test/java/org/apache/jena/n3/TupleItem.java
rename to jena-core/src/test/java/org/apache/jena/ttl/TupleItem.java
index 0d75ea5..dad914f 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/TupleItem.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/TupleItem.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3;
+package org.apache.jena.ttl;
/**
* The unit found in a line of a tuple.
diff --git a/jena-core/src/test/java/org/apache/jena/n3/TupleSet.java b/jena-core/src/test/java/org/apache/jena/ttl/TupleSet.java
similarity index 99%
rename from jena-core/src/test/java/org/apache/jena/n3/TupleSet.java
rename to jena-core/src/test/java/org/apache/jena/ttl/TupleSet.java
index ebbe678..d36f54c 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/TupleSet.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/TupleSet.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3 ;
+package org.apache.jena.ttl ;
import java.io.* ;
import java.util.* ;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestBadSyntax.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestBadSyntax.java
similarity index 97%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TestBadSyntax.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TestBadSyntax.java
index 5c46c14..51717b5 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestBadSyntax.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestBadSyntax.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.TestCase;
import org.apache.jena.rdf.model.* ;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestSyntax.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestSyntax.java
similarity index 97%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TestSyntax.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TestSyntax.java
index 341c3db..5927669 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestSyntax.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestSyntax.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.TestCase;
import org.apache.jena.rdf.model.* ;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestTurtle.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestTurtle.java
similarity index 98%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TestTurtle.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TestTurtle.java
index 1939862..3cc6f5b 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestTurtle.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestTurtle.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.TestCase;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestTurtleReader.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestTurtleReader.java
similarity index 97%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TestTurtleReader.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TestTurtleReader.java
index 7f37261..b9008a2 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TestTurtleReader.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TestTurtleReader.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.TestCase;
import junit.framework.TestSuite;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleInternalTests.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleInternalTests.java
similarity index 99%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleInternalTests.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleInternalTests.java
index 1e3d4dc..7a94be2 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleInternalTests.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleInternalTests.java
@@ -16,13 +16,13 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.* ;
import java.io.* ;
-import org.apache.jena.n3.turtle.parser.TurtleParser ;
+import org.apache.jena.ttl.turtle.parser.TurtleParser;
import org.apache.jena.util.junit.TestUtils ;
public class TurtleInternalTests extends TestSuite
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestFactory.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestFactory.java
similarity index 98%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestFactory.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestFactory.java
index b959185..9ad3b55 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestFactory.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestFactory.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.Test;
import junit.framework.TestSuite;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestSuite.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestSuite.java
similarity index 97%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestSuite.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestSuite.java
index 468c553..055b78e 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestSuite.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestSuite.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle;
+package org.apache.jena.ttl.turtle;
import junit.framework.* ;
diff --git a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestVocab.java b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestVocab.java
similarity index 98%
rename from jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestVocab.java
rename to jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestVocab.java
index a8688f4..09bd84c 100644
--- a/jena-core/src/test/java/org/apache/jena/n3/turtle/TurtleTestVocab.java
+++ b/jena-core/src/test/java/org/apache/jena/ttl/turtle/TurtleTestVocab.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.n3.turtle ;
+package org.apache.jena.ttl.turtle ;
import org.apache.jena.rdf.model.* ;
diff --git a/jena-core/src/test/java/org/apache/jena/util/junit/ManifestOld.java b/jena-core/src/test/java/org/apache/jena/util/junit/ManifestOld.java
index 02c2f83..96f8218 100644
--- a/jena-core/src/test/java/org/apache/jena/util/junit/ManifestOld.java
+++ b/jena-core/src/test/java/org/apache/jena/util/junit/ManifestOld.java
@@ -51,7 +51,7 @@ public class ManifestOld
public ManifestOld(String fn)
{
log.debug("Manifest = "+fn ) ;
- filename = org.apache.jena.n3.N3IRIResolver.resolveGlobal(fn) ;
+ filename = org.apache.jena.ttl.N3IRIResolver.resolveGlobal(fn) ;
log.debug(" = "+filename ) ;
manifest = FileManager.getInternal().loadModelInternal(filename) ;
parseIncludes() ;
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredModel.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredModel.java
index 4a64e71..0f51e26 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredModel.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredModel.java
@@ -1792,28 +1792,6 @@ public interface SecuredModel extends Model, SecuredPrefixMapping {
/**
*
- * @sec.graph Update
- * @throws UpdateDeniedException
- * @throws AuthenticationRequiredException
- * if user is not authenticated and is required to be.
- */
- @Override
- public String setReaderClassName(final String lang, final String className)
- throws UpdateDeniedException, AuthenticationRequiredException;
-
- /**
- *
- * @sec.graph Update
- * @throws UpdateDeniedException
- * @throws AuthenticationRequiredException
- * if user is not authenticated and is required to be.
- */
- @Override
- public String setWriterClassName(final String lang, final String className)
- throws UpdateDeniedException, AuthenticationRequiredException;
-
- /**
- *
* @sec.graph Read
* @throws ReadDeniedException
* @throws AuthenticationRequiredException
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
index f172038..81dbeec 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
@@ -1209,18 +1209,6 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
return holder.getBaseItem().getReader(lang);
}
- @SuppressWarnings("deprecation")
- @Override
- public void resetRDFReaderF() {
- holder.getBaseItem().resetRDFReaderF();
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public String removeReader(String lang) throws IllegalArgumentException {
- return holder.getBaseItem().removeReader(lang);
- }
-
@Override
public SecuredStatement getRequiredProperty(final Resource s, final Property p)
throws ReadDeniedException, AuthenticationRequiredException {
@@ -1284,18 +1272,6 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
return holder.getBaseItem().getWriter(lang);
}
- @SuppressWarnings("deprecation")
- @Override
- public void resetRDFWriterF() {
- holder.getBaseItem().resetRDFWriterF();
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public String removeWriter(String lang) throws IllegalArgumentException {
- return holder.getBaseItem().removeWriter(lang);
- }
-
@Override
public boolean independent() {
return false;
@@ -1950,22 +1926,6 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
return holder.getSecuredItem();
}
- @SuppressWarnings("deprecation")
- @Override
- public String setReaderClassName(final String lang, final String className)
- throws UpdateDeniedException, AuthenticationRequiredException {
- checkUpdate();
- return holder.getBaseItem().setReaderClassName(lang, className);
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public String setWriterClassName(final String lang, final String className)
- throws UpdateDeniedException, AuthenticationRequiredException {
- checkUpdate();
- return holder.getBaseItem().setWriterClassName(lang, className);
- }
-
@Override
public String shortForm(final String uri) throws ReadDeniedException, AuthenticationRequiredException {
checkRead();