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/18 00:40:05 UTC

[1/4] incubator-commonsrdf git commit: Added JenaDataset

Repository: incubator-commonsrdf
Updated Branches:
  refs/heads/jena a3cb3b13a -> c6d654bac


Added JenaDataset


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

Branch: refs/heads/jena
Commit: 3a09004ca1757490e7273d78ab00f901a3d0a613
Parents: a3cb3b1
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 16:39:25 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 16:39:25 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaDataset.java    |  30 +++
 .../commons/rdf/jena/JenaRDFTermFactory.java    |  35 +++-
 .../commons/rdf/jena/impl/DatasetImpl.java      | 187 +++++++++++++++++++
 .../commons/rdf/jena/impl/JenaFactory.java      |  16 +-
 4 files changed, 263 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
new file mode 100644
index 0000000..98fb840
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
@@ -0,0 +1,30 @@
+/**
+ * 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.commons.rdf.jena;
+
+import org.apache.commons.rdf.api.Graph;
+import org.apache.jena.sparql.core.DatasetGraph;
+
+/** Access the Jena graph backing this object */
+public interface JenaDataset extends org.apache.commons.rdf.api.Dataset {
+	public DatasetGraph asJenaDatasetGraph();
+	
+	public Graph getUnionGraph();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 12b152e..78dc5f7 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -24,6 +24,7 @@ import java.util.function.Consumer;
 
 import org.apache.commons.rdf.api.BlankNode;
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
@@ -74,6 +75,11 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public JenaBlankNode createBlankNode(String name) {
 		return JenaFactory.createBlankNode(name, salt);
 	}
+	
+	@Override
+	public Dataset createDataset() throws UnsupportedOperationException {
+		return JenaFactory.createDataset(salt);
+	}
 
 	@Override
 	public JenaGraph createGraph() {
@@ -578,19 +584,40 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Convert a CommonsRDF Triple to a Jena Triple. If the Triple was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
+	 * Convert a CommonsRDF {@link Triple} to a Jena
+	 * {@link org.apache.jena.graph.Triple}.
+	 * <p>
+	 * If the triple was from Jena originally, return that original object, else
+	 * create a copy using Jena objects.
 	 */
 	public static org.apache.jena.graph.Triple toJena(Triple triple) {
 		if (triple instanceof JenaTriple)
 			return ((JenaTriple) triple).asJenaTriple();
-		return new org.apache.jena.graph.Triple(
+		return org.apache.jena.graph.Triple.create(
 				toJena(triple.getSubject()), 
 				toJena(triple.getPredicate()),
 				toJena(triple.getObject()));
 	}
 
+
+	/**
+	 * Convert a CommonsRDF {@link Quad} to a Jena
+	 * {@link org.apache.jena.sparql.core.Quad}.
+	 * <p>
+	 * If the quad was from Jena originally, return that original object,
+	 * otherwise create a copy using Jena objects.
+	 */
+	public static org.apache.jena.sparql.core.Quad toJena(Quad quad) {
+		if (quad instanceof JenaQuad) {
+			return ((JenaQuad) quad).asJenaQuad();
+		}
+		return org.apache.jena.sparql.core.Quad.create(
+				toJena(quad.getGraphName().orElse(null)),
+				toJena(quad.getSubject()), 
+				toJena(quad.getPredicate()), 
+				toJena(quad.getObject()));
+	}
+
 	// Some simple validations - full IRI parsing is not cheap.
 	private static void validateIRI(String iri) {
 		if (iri.contains(" "))

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
new file mode 100644
index 0000000..4094efe
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
@@ -0,0 +1,187 @@
+/**
+ * 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.commons.rdf.jena.impl;
+
+import static org.apache.jena.graph.Node.ANY;
+
+import java.io.StringWriter;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.stream.Stream;
+
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.Graph;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaDataset;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.GraphView;
+
+public class DatasetImpl implements JenaDataset {
+
+	private DatasetGraph graph;
+	private UUID salt;
+
+	/* package */ DatasetImpl(DatasetGraph graph, UUID salt) {
+		this.graph = graph;
+		this.salt = salt;
+	}
+
+	@Override
+	public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.add(				
+				org.apache.jena.sparql.core.Quad.create(
+				JenaRDFTermFactory.toJena(graphName),
+				JenaRDFTermFactory.toJena(subject),				
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
+	}
+
+	@Override
+	public void add(Quad quad) {
+		graph.add(JenaRDFTermFactory.toJena(quad));
+	}
+	
+	@Override
+	public DatasetGraph asJenaDatasetGraph() {		
+		return graph;
+	}
+
+	@Override
+	public void clear() {
+		graph.clear();
+	}
+
+	@Override
+	public void close() {
+		graph.close();
+	}
+
+
+	@Override
+	public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {		
+		return graph.contains(
+				toJenaPattern(graphName),
+				toJenaPattern(subject), 
+				toJenaPattern(predicate),
+				toJenaPattern(object));
+	}
+
+	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
+		// In theory we could have done:
+		//   JenaRDFTermFactory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
+		// but because of generics casting rules that doesn't work :(						
+
+		if (graphName == null) {
+			return ANY;
+		}
+		// null: default graph
+		return JenaRDFTermFactory.toJena(graphName.orElse(null));
+	}
+
+	private Node toJenaPattern(RDFTerm term) {
+		if (term == null)
+			return ANY;
+		return JenaRDFTermFactory.toJena(term);
+	}
+
+	@Override
+	public boolean contains(Quad quad) {
+		return graph.contains(JenaRDFTermFactory.toJena(quad));
+	}
+
+	@Override
+	public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.delete(org.apache.jena.sparql.core.Quad.create(
+				toJenaPattern(graphName),
+				toJenaPattern(subject),
+				toJenaPattern(predicate), 
+				toJenaPattern(object)));
+	}
+
+	@Override
+	public void remove(Quad quad) {
+		graph.delete(JenaRDFTermFactory.toJena(quad));
+	}
+
+	@Override
+	public long size() {
+		return graph.size();
+	}
+
+	@Override
+	public Stream<? extends Quad> stream() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(ANY, ANY, ANY, ANY), true)
+				.map(factory::fromJena);
+	}
+
+	@Override
+	public Stream<? extends Quad> stream(Optional<BlankNodeOrIRI> g, BlankNodeOrIRI s, IRI p, RDFTerm o) {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(toJenaPattern(g), toJenaPattern(s), toJenaPattern(p), toJenaPattern(o)), true)
+				.map(factory::fromJena);
+	}
+
+	@Override
+	public String toString() {
+		StringWriter sw = new StringWriter();
+		RDFDataMgr.write(sw, graph, Lang.NT);
+		return sw.toString();
+	}
+
+	@Override
+	public Graph getGraph() {
+		GraphView gv = GraphView.createDefaultGraph(graph);
+		return new GraphImpl(gv, salt);
+	}
+
+	@Override
+	public Graph getUnionGraph() {
+		GraphView gv = GraphView.createUnionGraph(graph);
+		return new GraphImpl(gv, salt);
+	}
+	
+	@Override
+	public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
+		GraphView gv = GraphView.createNamedGraph(graph, JenaRDFTermFactory.toJena(graphName));
+		return Optional.of(new GraphImpl(gv, salt));
+	}	
+
+	@Override
+	public Stream<BlankNodeOrIRI> getGraphNames() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.listGraphNodes()).map(node -> 
+			(BlankNodeOrIRI) factory.fromJena(node));		
+	}
+
+	@Override
+	public Iterable<Quad> iterate() {
+		return Iter.asStream(graph.find(), false)
+				.map(q -> (Quad) JenaRDFTermFactory.fromJena(q, salt))
+				::iterator;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index b685832..da24277 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -23,6 +23,7 @@ import java.util.UUID;
 
 import org.apache.commons.rdf.api.BlankNode;
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
@@ -40,6 +41,8 @@ import org.apache.commons.rdf.jena.JenaTripleLike;
 import org.apache.commons.rdf.jena.JenaVariable;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 public class JenaFactory {
@@ -55,6 +58,16 @@ public class JenaFactory {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
 
+	public static Dataset createDataset() {
+		return createDataset(UUID.randomUUID());
+	}
+	
+	public static Dataset createDataset(UUID salt) {
+		DatasetGraph dg = DatasetGraphFactory.createGeneral();
+		// Or which createMethod() -- a bit confusing with lots of choice..
+		return new DatasetImpl(dg, salt);
+	}
+
 	public static JenaGraph createGraph() {
 		return createGraph(UUID.randomUUID());
 	}
@@ -91,7 +104,7 @@ public class JenaFactory {
 		return new VariableImpl(NodeFactory.createVariable(name));
 	}
 	
-	public static JenaAny createVariable() {
+	public static JenaAny createAnyVariable() {
 		return AnyImpl.Singleton.instance;
 	}
 
@@ -152,4 +165,5 @@ public class JenaFactory {
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return new QuadImpl(quad, salt);
 	}
+
 }


[3/4] incubator-commonsrdf git commit: Added fromJena(DatasetGraph)

Posted by st...@apache.org.
Added fromJena(DatasetGraph)


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

Branch: refs/heads/jena
Commit: d912b6bf0d81a190bcb4eb3792c08750f39b95dc
Parents: 20c7ad3
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 16:49:06 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 16:49:06 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 43 +++++++++++++++++++-
 .../commons/rdf/jena/impl/JenaFactory.java      |  9 ++++
 2 files changed, 50 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/d912b6bf/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 6560894..d8e41b1 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -44,6 +44,7 @@ import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFLanguages;
 import org.apache.jena.riot.system.StreamRDF;
 import org.apache.jena.riot.system.StreamRDFBase;
+import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
@@ -462,11 +463,10 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 
 	 */
-	public Graph fromJena(org.apache.jena.graph.Graph graph) {
+	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
 		return JenaFactory.fromJena(graph, salt);
 	}
 
-	
 
 	/**
 	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
@@ -488,6 +488,45 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.fromJena(graph, salt);
 	}
 
+	/**
+	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena dataset graph to adapt
+	 * @return Adapted dataset 
+	 */
+	public JenaDataset fromJena(DatasetGraph datasetGraph) {
+		return JenaFactory.fromJena(datasetGraph, salt);
+	}	
+	
+	/**
+	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena dataset graph to adapt
+	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted dataset 
+	 */
+	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
+		return JenaFactory.fromJena(datasetGraph, salt);
+	}	
 	
 	/**
 	 * Convert from Jena to any RDFCommons implementation. This is a copy, even

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/d912b6bf/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index da24277..1832232 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -30,6 +30,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaAny;
 import org.apache.commons.rdf.jena.JenaBlankNode;
+import org.apache.commons.rdf.jena.JenaDataset;
 import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.commons.rdf.jena.JenaLiteral;
@@ -150,6 +151,14 @@ public class JenaFactory {
 		return new GraphImpl(graph, salt);
 	}
 
+	public static JenaDataset fromJena(DatasetGraph datasetGraph) {
+		return new DatasetImpl(datasetGraph, UUID.randomUUID());
+	}
+
+	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
+		return new DatasetImpl(datasetGraph, salt);
+	}
+	
 	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
 		return new TripleImpl(triple, salt);
 	}


[4/4] incubator-commonsrdf git commit: added javadoc

Posted by st...@apache.org.
added javadoc


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

Branch: refs/heads/jena
Commit: c6d654bacd840f8ec3e3c5db752ad15a60add7a9
Parents: d912b6b
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Jul 18 01:39:44 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Jul 18 01:39:44 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c6d654ba/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index d8e41b1..52fde28 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -509,6 +509,26 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}	
 	
 	/**
+	 * Adapt an existing Jena {@link org.apache.jena.query.Dataset} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena dataset graph to adapt
+	 * @return Adapted dataset 
+	 */
+	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
+		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), salt);
+	}		
+	
+	/**
 	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
 	 * <p>
 	 * This does not


[2/4] incubator-commonsrdf git commit: fromJena(Graph) now uses factory salt

Posted by st...@apache.org.
fromJena(Graph) now uses factory salt


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

Branch: refs/heads/jena
Commit: 20c7ad3b391f6a0a4126e74dc3166b74de4fa0ee
Parents: 3a09004
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 16:44:36 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 16:44:36 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 45 ++++++++++++++++----
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |  2 +-
 2 files changed, 38 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/20c7ad3b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 78dc5f7..6560894 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -414,7 +414,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
 	 * <p>
 	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use a {@link UUID} salt from this 
@@ -431,7 +431,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	/**
-	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
 	 * <p>
 	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use the provided {@link UUID} salt
@@ -449,17 +449,46 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Adapt an existing Jena Graph to CommonsRDF {@link Graph}. This does not
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
+	 * <p>
+	 * This does not
 	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
-	 * graph.
+	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+
 	 */
