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() ;