JENA-1012 : RiotParser class to hide implementation details.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/85b9243c Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/85b9243c Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/85b9243c Branch: refs/heads/JENA-491-construct-quads Commit: 85b9243cbdfae2f1c6dcf148ac242e7c3d768877 Parents: fdd77f9 Author: Andy Seaborne <[email protected]> Authored: Thu Aug 20 17:54:47 2015 +0100 Committer: Andy Seaborne <[email protected]> Committed: Thu Aug 20 17:56:30 2015 +0100 ---------------------------------------------------------------------- .../org/apache/jena/riot/RDFParserRegistry.java | 10 +- .../java/org/apache/jena/riot/ReaderRIOT.java | 4 +- .../java/org/apache/jena/riot/RiotReader.java | 218 +----------------- .../org/apache/jena/riot/lang/RiotParsers.java | 230 +++++++++++++++++++ 4 files changed, 251 insertions(+), 211 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/85b9243c/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java index 9ba05c8..e88d14a 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserRegistry.java @@ -31,6 +31,7 @@ import org.apache.jena.atlas.web.ContentType ; import org.apache.jena.riot.lang.JsonLDReader ; import org.apache.jena.riot.lang.LangRIOT ; import org.apache.jena.riot.lang.ReaderTriX ; +import org.apache.jena.riot.lang.RiotParsers ; import org.apache.jena.riot.system.ErrorHandler ; import org.apache.jena.riot.system.ErrorHandlerFactory ; import org.apache.jena.riot.system.ParserProfile ; @@ -167,7 +168,7 @@ public class RDFParserRegistry @Override public void read(InputStream in, String baseURI, ContentType ct, StreamRDF output, Context context) { @SuppressWarnings("deprecation") - LangRIOT parser = RiotReader.createParser(in, lang, baseURI, output) ; + LangRIOT parser = RiotParsers.createParser(in, lang, baseURI, output) ; if ( parserProfile != null ) parser.setProfile(parserProfile); if ( errorHandler != null ) @@ -178,7 +179,7 @@ public class RDFParserRegistry @Override public void read(Reader in, String baseURI, ContentType ct, StreamRDF output, Context context) { @SuppressWarnings("deprecation") - LangRIOT parser = RiotReader.createParser(in, lang, baseURI, output) ; + LangRIOT parser = RiotParsers.createParser(in, lang, baseURI, output) ; parser.getProfile().setHandler(errorHandler) ; parser.parse() ; } @@ -187,7 +188,10 @@ public class RDFParserRegistry @Override public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler ; } @Override public ParserProfile getParserProfile() { return parserProfile ; } - @Override public void setParserProfile(ParserProfile parserProfile) { this.parserProfile = parserProfile ; } + @Override public void setParserProfile(ParserProfile parserProfile) { + this.parserProfile = parserProfile ; + this.errorHandler = parserProfile.getHandler() ; + } } private static class ReaderRIOTFactoryJSONLD implements ReaderRIOTFactory { http://git-wip-us.apache.org/repos/asf/jena/blob/85b9243c/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOT.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOT.java index 2179608..a9f3be7 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOT.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/ReaderRIOT.java @@ -62,8 +62,8 @@ public interface ReaderRIOT public ErrorHandler getErrorHandler() ; public void setErrorHandler(ErrorHandler errorHandler) ; - /** Get the parser profile. Not all parser have parser profiles so this may be null */ + /** Get the parser profile. Not all parsers have parser profiles so this may be null */ public ParserProfile getParserProfile() ; - /** Set the parser profile. Not all parser have parser profiles so this may be a no-op */ + /** Set the parser profile. Not all parsers have parser profiles so this may be a no-op */ public void setParserProfile(ParserProfile profile) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/85b9243c/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java b/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java index 4b7faa1..df7d7e5 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java @@ -18,36 +18,19 @@ package org.apache.jena.riot; -import static org.apache.jena.riot.RDFLanguages.CSV; -import static org.apache.jena.riot.RDFLanguages.N3 ; -import static org.apache.jena.riot.RDFLanguages.NQUADS ; import static org.apache.jena.riot.RDFLanguages.NTRIPLES ; -import static org.apache.jena.riot.RDFLanguages.RDFJSON ; -import static org.apache.jena.riot.RDFLanguages.RDFXML ; -import static org.apache.jena.riot.RDFLanguages.TRIG ; -import static org.apache.jena.riot.RDFLanguages.TURTLE ; -import static org.apache.jena.riot.RDFLanguages.RDFNULL ; import static org.apache.jena.riot.RDFLanguages.filenameToLang ; import java.io.InputStream ; -import java.io.Reader ; import java.util.Iterator ; import org.apache.jena.atlas.io.IO ; -import org.apache.jena.atlas.io.PeekReader ; import org.apache.jena.atlas.iterator.IteratorResourceClosing ; -import org.apache.jena.atlas.json.io.parser.TokenizerJSON ; import org.apache.jena.atlas.lib.Sink ; import org.apache.jena.graph.Triple ; import org.apache.jena.riot.lang.* ; -import org.apache.jena.riot.out.CharSpace; -import org.apache.jena.riot.system.ErrorHandlerFactory ; -import org.apache.jena.riot.system.IRIResolver ; -import org.apache.jena.riot.system.RiotLib ; import org.apache.jena.riot.system.StreamRDF ; import org.apache.jena.riot.system.StreamRDFLib ; -import org.apache.jena.riot.tokens.Tokenizer ; -import org.apache.jena.riot.tokens.TokenizerFactory ; import org.apache.jena.sparql.core.Quad ; /** Operations to access RIOT parsers and send the output to @@ -63,7 +46,9 @@ public class RiotReader * Must be in a triples syntax. * @param filename * @param dest Where to send the triples from the parser. + * @deprecated Use {@link RDFDataMgr#parse(StreamRDF, String)} */ + @Deprecated public static void parse(String filename, StreamRDF dest) { parse(filename, null, null, dest) ; } @@ -72,7 +57,9 @@ public class RiotReader * @param filename * @param lang Language, or null for "guess from URL" (e.g. file extension) * @param dest Where to send the triples from the parser. - */ + * @deprecated Use {@link RDFDataMgr#parse(StreamRDF, String, Lang)} + */ + @Deprecated public static void parse(String filename, Lang lang, StreamRDF dest) { parse(filename, lang, null, dest) ; @@ -84,7 +71,9 @@ public class RiotReader * @param lang Language, or null for "guess from URL" (e.g. file extension) * @param baseIRI Base IRI, or null for based on input filename * @param dest Where to send the triples from the parser. - */ + * @deprecated Use {@link RDFDataMgr#parse(StreamRDF, String, String, Lang)} + */ + @Deprecated public static void parse(String filename, Lang lang, String baseIRI, StreamRDF dest) { if ( lang == null ) @@ -119,73 +108,6 @@ public class RiotReader // -------- Parsers - /** Create a parser - * @deprecated Use {@link RDFDataMgr#createReader(Lang)} - */ - @Deprecated - public static LangRIOT createParser(InputStream input, Lang lang, String baseIRI, StreamRDF dest) - { - if ( lang == RDFXML ) - { - if ( baseIRI != null ) - baseIRI = IRIResolver.resolveString(baseIRI) ; - return LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ; - } else if ( lang == CSV){ - return new LangCSV (input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest); - } - Tokenizer tokenizer = ( lang == RDFJSON ) ? - new TokenizerJSON(PeekReader.makeUTF8(input)) : - TokenizerFactory.makeTokenizerUTF8(input) ; - return createParser(tokenizer, lang, baseIRI, dest) ; - } - - /** Create a parser - * @deprecated Use {@link RDFDataMgr#createReader(Lang)} - */ - @Deprecated - public static LangRIOT createParser(Reader input, Lang lang, String baseIRI, StreamRDF dest) - { - if ( lang == RDFXML ) - { - if ( baseIRI != null ) - baseIRI = IRIResolver.resolveStringSilent(baseIRI) ; - return LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ; - } else if ( lang == CSV){ - return new LangCSV (input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest); - } - Tokenizer tokenizer = ( lang == RDFJSON ) ? - new TokenizerJSON(PeekReader.make(input)) : - TokenizerFactory.makeTokenizer(input) ; - return createParser(tokenizer, lang, baseIRI, dest) ; - } - - /** Create a parser - * @deprecated Use {@link RDFDataMgr#createReader(Lang)} - */ - @Deprecated - public static LangRIOT createParser(Tokenizer tokenizer, Lang lang, String baseIRI, StreamRDF dest) - { - if ( RDFLanguages.sameLang(RDFXML, lang) ) - throw new RiotException("Not possible - can't parse RDF/XML from a RIOT token stream") ; - if ( RDFLanguages.sameLang(TURTLE, lang) || RDFLanguages.sameLang(N3, lang) ) - return createParserTurtle(tokenizer, baseIRI, dest) ; - if ( RDFLanguages.sameLang(NTRIPLES, lang) ) - return createParserNTriples(tokenizer, dest) ; - if ( RDFLanguages.sameLang(RDFJSON, lang) ) - // But it must be a JSON tokenizer ... - return createParserRdfJson(tokenizer, dest) ; - - if ( RDFLanguages.sameLang(NQUADS, lang) ) - return createParserNQuads(tokenizer, dest) ; - if ( RDFLanguages.sameLang(TRIG, lang) ) - return createParserTriG(tokenizer, baseIRI, dest) ; - - if ( RDFLanguages.sameLang(RDFNULL, lang) ) - return new LangNull() ; - - return null ; - } - /** Parse a file, sending triples to a sink. * Must be in a triples syntax. * @param filename @@ -270,7 +192,7 @@ public class RiotReader // Special case N-Triples, because the RIOT reader has a pull interface if ( RDFLanguages.sameLang(RDFLanguages.NTRIPLES, lang) ) { - return new IteratorResourceClosing<>(createParserNTriples(input, null), input); + return new IteratorResourceClosing<>(RiotParsers.createParserNTriples(input, null), input); } else { @@ -285,7 +207,7 @@ public class RiotReader { out.start(); parse(input, lang, baseIRI, out); - // Unsafe: out.finish() ; + out.finish() ; } }); t.start(); @@ -306,7 +228,7 @@ public class RiotReader // Special case N-Quads, because the RIOT reader has a pull interface if ( RDFLanguages.sameLang(RDFLanguages.NQUADS, lang) ) { - return new IteratorResourceClosing<>(createParserNQuads(input, null), input); + return new IteratorResourceClosing<>(RiotParsers.createParserNQuads(input, null), input); } else { @@ -321,7 +243,7 @@ public class RiotReader { out.start(); parse(input, lang, baseIRI, out); - // Unsafe: out.finish() ; + out.finish() ; } }); t.start(); @@ -329,120 +251,4 @@ public class RiotReader return it; } } - - /** Create a parser for Turtle - * @deprecated use an RDFDataMgr operation with argument Lang.Turtle - */ - @Deprecated - public static LangTurtle createParserTurtle(InputStream input, String baseIRI, StreamRDF dest) - { - Tokenizer tokenizer = TokenizerFactory.makeTokenizerUTF8(input) ; - return createParserTurtle(tokenizer, baseIRI, dest) ; - } - - /** Create a parser for Turtle */ - public static LangTurtle createParserTurtle(Tokenizer tokenizer, String baseIRI, StreamRDF dest) - { - RiotLib.profile(RDFLanguages.TURTLE, baseIRI) ; - LangTurtle parser = new LangTurtle(tokenizer, RiotLib.profile(RDFLanguages.TURTLE, baseIRI), dest) ; - return parser ; - } - - /** Create a parser for RDF/XML - * @deprecated use an RDFDataMgr operation with argument Lang.RDFXML - */ - @Deprecated - public static LangRDFXML createParserRDFXML(InputStream input, String baseIRI, StreamRDF dest) - { - if ( baseIRI == null ) - baseIRI = SysRIOT.chooseBaseIRI() ; - LangRDFXML parser = LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ; - return parser ; - } - - /** Create parsers for RDF/JSON */ - public static LangRDFJSON createParserRdfJson(Tokenizer tokenizer, StreamRDF dest) - { - LangRDFJSON parser = new LangRDFJSON(tokenizer, RiotLib.profile(RDFLanguages.RDFJSON, null), dest) ; - return parser; - } - - /** - * @deprecated use RDFDataMgr and Lang.RDFJSON - */ - @Deprecated - public static LangRDFJSON createParserRdfJson(InputStream input, StreamRDF dest) - { - TokenizerJSON tokenizer = new TokenizerJSON(PeekReader.makeUTF8(input)) ; - return createParserRdfJson(tokenizer, dest) ; - } - - /** Create a parser for TriG - * @deprecated use an RDFDataMgr operation with argument Lang.TRIG - */ - @Deprecated - public static LangTriG createParserTriG(InputStream input, String baseIRI, StreamRDF dest) - { - Tokenizer tokenizer = TokenizerFactory.makeTokenizerUTF8(input) ; - return createParserTriG(tokenizer, baseIRI, dest) ; - } - - /** Create a parser for TriG */ - public static LangTriG createParserTriG(Tokenizer tokenizer, String baseIRI, StreamRDF dest) - { - LangTriG parser = new LangTriG(tokenizer, RiotLib.profile(RDFLanguages.TRIG, baseIRI), dest) ; - return parser ; - } - - /** Create a parser for N-Triples - * @deprecated use an RDFDataMgr operation with argument Lang.NTRIPLES - */ - @Deprecated - public static LangNTriples createParserNTriples(InputStream input, StreamRDF dest) - { - return createParserNTriples(input, CharSpace.UTF8, dest) ; - } - - /** Create a parser for N-Triples - * @deprecated use an RDFDataMgr operation with argument Lang.NTRIPLES - */ - @Deprecated - public static LangNTriples createParserNTriples(InputStream input, CharSpace charSpace, StreamRDF dest) - { - Tokenizer tokenizer = charSpace == CharSpace.ASCII ? TokenizerFactory.makeTokenizerASCII(input) : TokenizerFactory.makeTokenizerUTF8(input) ; - return createParserNTriples(tokenizer, dest) ; - } - - /** Create a parser for N-Triples */ - public static LangNTriples createParserNTriples(Tokenizer tokenizer, StreamRDF dest) - { - LangNTriples parser = new LangNTriples(tokenizer, RiotLib.profile(RDFLanguages.NTRIPLES, null), dest) ; - return parser ; - } - - /** Create a parser for NQuads - * @deprecated use an RDFDataMgr operation with argument Lang.NQUADS) - */ - @Deprecated - public static LangNQuads createParserNQuads(InputStream input, StreamRDF dest) - { - return createParserNQuads(input, CharSpace.UTF8, dest) ; - } - - /** Create a parser for NQuads - * @deprecated use an RDFDataMgr operation with argument Lang.NQUADS) - */ - @Deprecated - public static LangNQuads createParserNQuads(InputStream input, CharSpace charSpace, StreamRDF dest) - { - Tokenizer tokenizer = charSpace == CharSpace.ASCII ? TokenizerFactory.makeTokenizerASCII(input) : TokenizerFactory.makeTokenizerUTF8(input) ; - return createParserNQuads(tokenizer, dest) ; - } - - /** Create a parser for NQuads */ - public static LangNQuads createParserNQuads(Tokenizer tokenizer, StreamRDF dest) - { - LangNQuads parser = new LangNQuads(tokenizer, RiotLib.profile(RDFLanguages.NQUADS, null), dest) ; - return parser ; - } } http://git-wip-us.apache.org/repos/asf/jena/blob/85b9243c/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java new file mode 100644 index 0000000..306d61b --- /dev/null +++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/RiotParsers.java @@ -0,0 +1,230 @@ +/** + * 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.riot.lang; + +import static org.apache.jena.riot.RDFLanguages.CSV ; +import static org.apache.jena.riot.RDFLanguages.N3 ; +import static org.apache.jena.riot.RDFLanguages.NQUADS ; +import static org.apache.jena.riot.RDFLanguages.NTRIPLES ; +import static org.apache.jena.riot.RDFLanguages.RDFJSON ; +import static org.apache.jena.riot.RDFLanguages.RDFNULL ; +import static org.apache.jena.riot.RDFLanguages.RDFXML ; +import static org.apache.jena.riot.RDFLanguages.TRIG ; +import static org.apache.jena.riot.RDFLanguages.TURTLE ; + +import java.io.InputStream ; +import java.io.Reader ; + +import org.apache.jena.atlas.io.PeekReader ; +import org.apache.jena.atlas.json.io.parser.TokenizerJSON ; +import org.apache.jena.riot.* ; +import org.apache.jena.riot.out.CharSpace ; +import org.apache.jena.riot.system.ErrorHandlerFactory ; +import org.apache.jena.riot.system.IRIResolver ; +import org.apache.jena.riot.system.RiotLib ; +import org.apache.jena.riot.system.StreamRDF ; +import org.apache.jena.riot.tokens.Tokenizer ; +import org.apache.jena.riot.tokens.TokenizerFactory ; + +public class RiotParsers { + + /** Create a parser for Turtle + * @deprecated use an RDFDataMgr operation with argument Lang.Turtle + */ + @Deprecated + public static LangTurtle createParserTurtle(InputStream input, String baseIRI, StreamRDF dest) + { + Tokenizer tokenizer = TokenizerFactory.makeTokenizerUTF8(input) ; + return createParserTurtle(tokenizer, baseIRI, dest) ; + } + + /** Create a parser for Turtle */ + public static LangTurtle createParserTurtle(Tokenizer tokenizer, String baseIRI, StreamRDF dest) + { + RiotLib.profile(RDFLanguages.TURTLE, baseIRI) ; + LangTurtle parser = new LangTurtle(tokenizer, RiotLib.profile(RDFLanguages.TURTLE, baseIRI), dest) ; + return parser ; + } + + /** Create a parser for RDF/XML + * @deprecated use an RDFDataMgr operation with argument Lang.RDFXML + */ + @Deprecated + public static LangRDFXML createParserRDFXML(InputStream input, String baseIRI, StreamRDF dest) + { + if ( baseIRI == null ) + baseIRI = SysRIOT.chooseBaseIRI() ; + LangRDFXML parser = LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ; + return parser ; + } + + /** Create parsers for RDF/JSON */ + public static LangRDFJSON createParserRdfJson(Tokenizer tokenizer, StreamRDF dest) + { + LangRDFJSON parser = new LangRDFJSON(tokenizer, RiotLib.profile(RDFLanguages.RDFJSON, null), dest) ; + return parser; + } + + /** + * @deprecated use RDFDataMgr and Lang.RDFJSON + */ + @Deprecated + public static LangRDFJSON createParserRdfJson(InputStream input, StreamRDF dest) + { + TokenizerJSON tokenizer = new TokenizerJSON(PeekReader.makeUTF8(input)) ; + return createParserRdfJson(tokenizer, dest) ; + } + + /** Create a parser for TriG + * @deprecated use an RDFDataMgr operation with argument Lang.TRIG + */ + @Deprecated + public static LangTriG createParserTriG(InputStream input, String baseIRI, StreamRDF dest) + { + Tokenizer tokenizer = TokenizerFactory.makeTokenizerUTF8(input) ; + return createParserTriG(tokenizer, baseIRI, dest) ; + } + + /** Create a parser for TriG. + * @deprecated use an RDFDataMgr operation with argument Lang.TRIG + */ + @Deprecated + public static LangTriG createParserTriG(Tokenizer tokenizer, String baseIRI, StreamRDF dest) + { + LangTriG parser = new LangTriG(tokenizer, RiotLib.profile(RDFLanguages.TRIG, baseIRI), dest) ; + return parser ; + } + + /** Create a parser for N-Triples + * Normally, use an RDFDataMgr operation with argument Lang.NTRIPLES + */ + public static LangNTriples createParserNTriples(InputStream input, StreamRDF dest) + { + return createParserNTriples(input, CharSpace.UTF8, dest) ; + } + + /** Create a parser for N-Triples + * Normally, use an RDFDataMgr operation with argument Lang.NTRIPLES + */ + public static LangNTriples createParserNTriples(InputStream input, CharSpace charSpace, StreamRDF dest) + { + Tokenizer tokenizer = charSpace == CharSpace.ASCII ? TokenizerFactory.makeTokenizerASCII(input) : TokenizerFactory.makeTokenizerUTF8(input) ; + return createParserNTriples(tokenizer, dest) ; + } + + /** Create a parser for N-Triples */ + public static LangNTriples createParserNTriples(Tokenizer tokenizer, StreamRDF dest) + { + LangNTriples parser = new LangNTriples(tokenizer, RiotLib.profile(RDFLanguages.NTRIPLES, null), dest) ; + return parser ; + } + + /** Create a parser for NQuads + * Normally, use an RDFDataMgr operation with argument Lang.NQUADS + */ + public static LangNQuads createParserNQuads(InputStream input, StreamRDF dest) + { + return createParserNQuads(input, CharSpace.UTF8, dest) ; + } + + /** Create a parser for NQuads + * Normally, use an RDFDataMgr operation with argument Lang.NQUADS + */ + public static LangNQuads createParserNQuads(InputStream input, CharSpace charSpace, StreamRDF dest) + { + Tokenizer tokenizer = charSpace == CharSpace.ASCII ? TokenizerFactory.makeTokenizerASCII(input) : TokenizerFactory.makeTokenizerUTF8(input) ; + return createParserNQuads(tokenizer, dest) ; + } + + /** Create a parser for NQuads */ + public static LangNQuads createParserNQuads(Tokenizer tokenizer, StreamRDF dest) + { + LangNQuads parser = new LangNQuads(tokenizer, RiotLib.profile(RDFLanguages.NQUADS, null), dest) ; + return parser ; + } + + /** Create a parser + * @deprecated Use {@link RDFDataMgr#createReader(Lang)} + */ + @Deprecated + public static LangRIOT createParser(InputStream input, Lang lang, String baseIRI, StreamRDF dest) + { + if ( lang == RDFXML ) + { + if ( baseIRI != null ) + baseIRI = IRIResolver.resolveString(baseIRI) ; + return LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ; + } else if ( lang == CSV){ + return new LangCSV (input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest); + } + Tokenizer tokenizer = ( lang == RDFJSON ) ? + new TokenizerJSON(PeekReader.makeUTF8(input)) : + TokenizerFactory.makeTokenizerUTF8(input) ; + return createParser(tokenizer, lang, baseIRI, dest) ; + } + + /** Create a parser + * @deprecated Use {@link RDFDataMgr#createReader(Lang)} + */ + @Deprecated + public static LangRIOT createParser(Reader input, Lang lang, String baseIRI, StreamRDF dest) + { + if ( lang == RDFXML ) + { + if ( baseIRI != null ) + baseIRI = IRIResolver.resolveStringSilent(baseIRI) ; + return LangRDFXML.create(input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest) ; + } else if ( lang == CSV){ + return new LangCSV (input, baseIRI, baseIRI, ErrorHandlerFactory.getDefaultErrorHandler(), dest); + } + Tokenizer tokenizer = ( lang == RDFJSON ) ? + new TokenizerJSON(PeekReader.make(input)) : + TokenizerFactory.makeTokenizer(input) ; + return createParser(tokenizer, lang, baseIRI, dest) ; + } + + /** Create a parser + * @deprecated Use {@link RDFDataMgr#createReader(Lang)} + */ + @Deprecated + public static LangRIOT createParser(Tokenizer tokenizer, Lang lang, String baseIRI, StreamRDF dest) + { + if ( RDFLanguages.sameLang(RDFXML, lang) ) + throw new RiotException("Not possible - can't parse RDF/XML from a RIOT token stream") ; + if ( RDFLanguages.sameLang(TURTLE, lang) || RDFLanguages.sameLang(N3, lang) ) + return createParserTurtle(tokenizer, baseIRI, dest) ; + if ( RDFLanguages.sameLang(NTRIPLES, lang) ) + return createParserNTriples(tokenizer, dest) ; + if ( RDFLanguages.sameLang(RDFJSON, lang) ) + // But it must be a JSON tokenizer ... + return createParserRdfJson(tokenizer, dest) ; + + if ( RDFLanguages.sameLang(NQUADS, lang) ) + return createParserNQuads(tokenizer, dest) ; + if ( RDFLanguages.sameLang(TRIG, lang) ) + return createParserTriG(tokenizer, baseIRI, dest) ; + + if ( RDFLanguages.sameLang(RDFNULL, lang) ) + return new LangNull() ; + + return null ; + } + +} +
