You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/07/02 16:14:47 UTC

[30/50] [abbrv] incubator-commonsrdf git commit: Added JenaRDFParserBuilder

Added JenaRDFParserBuilder


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/8088d1c9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/8088d1c9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/8088d1c9

Branch: refs/heads/jena
Commit: 8088d1c9408563f0cf29fbd0e8fef5b01af51db1
Parents: 9029396
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Mar 28 05:40:28 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Mar 28 05:40:28 2016 +0100

----------------------------------------------------------------------
 jena/pom.xml                                    |  9 +++++
 .../apache/commons/rdf/jena/JenaCommonsRDF.java | 12 ++++++
 .../commons/rdf/jena/JenaRDFParserBuilder.java  | 40 ++++++++++++++++++++
 .../commons/rdf/jena/RDFTermFactoryJena.java    |  2 +-
 4 files changed, 62 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/8088d1c9/jena/pom.xml
----------------------------------------------------------------------
diff --git a/jena/pom.xml b/jena/pom.xml
index 2a1abbf..e0c4efc 100644
--- a/jena/pom.xml
+++ b/jena/pom.xml
@@ -46,9 +46,18 @@
         </dependency>
 	    <dependency>
 	      <groupId>org.apache.jena</groupId>
+	      <artifactId>apache-jena-libs</artifactId>
+	      <version>${ver.jena}</version>
+	      <type>pom</type>
+	      <scope>optional</scope>
+	    </dependency>        
+<!-- 
+	    <dependency>
+	      <groupId>org.apache.jena</groupId>
 	      <artifactId>jena-osgi</artifactId>
 	      <version>${ver.jena}</version>
 	    </dependency>        
+ -->
         <dependency>
             <groupId>${project.parent.groupId}</groupId>
             <artifactId>commons-rdf-api</artifactId>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/8088d1c9/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
index 8bf8b6d..881b176 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
@@ -18,12 +18,17 @@
 
 package org.apache.commons.rdf.jena;
 
+import java.util.Optional;
+
 import org.apache.commons.rdf.api.* ;
 import org.apache.commons.rdf.jena.impl.*;
 import org.apache.jena.datatypes.RDFDatatype ;
 import org.apache.jena.datatypes.xsd.XSDDatatype ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.riot.RDFLanguages;
 import org.apache.jena.riot.system.StreamRDF ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 
@@ -163,5 +168,12 @@ public class JenaCommonsRDF {
    public static void conversionError(String msg) {
         throw new ConversionException(msg) ;
     }
+
+   public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
+	   return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));	
+   }
+   public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
+	   return RDFSyntax.byMediaType(lang.getContentType().getContentType());
+   }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/8088d1c9/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
new file mode 100644
index 0000000..13af108
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
@@ -0,0 +1,40 @@
+package org.apache.commons.rdf.jena;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.text.ParseException;
+
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDFParserBuilder;
+import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.simple.AbstractRDFParserBuilder;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.riot.system.StreamRDF;
+
+public class JenaRDFParserBuilder extends AbstractRDFParserBuilder implements RDFParserBuilder {
+
+	protected RDFTermFactory createRDFTermFactory() {
+		return new RDFTermFactoryJena();
+	}
+
+	@Override
+	protected void parseSynchronusly() throws IOException, IllegalStateException, ParseException {
+		StreamRDF dest = JenaCommonsRDF.streamJenaToCommonsRDF(rdfTermFactory.get(), intoGraph.get());
+
+		Lang lang = contentTypeSyntax.flatMap(JenaCommonsRDF::rdfSyntaxToLang).orElse(null);
+		String baseStr = base.map(IRI::getIRIString).orElse(null);
+
+		if (sourceIri.isPresent()) {
+			RDFDataMgr.parse(dest, sourceIri.get().toString(), baseStr, lang, null);
+		} else if (sourceFile.isPresent()) {
+			try (InputStream s = Files.newInputStream(sourceFile.get())) {
+				RDFDataMgr.parse(dest, s, baseStr, lang, null);
+			}
+		} else {
+			RDFDataMgr.parse(dest, sourceInputStream.get(), baseStr, lang, null);
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/8088d1c9/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
index 08572c1..3d73459 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
@@ -26,7 +26,7 @@ import org.apache.commons.rdf.jena.impl.JCR_Factory;
  *  
  *  @see RDFTermFactory
  */
-public class RDFTermFactoryJena implements RDFTermFactory {
+public final class RDFTermFactoryJena implements RDFTermFactory {
     
     @Override
     public BlankNode createBlankNode() {