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/10/26 11:51:30 UTC
[28/50] [abbrv] incubator-commonsrdf git commit: Jena*Impl prefixes
Jena*Impl prefixes
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/6c17d5ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/6c17d5ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/6c17d5ed
Branch: refs/heads/COMMONSRDF-46
Commit: 6c17d5ed10400c840f749ac1f2d252a4010f8cad
Parents: ef6a1af
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 01:18:19 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 01:18:19 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/jena/JenaRDFTermFactory.java | 2 +-
.../rdf/jena/impl/AbstractJenaRDFTerm.java | 47 +++++
.../commons/rdf/jena/impl/AbstractRDFTerm.java | 47 -----
.../apache/commons/rdf/jena/impl/AnyImpl.java | 54 ------
.../commons/rdf/jena/impl/BlankNodeImpl.java | 61 ------
.../commons/rdf/jena/impl/DatasetImpl.java | 187 -------------------
.../rdf/jena/impl/GeneralizedQuadImpl.java | 136 --------------
.../apache/commons/rdf/jena/impl/GraphImpl.java | 154 ---------------
.../apache/commons/rdf/jena/impl/IRIImpl.java | 61 ------
.../commons/rdf/jena/impl/JenaAnyImpl.java | 54 ++++++
.../rdf/jena/impl/JenaBlankNodeImpl.java | 61 ++++++
.../commons/rdf/jena/impl/JenaDatasetImpl.java | 187 +++++++++++++++++++
.../commons/rdf/jena/impl/JenaFactory.java | 52 +++---
.../rdf/jena/impl/JenaGeneralizedQuad.java | 136 ++++++++++++++
.../commons/rdf/jena/impl/JenaGraphImpl.java | 154 +++++++++++++++
.../commons/rdf/jena/impl/JenaIRIImpl.java | 61 ++++++
.../commons/rdf/jena/impl/JenaLiteralImpl.java | 73 ++++++++
.../commons/rdf/jena/impl/JenaQuadImpl.java | 66 +++++++
.../commons/rdf/jena/impl/JenaTripleImpl.java | 67 +++++++
.../commons/rdf/jena/impl/JenaVariableImpl.java | 64 +++++++
.../commons/rdf/jena/impl/LiteralImpl.java | 73 --------
.../apache/commons/rdf/jena/impl/QuadImpl.java | 66 -------
.../commons/rdf/jena/impl/TripleImpl.java | 67 -------
.../commons/rdf/jena/impl/VariableImpl.java | 64 -------
24 files changed, 997 insertions(+), 997 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/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 ec84c0a..7359acb 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
@@ -681,7 +681,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
return null;
}
if (term instanceof JenaRDFTerm)
- // TODO: What if it's a BlankNodeImpl with
+ // TODO: What if it's a JenaBlankNodeImpl with
// a different salt? Do we need to rewrite the
// jena blanknode identifier?
return ((JenaRDFTerm) term).asJenaNode();
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java
new file mode 100644
index 0000000..9c0d7ec
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java
@@ -0,0 +1,47 @@
+/**
+ * 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 org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.out.NodeFmtLib;
+
+class AbstractJenaRDFTerm implements JenaRDFTerm, RDFTerm {
+ private Node node;
+ // static private PrefixMapping empty = new PrefixMappingImpl() ;
+
+ protected AbstractJenaRDFTerm(Node node) {
+ this.node = node;
+ }
+
+ @Override
+ public Node asJenaNode() {
+ return node;
+ }
+
+ public String ntriplesString() {
+ return NodeFmtLib.str(node);
+ }
+
+ @Override
+ public String toString() {
+ return ntriplesString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
deleted file mode 100644
index 5c828ef..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
+++ /dev/null
@@ -1,47 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.jena.graph.Node;
-import org.apache.jena.riot.out.NodeFmtLib;
-
-class AbstractRDFTerm implements JenaRDFTerm, RDFTerm {
- private Node node;
- // static private PrefixMapping empty = new PrefixMappingImpl() ;
-
- protected AbstractRDFTerm(Node node) {
- this.node = node;
- }
-
- @Override
- public Node asJenaNode() {
- return node;
- }
-
- public String ntriplesString() {
- return NodeFmtLib.str(node);
- }
-
- @Override
- public String toString() {
- return ntriplesString();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
deleted file mode 100644
index e2d3809..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
+++ /dev/null
@@ -1,54 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.jena.JenaAny;
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.jena.graph.Node;
-
-public class AnyImpl implements JenaRDFTerm, JenaAny {
-
- static class Singleton {
- static AnyImpl instance = new AnyImpl();
- }
-
- /**
- * Private constructor
- *
- * @see {@link Singleton#instance}
- */
- private AnyImpl() {
- }
-
- @Override
- public String ntriplesString() {
- return "[]";
- }
-
- @Override
- public Node asJenaNode() {
- return Node.ANY;
- }
-
- @Override
- public boolean equals(Object obj) {
- return obj == this || obj instanceof JenaAny;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
deleted file mode 100644
index 2acb635..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
+++ /dev/null
@@ -1,61 +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.commons.rdf.jena.impl;
-
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.jena.JenaBlankNode;
-import org.apache.jena.graph.Node;
-
-public class BlankNodeImpl extends AbstractRDFTerm implements JenaBlankNode {
-
- private UUID salt;
-
- /* package */ BlankNodeImpl(Node node, UUID salt) {
- super(node);
- if (! node.isBlank()) {
- throw new IllegalArgumentException("Node is not a blank node: " + node);
- }
- this.salt = salt;
- }
-
- @Override
- public boolean equals(Object other) {
- if (other == this)
- return true;
- if (other == null)
- return false;
- if (!(other instanceof BlankNode))
- return false;
- BlankNode bNode = (BlankNode) other;
- return uniqueReference().equals(bNode.uniqueReference());
- }
-
- @Override
- public int hashCode() {
- return uniqueReference().hashCode();
- }
-
- @Override
- public String uniqueReference() {
- return salt + asJenaNode().getBlankNodeLabel();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/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
deleted file mode 100644
index 4094efe..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
+++ /dev/null
@@ -1,187 +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.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/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
deleted file mode 100644
index e772bd1..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
+++ /dev/null
@@ -1,136 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.QuadLike;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaQuad;
-import org.apache.commons.rdf.jena.JenaQuadLike;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.jena.graph.Triple;
-import org.apache.jena.sparql.core.Quad;
-
-/**
- * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
- * <p>
- * This class does not implement any particular {@link #equals(Object)} or
- * {@link #hashCode()} but can otherwise be used as a base class for both
- * a {@link JenaTriple} and a {@link JenaQuad}.
- *
- * @see TripleImpl
- * @see QuadImpl
- * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
- * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
- *
- */
-public class GeneralizedQuadImpl<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
-
- final Optional<G> graphName;
- final S subject;
- final P predicate;
- final O object;
- org.apache.jena.sparql.core.Quad quad = null;
- org.apache.jena.graph.Triple triple = null;
-
- GeneralizedQuadImpl(S subject, P predicate, O object, Optional<G> graphName) {
- this.subject = Objects.requireNonNull(subject);
- this.predicate = Objects.requireNonNull(predicate);
- this.object = Objects.requireNonNull(object);
- this.graphName = Objects.requireNonNull(graphName);
- }
-
- GeneralizedQuadImpl(S subject, P predicate, O object) {
- this(subject, predicate, object, Optional.empty());
- }
-
- @SuppressWarnings("unchecked")
- GeneralizedQuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
- this.quad = Objects.requireNonNull(quad);
- this.subject = (S) JenaFactory.fromJena(quad.getSubject(), salt);
- this.predicate = (P) JenaFactory.fromJena(quad.getPredicate(), salt);
- this.object = (O)JenaFactory.fromJena(quad.getObject(), salt);
- this.graphName = Optional.of((G) JenaFactory.fromJena(quad.getGraph(), salt));
- }
-
- @SuppressWarnings("unchecked")
- GeneralizedQuadImpl(org.apache.jena.graph.Triple triple, UUID salt) {
- this.triple = Objects.requireNonNull(triple);
- this.subject = (S) JenaFactory.fromJena(triple.getSubject(), salt);
- this.predicate = (P) JenaFactory.fromJena(triple.getPredicate(), salt);
- this.object = (O)JenaFactory.fromJena(triple.getObject(), salt);
- this.graphName = Optional.empty();
- }
-
- @Override
- public org.apache.jena.sparql.core.Quad asJenaQuad() {
- if (quad == null) {
- quad = org.apache.jena.sparql.core.Quad.create(
- JenaRDFTermFactory.toJena(graphName.orElse(null)),
- JenaRDFTermFactory.toJena(subject),
- JenaRDFTermFactory.toJena(predicate),
- JenaRDFTermFactory.toJena(object));
- }
- return quad;
- }
-
- @Override
- public org.apache.jena.graph.Triple asJenaTriple() {
- if (triple == null) {
- triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject),
- JenaRDFTermFactory.toJena(predicate),
- JenaRDFTermFactory.toJena(object));
- }
- return triple;
- }
-
- @Override
- public S getSubject() {
- return subject;
- }
-
- @Override
- public P getPredicate() {
- return predicate;
- }
-
- @Override
- public O getObject() {
- return object;
- }
-
- @Override
- public Optional<G> getGraphName() {
- return graphName;
- }
-
- @Override
- public String toString() {
- // kind of nquad syntax
- return getSubject().ntriplesString() + " " +
- getPredicate().ntriplesString() + " "
- + getObject().ntriplesString() + " " +
- getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
deleted file mode 100644
index 3b74ee0..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
+++ /dev/null
@@ -1,154 +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.commons.rdf.jena.impl;
-
-import java.io.StringWriter;
-import java.util.UUID;
-import java.util.stream.Stream;
-
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.jena.JenaGraph;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.graph.Node;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.rdf.model.ModelFactory;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-
-public class GraphImpl implements JenaGraph {
-
- private org.apache.jena.graph.Graph graph;
- private UUID salt;
- private Model model;
-
- GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
- this.graph = graph;
- this.salt = salt;
- }
-
- GraphImpl(Model model, UUID salt) {
- this.model = model;
- this.graph = model.getGraph();
- this.salt = salt;
- }
-
- @Override
- public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- graph.add(org.apache.jena.graph.Triple.create(
- JenaRDFTermFactory.toJena(subject),
- JenaRDFTermFactory.toJena(predicate),
- JenaRDFTermFactory.toJena(object)));
- }
-
- @Override
- public void add(Triple triple) {
- graph.add(JenaRDFTermFactory.toJena(triple));
- }
-
- @Override
- public org.apache.jena.graph.Graph asJenaGraph() {
- return graph;
- }
-
- @Override
- public void clear() {
- graph.clear();
- }
-
- @Override
- public void close() {
- graph.close();
- }
-
- @Override
- public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- return graph.contains(
- JenaRDFTermFactory.toJena(subject),
- JenaRDFTermFactory.toJena(predicate),
- JenaRDFTermFactory.toJena(object));
- }
-
- @Override
- public boolean contains(Triple triple) {
- return graph.contains(JenaRDFTermFactory.toJena(triple));
- }
-
- @Override
- public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- graph.delete(org.apache.jena.graph.Triple.create(
- JenaRDFTermFactory.toJena(subject),
- JenaRDFTermFactory.toJena(predicate),
- JenaRDFTermFactory.toJena(object)));
- }
-
- @Override
- public void remove(Triple triple) {
- graph.delete(JenaRDFTermFactory.toJena(triple));
- }
-
- @Override
- public long size() {
- return graph.size();
- }
-
- @Override
- public Stream<? extends Triple> stream() {
- JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
- return Iter.asStream(graph.find(null, null, null), true).map(factory::fromJena);
- }
-
- @Override
- public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
- JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
- return Iter.asStream(graph.find(toJenaAny(s), toJenaAny(p), toJenaAny(o)), true)
- .map(factory::fromJena);
- }
-
- private Node toJenaAny(RDFTerm term) {
- if (term == null)
- return Node.ANY;
- return JenaRDFTermFactory.toJena(term);
- }
-
- @Override
- public String toString() {
- StringWriter sw = new StringWriter();
- RDFDataMgr.write(sw, graph, Lang.NT);
- return sw.toString();
- }
-
- @Override
- public Model asJenaModel() {
- if (model == null) {
- synchronized(this) {
- // As Model can be used for locks, we should make sure we don't make
- // more than one model
- if (model == null) {
- model = ModelFactory.createModelForGraph(graph);
- }
- }
- }
- return model;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
deleted file mode 100644
index e85c80f..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
+++ /dev/null
@@ -1,61 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.jena.JenaIRI;
-import org.apache.jena.graph.Node;
-import org.apache.jena.graph.NodeFactory;
-
-public class IRIImpl extends AbstractRDFTerm implements JenaIRI {
-
- /* package */ IRIImpl(Node node) {
- super(node);
- if (! node.isURI()) {
- throw new IllegalArgumentException("Node is not a blank node: " + node);
- }
-
- }
-
- /* package */ IRIImpl(String iriStr) {
- super(NodeFactory.createURI(iriStr));
- }
-
- @Override
- public boolean equals(Object other) {
- if (other == this)
- return true;
- if (other == null)
- return false;
- if (!(other instanceof IRI))
- return false;
- IRI iri = (IRI) other;
- return getIRIString().equals(iri.getIRIString());
- }
-
- @Override
- public String getIRIString() {
- return asJenaNode().getURI();
- }
-
- @Override
- public int hashCode() {
- return getIRIString().hashCode();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
new file mode 100644
index 0000000..068cbd8
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
@@ -0,0 +1,54 @@
+/**
+ * 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 org.apache.commons.rdf.jena.JenaAny;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.jena.graph.Node;
+
+public class JenaAnyImpl implements JenaRDFTerm, JenaAny {
+
+ static class Singleton {
+ static JenaAnyImpl instance = new JenaAnyImpl();
+ }
+
+ /**
+ * Private constructor
+ *
+ * @see {@link Singleton#instance}
+ */
+ private JenaAnyImpl() {
+ }
+
+ @Override
+ public String ntriplesString() {
+ return "[]";
+ }
+
+ @Override
+ public Node asJenaNode() {
+ return Node.ANY;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj == this || obj instanceof JenaAny;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
new file mode 100644
index 0000000..0cbd764
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
@@ -0,0 +1,61 @@
+/**
+ * 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 java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.jena.JenaBlankNode;
+import org.apache.jena.graph.Node;
+
+public class JenaBlankNodeImpl extends AbstractJenaRDFTerm implements JenaBlankNode {
+
+ private UUID salt;
+
+ /* package */ JenaBlankNodeImpl(Node node, UUID salt) {
+ super(node);
+ if (! node.isBlank()) {
+ throw new IllegalArgumentException("Node is not a blank node: " + node);
+ }
+ this.salt = salt;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof BlankNode))
+ return false;
+ BlankNode bNode = (BlankNode) other;
+ return uniqueReference().equals(bNode.uniqueReference());
+ }
+
+ @Override
+ public int hashCode() {
+ return uniqueReference().hashCode();
+ }
+
+ @Override
+ public String uniqueReference() {
+ return salt + asJenaNode().getBlankNodeLabel();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
new file mode 100644
index 0000000..b756526
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.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 JenaDatasetImpl implements JenaDataset {
+
+ private DatasetGraph graph;
+ private UUID salt;
+
+ /* package */ JenaDatasetImpl(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 JenaGraphImpl(gv, salt);
+ }
+
+ @Override
+ public Graph getUnionGraph() {
+ GraphView gv = GraphView.createUnionGraph(graph);
+ return new JenaGraphImpl(gv, salt);
+ }
+
+ @Override
+ public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
+ GraphView gv = GraphView.createNamedGraph(graph, JenaRDFTermFactory.toJena(graphName));
+ return Optional.of(new JenaGraphImpl(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/6c17d5ed/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 7a6a7ab..0551094 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
@@ -62,60 +62,60 @@ import org.apache.jena.sparql.graph.GraphFactory;
public class JenaFactory {
public static JenaBlankNode createBlankNode(String id, UUID salt) {
- return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
+ return new JenaBlankNodeImpl(NodeFactory.createBlankNode(id), salt);
}
public static JenaBlankNode createBlankNode(UUID salt) {
- return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
+ return new JenaBlankNodeImpl(NodeFactory.createBlankNode(), salt);
}
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);
+ return new JenaDatasetImpl(dg, salt);
}
public static JenaGraph createGraph(UUID salt) {
- return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
+ return new JenaGraphImpl(GraphFactory.createDefaultGraph(), salt);
}
public static JenaIRI createIRI(String iriStr) {
- return new IRIImpl(iriStr);
+ return new JenaIRIImpl(iriStr);
}
public static JenaLiteral createLiteral(String lexStr) {
- return new LiteralImpl(NodeFactory.createLiteral(lexStr));
+ return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr));
}
public static JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
- return new LiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
+ return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
}
public static JenaLiteral createLiteralLang(String lexStr, String langTag) {
- return new LiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
+ return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
}
public static JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- return new TripleImpl(subject, predicate, object);
+ return new JenaTripleImpl(subject, predicate, object);
}
public static JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
- return new QuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
+ return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
}
public static JenaVariable createVariable(String name) {
- return new VariableImpl(NodeFactory.createVariable(name));
+ return new JenaVariableImpl(NodeFactory.createVariable(name));
}
public static JenaAny createAnyVariable() {
- return AnyImpl.Singleton.instance;
+ return JenaAnyImpl.Singleton.instance;
}
public static JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
- return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
+ return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
}
public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
- return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
+ return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
}
public static JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
@@ -127,49 +127,49 @@ public class JenaFactory {
public static JenaRDFTerm fromJenaGeneralized(Node node, UUID salt) {
if (node.isURI()) {
- return new IRIImpl(node);
+ return new JenaIRIImpl(node);
}
if (node.isLiteral()) {
- return new LiteralImpl(node);
+ return new JenaLiteralImpl(node);
}
if (node.isBlank()) {
- return new BlankNodeImpl(node, salt);
+ return new JenaBlankNodeImpl(node, salt);
}
if (node.equals(Node.ANY)) {
- return AnyImpl.Singleton.instance;
+ return JenaAnyImpl.Singleton.instance;
}
if (node.isVariable()) {
- return new VariableImpl(node);
+ return new JenaVariableImpl(node);
}
throw new IllegalArgumentException("Unrecognized node type: " + node);
}
public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
- return new GraphImpl(graph, salt);
+ return new JenaGraphImpl(graph, salt);
}
public static JenaGraph fromJena(Model model, UUID salt) {
- return new GraphImpl(model, salt);
+ return new JenaGraphImpl(model, salt);
}
public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
- return new DatasetImpl(datasetGraph, salt);
+ return new JenaDatasetImpl(datasetGraph, salt);
}
public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
- return new TripleImpl(triple, salt);
+ return new JenaTripleImpl(triple, salt);
}
public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
- return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
+ return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
}
public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
- return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
+ return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
}
public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
- return new QuadImpl(quad, salt);
+ return new JenaQuadImpl(quad, salt);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
new file mode 100644
index 0000000..5456ec9
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
@@ -0,0 +1,136 @@
+/**
+ * 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 java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.QuadLike;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.JenaQuadLike;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.jena.JenaTriple;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.sparql.core.Quad;
+
+/**
+ * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
+ * <p>
+ * This class does not implement any particular {@link #equals(Object)} or
+ * {@link #hashCode()} but can otherwise be used as a base class for both
+ * a {@link JenaTriple} and a {@link JenaQuad}.
+ *
+ * @see JenaTripleImpl
+ * @see JenaQuadImpl
+ * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+ * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+ *
+ */
+public class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
+
+ final Optional<G> graphName;
+ final S subject;
+ final P predicate;
+ final O object;
+ org.apache.jena.sparql.core.Quad quad = null;
+ org.apache.jena.graph.Triple triple = null;
+
+ JenaGeneralizedQuad(S subject, P predicate, O object, Optional<G> graphName) {
+ this.subject = Objects.requireNonNull(subject);
+ this.predicate = Objects.requireNonNull(predicate);
+ this.object = Objects.requireNonNull(object);
+ this.graphName = Objects.requireNonNull(graphName);
+ }
+
+ JenaGeneralizedQuad(S subject, P predicate, O object) {
+ this(subject, predicate, object, Optional.empty());
+ }
+
+ @SuppressWarnings("unchecked")
+ JenaGeneralizedQuad(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+ this.quad = Objects.requireNonNull(quad);
+ this.subject = (S) JenaFactory.fromJena(quad.getSubject(), salt);
+ this.predicate = (P) JenaFactory.fromJena(quad.getPredicate(), salt);
+ this.object = (O)JenaFactory.fromJena(quad.getObject(), salt);
+ this.graphName = Optional.of((G) JenaFactory.fromJena(quad.getGraph(), salt));
+ }
+
+ @SuppressWarnings("unchecked")
+ JenaGeneralizedQuad(org.apache.jena.graph.Triple triple, UUID salt) {
+ this.triple = Objects.requireNonNull(triple);
+ this.subject = (S) JenaFactory.fromJena(triple.getSubject(), salt);
+ this.predicate = (P) JenaFactory.fromJena(triple.getPredicate(), salt);
+ this.object = (O)JenaFactory.fromJena(triple.getObject(), salt);
+ this.graphName = Optional.empty();
+ }
+
+ @Override
+ public org.apache.jena.sparql.core.Quad asJenaQuad() {
+ if (quad == null) {
+ quad = org.apache.jena.sparql.core.Quad.create(
+ JenaRDFTermFactory.toJena(graphName.orElse(null)),
+ JenaRDFTermFactory.toJena(subject),
+ JenaRDFTermFactory.toJena(predicate),
+ JenaRDFTermFactory.toJena(object));
+ }
+ return quad;
+ }
+
+ @Override
+ public org.apache.jena.graph.Triple asJenaTriple() {
+ if (triple == null) {
+ triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject),
+ JenaRDFTermFactory.toJena(predicate),
+ JenaRDFTermFactory.toJena(object));
+ }
+ return triple;
+ }
+
+ @Override
+ public S getSubject() {
+ return subject;
+ }
+
+ @Override
+ public P getPredicate() {
+ return predicate;
+ }
+
+ @Override
+ public O getObject() {
+ return object;
+ }
+
+ @Override
+ public Optional<G> getGraphName() {
+ return graphName;
+ }
+
+ @Override
+ public String toString() {
+ // kind of nquad syntax
+ return getSubject().ntriplesString() + " " +
+ getPredicate().ntriplesString() + " "
+ + getObject().ntriplesString() + " " +
+ getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
new file mode 100644
index 0000000..49a09ae
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
@@ -0,0 +1,154 @@
+/**
+ * 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 java.io.StringWriter;
+import java.util.UUID;
+import java.util.stream.Stream;
+
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.jena.JenaGraph;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.graph.Node;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+
+public class JenaGraphImpl implements JenaGraph {
+
+ private org.apache.jena.graph.Graph graph;
+ private UUID salt;
+ private Model model;
+
+ JenaGraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
+ this.graph = graph;
+ this.salt = salt;
+ }
+
+ JenaGraphImpl(Model model, UUID salt) {
+ this.model = model;
+ this.graph = model.getGraph();
+ this.salt = salt;
+ }
+
+ @Override
+ public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ graph.add(org.apache.jena.graph.Triple.create(
+ JenaRDFTermFactory.toJena(subject),
+ JenaRDFTermFactory.toJena(predicate),
+ JenaRDFTermFactory.toJena(object)));
+ }
+
+ @Override
+ public void add(Triple triple) {
+ graph.add(JenaRDFTermFactory.toJena(triple));
+ }
+
+ @Override
+ public org.apache.jena.graph.Graph asJenaGraph() {
+ return graph;
+ }
+
+ @Override
+ public void clear() {
+ graph.clear();
+ }
+
+ @Override
+ public void close() {
+ graph.close();
+ }
+
+ @Override
+ public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ return graph.contains(
+ JenaRDFTermFactory.toJena(subject),
+ JenaRDFTermFactory.toJena(predicate),
+ JenaRDFTermFactory.toJena(object));
+ }
+
+ @Override
+ public boolean contains(Triple triple) {
+ return graph.contains(JenaRDFTermFactory.toJena(triple));
+ }
+
+ @Override
+ public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ graph.delete(org.apache.jena.graph.Triple.create(
+ JenaRDFTermFactory.toJena(subject),
+ JenaRDFTermFactory.toJena(predicate),
+ JenaRDFTermFactory.toJena(object)));
+ }
+
+ @Override
+ public void remove(Triple triple) {
+ graph.delete(JenaRDFTermFactory.toJena(triple));
+ }
+
+ @Override
+ public long size() {
+ return graph.size();
+ }
+
+ @Override
+ public Stream<? extends Triple> stream() {
+ JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+ return Iter.asStream(graph.find(null, null, null), true).map(factory::fromJena);
+ }
+
+ @Override
+ public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
+ JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+ return Iter.asStream(graph.find(toJenaAny(s), toJenaAny(p), toJenaAny(o)), true)
+ .map(factory::fromJena);
+ }
+
+ private Node toJenaAny(RDFTerm term) {
+ if (term == null)
+ return Node.ANY;
+ return JenaRDFTermFactory.toJena(term);
+ }
+
+ @Override
+ public String toString() {
+ StringWriter sw = new StringWriter();
+ RDFDataMgr.write(sw, graph, Lang.NT);
+ return sw.toString();
+ }
+
+ @Override
+ public Model asJenaModel() {
+ if (model == null) {
+ synchronized(this) {
+ // As Model can be used for locks, we should make sure we don't make
+ // more than one model
+ if (model == null) {
+ model = ModelFactory.createModelForGraph(graph);
+ }
+ }
+ }
+ return model;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
new file mode 100644
index 0000000..2aa170f
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
@@ -0,0 +1,61 @@
+/**
+ * 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 org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.jena.JenaIRI;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+
+public class JenaIRIImpl extends AbstractJenaRDFTerm implements JenaIRI {
+
+ /* package */ JenaIRIImpl(Node node) {
+ super(node);
+ if (! node.isURI()) {
+ throw new IllegalArgumentException("Node is not a blank node: " + node);
+ }
+
+ }
+
+ /* package */ JenaIRIImpl(String iriStr) {
+ super(NodeFactory.createURI(iriStr));
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof IRI))
+ return false;
+ IRI iri = (IRI) other;
+ return getIRIString().equals(iri.getIRIString());
+ }
+
+ @Override
+ public String getIRIString() {
+ return asJenaNode().getURI();
+ }
+
+ @Override
+ public int hashCode() {
+ return getIRIString().hashCode();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
new file mode 100644
index 0000000..5bbc166
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
@@ -0,0 +1,73 @@
+/**
+ * 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 java.util.Objects;
+import java.util.Optional;
+
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.jena.JenaLiteral;
+import org.apache.jena.graph.Node;
+
+public class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral {
+
+ /* package */ JenaLiteralImpl(Node node) {
+ super(node);
+ if (! node.isLiteral()) {
+ throw new IllegalArgumentException("Node is not a literal: " + node);
+ }
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof Literal))
+ return false;
+ Literal literal = (Literal) other;
+ return getLexicalForm().equals(literal.getLexicalForm()) && getLanguageTag().equals(literal.getLanguageTag())
+ && getDatatype().equals(literal.getDatatype());
+ }
+
+ @Override
+ public IRI getDatatype() {
+ return JenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
+ }
+
+ @Override
+ public Optional<String> getLanguageTag() {
+ String x = asJenaNode().getLiteralLanguage();
+ if (x == null || x.isEmpty())
+ return Optional.empty();
+ return Optional.of(x);
+ }
+
+ @Override
+ public String getLexicalForm() {
+ return asJenaNode().getLiteralLexicalForm();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
new file mode 100644
index 0000000..0f3e3e3
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
@@ -0,0 +1,66 @@
+/**
+ * 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 java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+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.ConversionException;
+import org.apache.commons.rdf.jena.JenaQuad;
+
+public class JenaQuadImpl extends JenaGeneralizedQuad<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
+ implements JenaQuad {
+
+ JenaQuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {
+ super(subject, predicate, object, graphName);
+ }
+
+ JenaQuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+ super(quad, salt);
+ // Check the conversion
+ if ((graphName.isPresent() && ! (graphName.get() instanceof BlankNodeOrIRI)) ||
+ ! (subject instanceof BlankNodeOrIRI) ||
+ ! (predicate instanceof IRI) ||
+ ! (object instanceof RDFTerm)) {
+ throw new ConversionException("Can't adapt generalized quad: " + quad);
+ }
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this)
+ return true;
+ if (!(other instanceof Quad))
+ return false;
+ Quad quad = (Quad) other;
+ return getGraphName().equals(quad.getGraphName()) && getSubject().equals(quad.getSubject())
+ && getPredicate().equals(quad.getPredicate()) && getObject().equals(quad.getObject());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
new file mode 100644
index 0000000..4e497f2
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
@@ -0,0 +1,67 @@
+/**
+ * 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 java.util.Objects;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaTriple;
+
+public class JenaTripleImpl extends JenaGeneralizedQuad<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
+ implements JenaTriple {
+
+ JenaTripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ super(subject, predicate, object);
+ }
+
+ JenaTripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+ super(triple, salt);
+ // Check the conversion
+ if (! (subject instanceof BlankNodeOrIRI) ||
+ ! (predicate instanceof IRI) ||
+ ! (object instanceof RDFTerm)) {
+ throw new ConversionException("Can't adapt generalized triple: " + quad);
+ }
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == this)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof Triple))
+ return false;
+ Triple triple = (Triple) other;
+ return getSubject().equals(triple.getSubject()) && getPredicate().equals(triple.getPredicate())
+ && getObject().equals(triple.getObject());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getSubject(), getPredicate(), getObject());
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
new file mode 100644
index 0000000..8027cf2
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
@@ -0,0 +1,64 @@
+/**
+ * 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 java.util.Objects;
+
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.commons.rdf.jena.JenaVariable;
+import org.apache.jena.graph.Node;
+
+public class JenaVariableImpl implements JenaRDFTerm, JenaVariable {
+
+ private Node node;
+
+ JenaVariableImpl(Node node) {
+ if (! node.isVariable()) {
+ throw new IllegalArgumentException("Node is not a variable: " + node);
+ }
+ this.node = node;
+ }
+
+ @Override
+ public String ntriplesString() {
+ return "?" + getVariableName();
+ }
+
+ @Override
+ public String getVariableName() {
+ return node.getName();
+ }
+
+ @Override
+ public Node asJenaNode() {
+ return node;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (! (obj instanceof JenaVariable)) {
+ return false;
+ }
+ return Objects.equals(getVariableName(), ((JenaVariable)obj).getVariableName());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
deleted file mode 100644
index 2750198..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
+++ /dev/null
@@ -1,73 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.Literal;
-import org.apache.commons.rdf.jena.JenaLiteral;
-import org.apache.jena.graph.Node;
-
-public class LiteralImpl extends AbstractRDFTerm implements JenaLiteral {
-
- /* package */ LiteralImpl(Node node) {
- super(node);
- if (! node.isLiteral()) {
- throw new IllegalArgumentException("Node is not a literal: " + node);
- }
- }
-
- @Override
- public boolean equals(Object other) {
- if (other == this)
- return true;
- if (other == null)
- return false;
- if (!(other instanceof Literal))
- return false;
- Literal literal = (Literal) other;
- return getLexicalForm().equals(literal.getLexicalForm()) && getLanguageTag().equals(literal.getLanguageTag())
- && getDatatype().equals(literal.getDatatype());
- }
-
- @Override
- public IRI getDatatype() {
- return JenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
- }
-
- @Override
- public Optional<String> getLanguageTag() {
- String x = asJenaNode().getLiteralLanguage();
- if (x == null || x.isEmpty())
- return Optional.empty();
- return Optional.of(x);
- }
-
- @Override
- public String getLexicalForm() {
- return asJenaNode().getLiteralLexicalForm();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag());
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
deleted file mode 100644
index d68fcaf..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
+++ /dev/null
@@ -1,66 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-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.ConversionException;
-import org.apache.commons.rdf.jena.JenaQuad;
-
-public class QuadImpl extends GeneralizedQuadImpl<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
- implements JenaQuad {
-
- QuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {
- super(subject, predicate, object, graphName);
- }
-
- QuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
- super(quad, salt);
- // Check the conversion
- if ((graphName.isPresent() && ! (graphName.get() instanceof BlankNodeOrIRI)) ||
- ! (subject instanceof BlankNodeOrIRI) ||
- ! (predicate instanceof IRI) ||
- ! (object instanceof RDFTerm)) {
- throw new ConversionException("Can't adapt generalized quad: " + quad);
- }
- }
-
- @Override
- public boolean equals(Object other) {
- if (other == this)
- return true;
- if (!(other instanceof Quad))
- return false;
- Quad quad = (Quad) other;
- return getGraphName().equals(quad.getGraphName()) && getSubject().equals(quad.getSubject())
- && getPredicate().equals(quad.getPredicate()) && getObject().equals(quad.getObject());
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
deleted file mode 100644
index 9207b38..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
+++ /dev/null
@@ -1,67 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.jena.ConversionException;
-import org.apache.commons.rdf.jena.JenaTriple;
-
-public class TripleImpl extends GeneralizedQuadImpl<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
- implements JenaTriple {
-
- TripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- super(subject, predicate, object);
- }
-
- TripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
- super(triple, salt);
- // Check the conversion
- if (! (subject instanceof BlankNodeOrIRI) ||
- ! (predicate instanceof IRI) ||
- ! (object instanceof RDFTerm)) {
- throw new ConversionException("Can't adapt generalized triple: " + quad);
- }
- }
-
- @Override
- public boolean equals(Object other) {
- if (other == this)
- return true;
- if (other == null)
- return false;
- if (!(other instanceof Triple))
- return false;
- Triple triple = (Triple) other;
- return getSubject().equals(triple.getSubject()) && getPredicate().equals(triple.getPredicate())
- && getObject().equals(triple.getObject());
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getSubject(), getPredicate(), getObject());
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6c17d5ed/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
deleted file mode 100644
index b72ecde..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.commons.rdf.jena.JenaVariable;
-import org.apache.jena.graph.Node;
-
-public class VariableImpl implements JenaRDFTerm, JenaVariable {
-
- private Node node;
-
- VariableImpl(Node node) {
- if (! node.isVariable()) {
- throw new IllegalArgumentException("Node is not a variable: " + node);
- }
- this.node = node;
- }
-
- @Override
- public String ntriplesString() {
- return "?" + getVariableName();
- }
-
- @Override
- public String getVariableName() {
- return node.getName();
- }
-
- @Override
- public Node asJenaNode() {
- return node;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- }
- if (! (obj instanceof JenaVariable)) {
- return false;
- }
- return Objects.equals(getVariableName(), ((JenaVariable)obj).getVariableName());
- }
-
-}