-	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-		// NOTE: This generates a new UUID salt per graph
-		return JenaFactory.fromJena(graph);
+	public Graph fromJena(org.apache.jena.graph.Graph graph) {
+		return JenaFactory.fromJena(graph, salt);
 	}
+
 	
 
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
+	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param graph Jena graph to adapt
+	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted graph 
+	 */
+	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
+		return JenaFactory.fromJena(graph, salt);
+	}
 
+	
 	/**
 	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
 	 * if the factory is a RDFTermFactoryJena. Use
@@ -468,7 +497,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
 		if (factory instanceof JenaRDFTermFactory) {
 			// No need to convert, just wrap
-			return fromJena(graph);
+			return ((JenaRDFTermFactory)factory).fromJena(graph);
 		}
 
 		Graph g = factory.createGraph();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/20c7ad3b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index c81a8b1..2668343 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -56,7 +56,7 @@ public class TestJenaGraphToCommonsRDFGraph {
         RDFDataMgr.read(jGraph, turtleFile.toUri().toString()) ;
         
         // "graph" is a CommonsRDF graph 
-        Graph graph = JenaRDFTermFactory.fromJena(jGraph) ;
+        Graph graph = new JenaRDFTermFactory().fromJena(jGraph) ;
         
         // Add to CommonsRDF Graph
         RDFTermFactory rft = new JenaRDFTermFactory() ;