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/06/14 15:45:01 UTC
[1/8] incubator-commonsrdf git commit: ASF file headers
Repository: incubator-commonsrdf
Updated Branches:
refs/heads/rdf4j 6c5988d80 -> 81f195f31
ASF file headers
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/5ebb9d80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/5ebb9d80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/5ebb9d80
Branch: refs/heads/rdf4j
Commit: 5ebb9d8069fb7ac72e5af5fdb50fea945e0ef0f7
Parents: 6c5988d
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jun 3 14:57:45 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 3 14:57:45 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/rdf4j/impl/AbstractRDFTerm.java | 17 +++++++++++++++++
.../apache/commons/rdf/rdf4j/impl/QuadImpl.java | 17 +++++++++++++++++
.../rdf/rdf4j/impl/RepositoryGraphImpl.java | 17 +++++++++++++++++
.../apache/commons/rdf/rdf4j/impl/TripleImpl.java | 17 +++++++++++++++++
4 files changed, 68 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/5ebb9d80/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRDFTerm.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRDFTerm.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRDFTerm.java
index a5d5367..124eb98 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRDFTerm.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRDFTerm.java
@@ -1,3 +1,20 @@
+/**
+ * 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.rdf4j.impl;
import org.apache.commons.rdf.rdf4j.RDF4JTerm;
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/5ebb9d80/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
index 1d887a0..ce39f61 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
@@ -1,3 +1,20 @@
+/**
+ * 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.rdf4j.impl;
import java.util.Objects;
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/5ebb9d80/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
index 837878d..2e608a1 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
@@ -1,3 +1,20 @@
+/**
+ * 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.rdf4j.impl;
import java.util.Optional;
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/5ebb9d80/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
index c494006..bddd7f3 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
@@ -1,3 +1,20 @@
+/**
+ * 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.rdf4j.impl;
import java.util.Objects;
[2/8] incubator-commonsrdf git commit: asStatement(TripleLike)
Posted by st...@apache.org.
asStatement(TripleLike)
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/3af404e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/3af404e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/3af404e3
Branch: refs/heads/rdf4j
Commit: 3af404e39faa069e25a3deccda763f01b950fb6e
Parents: 5ebb9d8
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jun 3 15:17:24 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 3 15:17:24 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/rdf4j/RDF4JTermFactory.java | 200 +++++++++----------
1 file changed, 95 insertions(+), 105 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3af404e3/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
index 1b59c6f..9aa0fda 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
@@ -29,10 +29,11 @@ import org.apache.commons.rdf.api.Quad;
import org.apache.commons.rdf.api.RDFTerm;
import org.apache.commons.rdf.api.RDFTermFactory;
import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.api.TripleLike;
import org.apache.commons.rdf.rdf4j.impl.BlankNodeImpl;
-import org.apache.commons.rdf.rdf4j.impl.ModelGraphImpl;
import org.apache.commons.rdf.rdf4j.impl.IRIImpl;
import org.apache.commons.rdf.rdf4j.impl.LiteralImpl;
+import org.apache.commons.rdf.rdf4j.impl.ModelGraphImpl;
import org.apache.commons.rdf.rdf4j.impl.QuadImpl;
import org.apache.commons.rdf.rdf4j.impl.RepositoryGraphImpl;
import org.apache.commons.rdf.rdf4j.impl.TripleImpl;
@@ -48,51 +49,47 @@ import org.eclipse.rdf4j.repository.Repository;
/**
* RDF4J implementation of RDFTermFactory
* <p>
- * The {@link #RDF4JTermFactory()} constructor
- * uses a {@link SimpleValueFactory} to create corresponding
- * RDF4J {@link Value} instances. Alternatively,
- * this factory can be constructed with a {@link ValueFactory} using
- * {@link #RDF4JTermFactory(ValueFactory)}.
+ * The {@link #RDF4JTermFactory()} constructor uses a {@link SimpleValueFactory}
+ * to create corresponding RDF4J {@link Value} instances. Alternatively, this
+ * factory can be constructed with a {@link ValueFactory} using
+ * {@link #RDF4JTermFactory(ValueFactory)}.
* <p>
- * {@link #asRDFTerm(Value)} can be used to convert any RDF4J {@link Value}
- * to an RDFTerm. Note that adapted {@link BNode}s are considered equal if they
- * are converted with the same {@link RDF4JTermFactory} instance and have the same
- * {@link BNode#getID()}.
+ * {@link #asRDFTerm(Value)} can be used to convert any RDF4J {@link Value} to
+ * an RDFTerm. Note that adapted {@link BNode}s are considered equal if they are
+ * converted with the same {@link RDF4JTermFactory} instance and have the same
+ * {@link BNode#getID()}.
* <p>
- * {@link #createGraph()} creates a new Graph backed by {@link LinkedHashModel}. To
- * use other models, see {@link #asRDFTermGraph(Model)}.
+ * {@link #createGraph()} creates a new Graph backed by {@link LinkedHashModel}.
+ * To use other models, see {@link #asRDFTermGraph(Model)}.
* <p>
- * {@link #asTriple(Statement)} can be used to convert a RDF4J {@link Statement} to
- * a Commons RDF {@link Triple}.
+ * {@link #asTriple(Statement)} can be used to convert a RDF4J {@link Statement}
+ * to a Commons RDF {@link Triple}.
* <p>
- * {@link #asStatement(Triple)} can be used to convert any Commons RDF {@link Triple}
- * to a RDF4J {@link Statement}.
- * <p
- * {@link #asValue(RDFTerm)} can be used to convert any Commons RDF {@link RDFTerm} to
- * a corresponding RDF4J {@link Value}.
+ * {@link #asStatement(Triple)} can be used to convert any Commons RDF
+ * {@link Triple} to a RDF4J {@link Statement}. <p {@link #asValue(RDFTerm)} can
+ * be used to convert any Commons RDF {@link RDFTerm} to a corresponding RDF4J
+ * {@link Value}.
*
*/
public class RDF4JTermFactory implements RDFTermFactory {
-
+
/**
*
- * Adapt a RDF4J {@link Value} as a Commons RDF
- * {@link RDFTerm}.
+ * Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
* <p>
* <p>
* The value will be of the same kind as the term, e.g. a
* {@link org.eclipse.rdf4j.model.BNode} is converted to a
- * {@link org.apache.commons.rdf.api.BlankNode},
- * a {@link org.eclipse.rdf4j.model.IRI}
- * is converted to a {@link org.apache.commons.rdf.api.IRI}
- * and a {@link org.eclipse.rdf4j.model.Literal}.
- * is converted to a
- * {@link org.apache.commons.rdf.api.Literal}
+ * {@link org.apache.commons.rdf.api.BlankNode}, a
+ * {@link org.eclipse.rdf4j.model.IRI} is converted to a
+ * {@link org.apache.commons.rdf.api.IRI} and a
+ * {@link org.eclipse.rdf4j.model.Literal}. is converted to a
+ * {@link org.apache.commons.rdf.api.Literal}
*
* @param value
* @return
*/
- public static RDF4JTerm<?> asRDFTerm(final org.eclipse.rdf4j.model.Value value, UUID salt) {
+ public static RDF4JTerm<?> asRDFTerm(final org.eclipse.rdf4j.model.Value value, UUID salt) {
if (value instanceof BNode) {
return new BlankNodeImpl((BNode) value, salt);
}
@@ -102,12 +99,11 @@ public class RDF4JTermFactory implements RDFTermFactory {
if (value instanceof org.eclipse.rdf4j.model.IRI) {
return new IRIImpl((org.eclipse.rdf4j.model.IRI) value);
}
- throw new IllegalArgumentException("Value is not a BNode, Literal or IRI: " + value.getClass());
+ throw new IllegalArgumentException("Value is not a BNode, Literal or IRI: " + value.getClass());
}
/**
- * Adapt a RDF4J {@link Statement} as a Commons RDF
- * {@link Triple}.
+ * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Triple}.
*
* @param statement
* @return
@@ -115,22 +111,21 @@ public class RDF4JTermFactory implements RDFTermFactory {
public static RDF4JTriple asTriple(final Statement statement, UUID salt) {
return new TripleImpl(statement, salt);
}
-
+
private UUID salt = UUID.randomUUID();
-
+
private ValueFactory valueFactory;
-
+
public RDF4JTermFactory() {
this.valueFactory = SimpleValueFactory.getInstance();
}
- public RDF4JTermFactory(ValueFactory valueFactory) {
+ public RDF4JTermFactory(ValueFactory valueFactory) {
this.valueFactory = valueFactory;
- }
-
+ }
+
/**
- * Adapt a RDF4J {@link Statement} as a Commons RDF
- * {@link Quad}.
+ * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Quad}.
*
* @param statement
* @return A {@link RDF4JQuad} that is equivalent to the statement
@@ -138,37 +133,34 @@ public class RDF4JTermFactory implements RDFTermFactory {
public RDF4JQuad asQuad(final Statement statement) {
return new QuadImpl(statement, salt);
}
-
+
/**
*
- * Adapt a RDF4J {@link Value} as a Commons RDF
- * {@link RDFTerm}.
+ * Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
* <p>
* <p>
* The value will be of the same kind as the term, e.g. a
* {@link org.eclipse.rdf4j.model.BNode} is converted to a
- * {@link org.apache.commons.rdf.api.BlankNode},
- * a {@link org.eclipse.rdf4j.model.IRI}
- * is converted to a {@link org.apache.commons.rdf.api.IRI}
- * and a {@link org.eclipse.rdf4j.model.Literal}.
- * is converted to a
- * {@link org.apache.commons.rdf.api.Literal}
+ * {@link org.apache.commons.rdf.api.BlankNode}, a
+ * {@link org.eclipse.rdf4j.model.IRI} is converted to a
+ * {@link org.apache.commons.rdf.api.IRI} and a
+ * {@link org.eclipse.rdf4j.model.Literal}. is converted to a
+ * {@link org.apache.commons.rdf.api.Literal}
*
* @param value
* @return
*/
- public RDF4JTerm<?> asRDFTerm(final org.eclipse.rdf4j.model.Value value) {
- return asRDFTerm(value, salt);
- }
+ public RDF4JTerm<?> asRDFTerm(final org.eclipse.rdf4j.model.Value value) {
+ return asRDFTerm(value, salt);
+ }
/**
- * Adapt an RDF4J {@link Model} as a
- * Commons RDF {@link Graph}.
+ * Adapt an RDF4J {@link Model} as a Commons RDF {@link Graph}.
* <p>
- * Changes to the graph are reflected in the model, and
- * vice versa.
+ * Changes to the graph are reflected in the model, and vice versa.
*
- * @param model RDF4J {@link Model} to adapt.
+ * @param model
+ * RDF4J {@link Model} to adapt.
* @return Adapted {@link Graph}.
*/
public RDF4JGraph asRDFTermGraph(Model model) {
@@ -176,43 +168,40 @@ public class RDF4JTermFactory implements RDFTermFactory {
}
/**
- * Adapt an RDF4J {@link Repository} as a
- * Commons RDF {@link Graph}.
+ * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
* <p>
- * Changes to the graph are reflected in the repository, and
- * vice versa.
+ * Changes to the graph are reflected in the repository, and vice versa.
*
- * @param model RDF4J {@link Repository} to connect to.
+ * @param model
+ * RDF4J {@link Repository} to connect to.
* @return Adapted {@link Graph}.
*/
public RDF4JGraph asRDFTermGraph(Repository repository) {
return new RepositoryGraphImpl(repository);
- }
-
- public Statement asStatement(Quad quad) {
- return valueFactory.createStatement(
- (org.eclipse.rdf4j.model.Resource) asValue(quad.getSubject()),
- (org.eclipse.rdf4j.model.IRI) asValue(quad.getPredicate()),
- asValue(quad.getObject()),
- (org.eclipse.rdf4j.model.Resource) asValue(quad.getGraphName().orElse(null))
- );
}
- public Statement asStatement(Triple triple) {
- if (triple instanceof RDF4JTripleLike) {
- // This covers both RDF4JQuad and RDF4JTriple
- RDF4JTripleLike rdf4jTriple = (RDF4JTriple) triple;
+ public Statement asStatement(TripleLike<BlankNodeOrIRI, org.apache.commons.rdf.api.IRI, RDFTerm> tripleLike) {
+ if (tripleLike instanceof RDF4JTripleLike) {
+ // Return original statement - this covers both RDF4JQuad and RDF4JTriple
+ RDF4JTripleLike rdf4jTriple = (RDF4JTripleLike) tripleLike;
return rdf4jTriple.asStatement();
}
- return valueFactory.createStatement(
- (org.eclipse.rdf4j.model.Resource) asValue(triple.getSubject()),
- (org.eclipse.rdf4j.model.IRI) asValue(triple.getPredicate()),
- asValue(triple.getObject()));
+
+ org.eclipse.rdf4j.model.Resource subject = (org.eclipse.rdf4j.model.Resource) asValue(tripleLike.getSubject());
+ org.eclipse.rdf4j.model.IRI predicate = (org.eclipse.rdf4j.model.IRI) asValue(tripleLike.getPredicate());
+ Value object = asValue(tripleLike.getObject());
+
+ org.eclipse.rdf4j.model.Resource context = null;
+ if (tripleLike instanceof Quad) {
+ Quad quad = (Quad) tripleLike;
+ context = (org.eclipse.rdf4j.model.Resource) asValue(quad.getGraphName().orElse(null));
+ }
+
+ return valueFactory.createStatement(subject, predicate, object, context);
}
-
+
/**
- * Adapt a RDF4J {@link Statement} as a Commons RDF
- * {@link Triple}.
+ * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Triple}.
*
* @param statement
* @return A {@link RDF4JTriple} that is equivalent to the statement
@@ -220,14 +209,15 @@ public class RDF4JTermFactory implements RDFTermFactory {
public RDF4JTriple asTriple(final Statement statement) {
return new TripleImpl(statement, salt);
}
-
+
/**
* Adapt a Commons RDF {@link RDFTerm} as a RDF4J {@link Value}.
* <p>
* The value will be of the same kind as the term, e.g. a
* {@link org.apache.commons.rdf.api.BlankNode} is converted to a
- * {@link org.eclipse.rdf4j.model.BNode}, a {@link org.apache.commons.rdf.api.IRI}
- * is converted to a {@link org.eclipse.rdf4j.model.IRI} and a
+ * {@link org.eclipse.rdf4j.model.BNode}, a
+ * {@link org.apache.commons.rdf.api.IRI} is converted to a
+ * {@link org.eclipse.rdf4j.model.IRI} and a
* {@link org.apache.commons.rdf.api.Literal} is converted to a
* {@link org.eclipse.rdf4j.model.Literal}.
* <p>
@@ -236,20 +226,21 @@ public class RDF4JTermFactory implements RDFTermFactory {
* <p>
* If the provided term is an instance of {@link RDF4JTerm}, then the
* {@link RDF4JTerm#asValue()} is returned without any conversion. Note that
- * this could mean that a {@link Value} from a different kind of
+ * this could mean that a {@link Value} from a different kind of
* {@link ValueFactory} could be returned.
*
- * @param term RDFTerm to adapt to RDF4J Value
+ * @param term
+ * RDFTerm to adapt to RDF4J Value
* @return Adapted RDF4J {@link Value}
*/
- public Value asValue(RDFTerm term) {
- if (term == null) {
+ public Value asValue(RDFTerm term) {
+ if (term == null) {
return null;
}
if (term instanceof RDF4JTerm) {
// One of our own - avoid converting again.
// (This is crucial to avoid double-escaping in BlankNode)
- return ((RDF4JTerm<?>)term).asValue();
+ return ((RDF4JTerm<?>) term).asValue();
}
if (term instanceof org.apache.commons.rdf.api.IRI) {
org.apache.commons.rdf.api.IRI iri = (org.apache.commons.rdf.api.IRI) term;
@@ -262,13 +253,14 @@ public class RDF4JTermFactory implements RDFTermFactory {
String lang = literal.getLanguageTag().get();
return valueFactory.createLiteral(label, lang);
}
- org.eclipse.rdf4j.model.IRI dataType = (org.eclipse.rdf4j.model.IRI ) asValue(literal.getDatatype());
+ org.eclipse.rdf4j.model.IRI dataType = (org.eclipse.rdf4j.model.IRI) asValue(literal.getDatatype());
return valueFactory.createLiteral(label, dataType);
}
if (term instanceof BlankNode) {
- // This is where it gets tricky to support round trips!
+ // This is where it gets tricky to support round trips!
BlankNode blankNode = (BlankNode) term;
- // FIXME: The uniqueReference might not be a valid BlankNode identifier..
+ // FIXME: The uniqueReference might not be a valid BlankNode
+ // identifier..
// does it have to be in RDF4J?
return valueFactory.createBNode(blankNode.uniqueReference());
}
@@ -278,29 +270,30 @@ public class RDF4JTermFactory implements RDFTermFactory {
@Override
public RDF4JBlankNode createBlankNode() throws UnsupportedOperationException {
BNode bnode = valueFactory.createBNode();
- return (RDF4JBlankNode)asRDFTerm(bnode);
+ return (RDF4JBlankNode) asRDFTerm(bnode);
}
@Override
public RDF4JBlankNode createBlankNode(String name) throws UnsupportedOperationException {
BNode bnode = valueFactory.createBNode(name);
- return (RDF4JBlankNode)asRDFTerm(bnode);
+ return (RDF4JBlankNode) asRDFTerm(bnode);
}
@Override
public RDF4JGraph createGraph() throws UnsupportedOperationException {
return asRDFTermGraph(new LinkedHashModel());
}
-
+
@Override
public RDF4JIRI createIRI(String iri) throws IllegalArgumentException, UnsupportedOperationException {
return (RDF4JIRI) asRDFTerm(valueFactory.createIRI(iri));
}
@Override
- public RDF4JLiteral createLiteral(String lexicalForm) throws IllegalArgumentException, UnsupportedOperationException {
+ public RDF4JLiteral createLiteral(String lexicalForm)
+ throws IllegalArgumentException, UnsupportedOperationException {
org.eclipse.rdf4j.model.Literal lit = valueFactory.createLiteral(lexicalForm);
- return (RDF4JLiteral)asRDFTerm(lit);
+ return (RDF4JLiteral) asRDFTerm(lit);
}
@Override
@@ -308,25 +301,22 @@ public class RDF4JTermFactory implements RDFTermFactory {
throws IllegalArgumentException, UnsupportedOperationException {
org.eclipse.rdf4j.model.IRI iri = valueFactory.createIRI(dataType.getIRIString());
org.eclipse.rdf4j.model.Literal lit = valueFactory.createLiteral(lexicalForm, iri);
- return (org.apache.commons.rdf.api.Literal)asRDFTerm(lit);
+ return (org.apache.commons.rdf.api.Literal) asRDFTerm(lit);
}
@Override
public org.apache.commons.rdf.api.Literal createLiteral(String lexicalForm, String languageTag)
throws IllegalArgumentException, UnsupportedOperationException {
org.eclipse.rdf4j.model.Literal lit = valueFactory.createLiteral(lexicalForm, languageTag);
- return (org.apache.commons.rdf.api.Literal)asRDFTerm(lit);
+ return (org.apache.commons.rdf.api.Literal) asRDFTerm(lit);
}
@Override
public RDF4JTriple createTriple(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object)
throws IllegalArgumentException, UnsupportedOperationException {
- final Statement statement = valueFactory.createStatement(
- (org.eclipse.rdf4j.model.Resource) asValue(subject),
- (org.eclipse.rdf4j.model.IRI) asValue(predicate),
- asValue(object));
+ final Statement statement = valueFactory.createStatement((org.eclipse.rdf4j.model.Resource) asValue(subject),
+ (org.eclipse.rdf4j.model.IRI) asValue(predicate), asValue(object));
return asTriple(statement);
}
-
}
[4/8] incubator-commonsrdf git commit: some attempt to propagate a
selected Resource[] contexts
Posted by st...@apache.org.
some attempt to propagate a selected Resource[] contexts
(currently broken)
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/ccd9e972
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/ccd9e972
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/ccd9e972
Branch: refs/heads/rdf4j
Commit: ccd9e97226cdb6892f0db15fe7db73b83433f347
Parents: e477b93
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jun 3 15:53:47 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 3 15:53:47 2016 +0100
----------------------------------------------------------------------
.../rdf4j/impl/AbstractRepositoryGraphLike.java | 1 -
.../rdf/rdf4j/impl/RepositoryDatasetImpl.java | 142 +++++++++++++++++++
.../rdf/rdf4j/impl/RepositoryGraphImpl.java | 18 +--
3 files changed, 152 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ccd9e972/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
index 1283e2e..b048674 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
@@ -22,7 +22,6 @@ import java.util.Optional;
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.tripleLike;
import org.apache.commons.rdf.api.TripleLike;
import org.apache.commons.rdf.rdf4j.RDF4JGraphLike;
import org.apache.commons.rdf.rdf4j.RDF4JTermFactory;
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ccd9e972/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
new file mode 100644
index 0000000..50c7d20
--- /dev/null
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
@@ -0,0 +1,142 @@
+/**
+ * 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.rdf4j.impl;
+
+import java.util.ConcurrentModificationException;
+import java.util.Optional;
+import java.util.stream.Stream;
+
+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.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.rdf4j.RDF4JDataset;
+import org.apache.commons.rdf.rdf4j.RDF4JQuad;
+import org.apache.commons.rdf.rdf4j.RDF4JTriple;
+import org.eclipse.rdf4j.common.iteration.Iterations;
+import org.eclipse.rdf4j.model.Resource;
+import org.eclipse.rdf4j.model.Statement;
+import org.eclipse.rdf4j.model.Value;
+import org.eclipse.rdf4j.repository.RepositoryConnection;
+import org.eclipse.rdf4j.repository.RepositoryResult;
+
+public class RepositoryDatasetImpl extends AbstractRepositoryGraphLike<Quad> implements RDF4JDataset, Dataset {
+
+
+ @Override
+ public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ Resource context = (Resource) rdf4jTermFactory.asValue(graphName);
+ Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
+ org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
+ Value obj = rdf4jTermFactory.asValue(object);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.add(subj, pred, obj, context);
+ conn.commit();
+ }
+ }
+
+ @Override
+ public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
+ org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
+ Value obj = rdf4jTermFactory.asValue(object);
+ Resource[] contexts = asContexts(graphName);
+
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ return conn.hasStatement(subj, pred, obj, includeInferred, contexts);
+ }
+ }
+
+ private Resource[] asContexts(Optional<BlankNodeOrIRI> graphName) {
+ Resource[] contexts;
+ if (graphName == null) {
+ // no contexts == any contexts
+ contexts = new Resource[0];
+ } else {
+ BlankNodeOrIRI g = graphName.orElse(null);
+ Resource context = (Resource) rdf4jTermFactory.asValue(g);
+ contexts = new Resource[] { context };
+ }
+ return contexts;
+ }
+
+ @Override
+ public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
+ org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
+ Value obj = rdf4jTermFactory.asValue(object);
+ Resource[] contexts = asContexts(graphName);
+
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.remove(subj, pred, obj, contexts);
+ conn.commit();
+ }
+ }
+
+ @Override
+ public Stream<RDF4JQuad> stream() {
+ return stream(null, null, null, null);
+ }
+
+ @Override
+ public Stream<RDF4JQuad> stream(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
+ org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
+ Value obj = rdf4jTermFactory.asValue(object);
+ Resource[] contexts = asContexts(graphName);
+
+ RepositoryConnection conn = getRepositoryConnection();
+ // NOTE: connection will be closed outside by the Iterations.stream()
+ RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj, includeInferred, contexts);
+ return Iterations.stream(statements).map(this::asTripleLike);
+ }
+
+ @Override
+ protected RDF4JQuad asTripleLike(Statement s) {
+ return rdf4jTermFactory.asQuad(s);
+ }
+
+ @Override
+ public Iterable<Quad> iterate() throws ConcurrentModificationException, IllegalStateException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Graph getGraph() {
+ // TODO: Specify default context only
+ return new RepositoryGraphImpl(repository, includeInferred);
+ }
+
+ @Override
+ public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
+ Resource context = (Resource) rdf4jTermFactory.asValue(graphName);
+ return new RepositoryGraphImpl(repository, includeInferred, context);
+ }
+
+ @Override
+ public Stream<BlankNodeOrIRI> getGraphNames() {
+ RepositoryConnection conn = getRepositoryConnection();
+ RepositoryResult<Resource> contexts = conn.getContextIDs();
+ // NOTE: connection will be closed outside by the Iterations.stream()
+ return Iterations.stream(contexts).map(g -> (BlankNodeOrIRI) rdf4jTermFactory.asRDFTerm(g));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ccd9e972/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
index 1fe1498..574ddb1 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
@@ -36,12 +36,16 @@ import org.eclipse.rdf4j.repository.RepositoryResult;
public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> implements Graph, RDF4JGraph {
+ private Resource[] contextFilter;
+
public RepositoryGraphImpl(Repository repository) {
- super(repository, false);
+ // All contexts (supplying null would mean default graph only)
+ this(repository, false);
}
- public RepositoryGraphImpl(Repository repository, boolean includeInferred) {
+ public RepositoryGraphImpl(Repository repository, boolean includeInferred, Resource... contextFilter) {
super(repository, includeInferred);
+ this.contextFilter = contextFilter;
}
@Override
@@ -50,12 +54,10 @@ public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> imp
org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
Value obj = rdf4jTermFactory.asValue(object);
try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.add(subj, pred, obj);
+ conn.add(subj, pred, obj, contextFilter);
conn.commit();
}
}
-
-
@Override
public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
@@ -63,7 +65,7 @@ public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> imp
org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
Value obj = rdf4jTermFactory.asValue(object);
try (RepositoryConnection conn = getRepositoryConnection()) {
- return conn.hasStatement(subj, pred, obj, includeInferred);
+ return conn.hasStatement(subj, pred, obj, includeInferred, contextFilter);
}
}
@@ -73,7 +75,7 @@ public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> imp
org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
Value obj = rdf4jTermFactory.asValue(object);
try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.remove(subj, pred, obj);
+ conn.remove(subj, pred, obj, contextFilter);
conn.commit();
}
}
@@ -90,7 +92,7 @@ public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> imp
Value obj = rdf4jTermFactory.asValue(object);
RepositoryConnection conn = getRepositoryConnection();
// FIXME: Is it OK that we don't close the connection?
- RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj);
+ RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj, contextFilter);
return Iterations.stream(statements).map(this::asTripleLike);
}
[7/8] incubator-commonsrdf git commit: Added DatasetGraphView
Posted by st...@apache.org.
Added DatasetGraphView
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/580484c9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/580484c9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/580484c9
Branch: refs/heads/rdf4j
Commit: 580484c9d7d02d34b64e5276744c1f644dbbd2f2
Parents: 14e505e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Jun 14 16:44:24 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Jun 14 16:44:24 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/simple/DatasetGraphView.java | 138 +++++++++++++++++++
.../apache/commons/rdf/simple/DatasetImpl.java | 8 +-
2 files changed, 139 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/580484c9/simple/src/main/java/org/apache/commons/rdf/simple/DatasetGraphView.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetGraphView.java b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetGraphView.java
new file mode 100644
index 0000000..a347c3e
--- /dev/null
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetGraphView.java
@@ -0,0 +1,138 @@
+/**
+ * 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.simple;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+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.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.Triple;
+
+/**
+ * A {@link Graph} view on a {@link Dataset}.
+ * <p>
+ * This view is backed by a {@link Dataset}, and can be constructed in two ways:
+ *
+ * <dl>
+ * <dt>{@link #DatasetGraphView(Dataset)}</dt>
+ * <dd>Expose a <em>union graph</em> view of the Dataset, where all the
+ * {@link Quad}s of the Dataset is represented as a {@link Triple}. Adding
+ * triples will add them to the <em>default graph</em>, while removing triples
+ * will remove from all graphs.</dd>
+*
+ * <dt>{@link #DatasetGraphView(Dataset, IRI)}</dt>
+ * <dd>Expose a particular graph of the Dataset, either named by an {@link IRI}, a
+ * {@link BlankNode}, or <code>null</code> for the <em>default graph</em>.</dd>
+ * </dl>
+ * <p>
+ * Changes in the Graph are reflected directly in the Dataset and vice versa.
+ * This class is thread-safe is the underlying Dataset is thread-safe.
+ */
+public class DatasetGraphView implements Graph {
+
+ private final boolean unionGraph;
+ private final BlankNodeOrIRI namedGraph;
+ private final Dataset dataset;
+
+ public DatasetGraphView(Dataset dataset) {
+ this.dataset = dataset;
+ this.namedGraph = null;
+ this.unionGraph = true;
+ }
+
+ public DatasetGraphView(Dataset dataset, BlankNodeOrIRI namedGraph) {
+ this.dataset = dataset;
+ this.namedGraph = namedGraph;
+ this.unionGraph = false;
+ }
+
+ @Override
+ public void close() throws Exception {
+ dataset.close();
+
+ }
+
+ @Override
+ public void add(Triple triple) {
+ dataset.add(namedGraph, triple.getSubject(), triple.getPredicate(), triple.getObject());
+ }
+
+ @Override
+ public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ dataset.add(namedGraph, subject, predicate, object);
+ }
+
+ @Override
+ public boolean contains(Triple triple) {
+ return dataset.contains(unionOrNamedGraph(), triple.getSubject(), triple.getPredicate(), triple.getObject());
+ }
+
+ private Optional<BlankNodeOrIRI> unionOrNamedGraph() {
+ if (unionGraph) {
+ return null;
+ }
+ return Optional.ofNullable(namedGraph);
+ }
+
+ @Override
+ public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ return dataset.contains(unionOrNamedGraph(), subject, predicate, object);
+ }
+
+ @Override
+ public void remove(Triple triple) {
+ dataset.remove(unionOrNamedGraph(), triple.getSubject(), triple.getPredicate(), triple.getObject());
+ }
+
+ @Override
+ public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ dataset.remove(unionOrNamedGraph(), subject, predicate, object);
+ }
+
+ @Override
+ public void clear() {
+ dataset.remove(unionOrNamedGraph(), null, null, null);
+ }
+
+ @Override
+ public long size() {
+ return stream().count();
+ }
+
+ @Override
+ public Stream<? extends Triple> stream() {
+ return stream(null, null, null);
+ }
+
+ @Override
+ public Stream<? extends Triple> stream(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ Stream<Triple> stream = dataset.stream(unionOrNamedGraph(), subject, predicate, object).map(Quad::asTriple);
+ if (unionGraph) {
+ // remove duplicates
+ return stream.distinct();
+ }
+ return stream;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/580484c9/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
index 9de358f..c372012 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
@@ -204,13 +204,7 @@ final class DatasetImpl implements Dataset {
@Override
public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
- // NOTE: Always returns a new copy
- Graph g = new GraphImpl(factory);
- stream(Optional.ofNullable(graphName), null, null, null)
- .map(Quad::asTriple)
- .sequential()
- .forEach(g::add);
- return Optional.of(g);
+ return Optional.of(new DatasetGraphView(this, graphName));
}
@Override
[5/8] incubator-commonsrdf git commit: RepositoryDatasetImpl
constructors
Posted by st...@apache.org.
RepositoryDatasetImpl constructors
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/b6e938c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/b6e938c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/b6e938c5
Branch: refs/heads/rdf4j
Commit: b6e938c54c5d45a79f5d88b0661688bd60dc7315
Parents: ccd9e97
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jun 3 17:48:38 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 3 17:48:38 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b6e938c5/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
index 50c7d20..7e18e5e 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
@@ -29,16 +29,23 @@ import org.apache.commons.rdf.api.Quad;
import org.apache.commons.rdf.api.RDFTerm;
import org.apache.commons.rdf.rdf4j.RDF4JDataset;
import org.apache.commons.rdf.rdf4j.RDF4JQuad;
-import org.apache.commons.rdf.rdf4j.RDF4JTriple;
import org.eclipse.rdf4j.common.iteration.Iterations;
import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.Statement;
import org.eclipse.rdf4j.model.Value;
+import org.eclipse.rdf4j.repository.Repository;
import org.eclipse.rdf4j.repository.RepositoryConnection;
import org.eclipse.rdf4j.repository.RepositoryResult;
public class RepositoryDatasetImpl extends AbstractRepositoryGraphLike<Quad> implements RDF4JDataset, Dataset {
+ public RepositoryDatasetImpl(Repository repository, boolean includeInferred) {
+ super(repository, includeInferred);
+ }
+
+ public RepositoryDatasetImpl(Repository repository) {
+ super(repository);
+ }
@Override
public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
@@ -127,8 +134,8 @@ public class RepositoryDatasetImpl extends AbstractRepositoryGraphLike<Quad> imp
@Override
public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
- Resource context = (Resource) rdf4jTermFactory.asValue(graphName);
- return new RepositoryGraphImpl(repository, includeInferred, context);
+ Resource context = (Resource) rdf4jTermFactory.asValue(graphName);
+ return Optional.of(new RepositoryGraphImpl(repository, includeInferred, context));
}
@Override
[6/8] incubator-commonsrdf git commit: Use contextFilter for graph
modifications
Posted by st...@apache.org.
Use contextFilter for graph modifications
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/4dab5103
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/4dab5103
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/4dab5103
Branch: refs/heads/rdf4j
Commit: 4dab5103d56f396dd17a3dd67f0980c0bad525c4
Parents: b6e938c
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Jun 14 16:40:37 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Jun 14 16:40:37 2016 +0100
----------------------------------------------------------------------
.../apache/commons/rdf/rdf4j/RDF4JGraph.java | 4 ++
.../rdf4j/impl/AbstractRepositoryGraphLike.java | 46 +------------------
.../rdf/rdf4j/impl/RepositoryDatasetImpl.java | 46 ++++++++++++++++++-
.../rdf/rdf4j/impl/RepositoryGraphImpl.java | 48 ++++++++++++++++++++
4 files changed, 98 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4dab5103/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
index d7cb50e..5333f31 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
@@ -19,11 +19,15 @@ package org.apache.commons.rdf.rdf4j;
import org.apache.commons.rdf.api.Graph;
import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.rdf4j.impl.ModelGraphImpl;
+import org.apache.commons.rdf.rdf4j.impl.RepositoryGraphImpl;
/**
* Marker interface for RDF4J implementations of Graph.
*
+ * @see ModelGraphImpl
+ * @see RepositoryGraphImpl
*/
public interface RDF4JGraph extends Graph, RDF4JGraphLike<Triple> {
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4dab5103/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
index b048674..bd47436 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
@@ -61,51 +61,7 @@ public abstract class AbstractRepositoryGraphLike<T extends TripleLike<BlankNode
// down
}
- @Override
- public void add(T tripleLike) {
- Statement statement = rdf4jTermFactory.asStatement(tripleLike);
- try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.add(statement);
- conn.commit();
- }
- }
-
-
- @Override
- public boolean contains(T tripleLike) {
- Statement statement = rdf4jTermFactory.asStatement(tripleLike);
- try (RepositoryConnection conn = getRepositoryConnection()) {
- return conn.hasStatement(statement, includeInferred);
- }
- }
-
- @Override
- public void remove(T tripleLike) {
- Statement statement = rdf4jTermFactory.asStatement(tripleLike);
- try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.remove(statement);
- conn.commit();
- }
- }
-
- @Override
- public void clear() {
- try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.clear();
- conn.commit();
- }
- }
-
- @Override
- public long size() {
- try (RepositoryConnection conn = getRepositoryConnection()) {
- // FIXME: The below might contain duplicate statements across
- // multiple contexts
- return conn.size();
- }
-
- }
-
+
protected abstract T asTripleLike(Statement s);
protected RepositoryConnection getRepositoryConnection() {
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4dab5103/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
index 7e18e5e..0fb8a78 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java
@@ -47,6 +47,50 @@ public class RepositoryDatasetImpl extends AbstractRepositoryGraphLike<Quad> imp
super(repository);
}
+
+ @Override
+ public void add(Quad tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.add(statement);
+ conn.commit();
+ }
+ }
+
+
+ @Override
+ public boolean contains(Quad tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ return conn.hasStatement(statement, includeInferred);
+ }
+ }
+
+ @Override
+ public void remove(Quad tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.remove(statement);
+ conn.commit();
+ }
+ }
+
+ @Override
+ public void clear() {
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.clear();
+ conn.commit();
+ }
+ }
+
+ @Override
+ public long size() {
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ return conn.size();
+ }
+ }
+
+
@Override
public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
Resource context = (Resource) rdf4jTermFactory.asValue(graphName);
@@ -128,7 +172,7 @@ public class RepositoryDatasetImpl extends AbstractRepositoryGraphLike<Quad> imp
@Override
public Graph getGraph() {
- // TODO: Specify default context only
+ // TODO: Specify default context only? (the below will give the union graph)
return new RepositoryGraphImpl(repository, includeInferred);
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4dab5103/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
index 574ddb1..2950579 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
@@ -48,6 +48,54 @@ public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> imp
this.contextFilter = contextFilter;
}
+
+ @Override
+ public void add(Triple tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.add(statement, contextFilter);
+ conn.commit();
+ }
+ }
+
+
+ @Override
+ public boolean contains(Triple tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ return conn.hasStatement(statement, includeInferred, contextFilter);
+ }
+ }
+
+ @Override
+ public void remove(Triple tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.remove(statement, contextFilter);
+ conn.commit();
+ }
+ }
+
+ @Override
+ public void clear() {
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.clear(contextFilter);
+ conn.commit();
+ }
+ }
+
+ @Override
+ public long size() {
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ if (! includeInferred && contextFilter.length == 0) {
+ return conn.size();
+ } else {
+ return stream().count();
+ }
+ }
+ }
+
+
@Override
public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
[8/8] incubator-commonsrdf git commit: Merge branch 'quad' into rdf4j
Posted by st...@apache.org.
Merge branch 'quad' into rdf4j
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/81f195f3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/81f195f3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/81f195f3
Branch: refs/heads/rdf4j
Commit: 81f195f3183bd8a22063a1d719182e74bd83203c
Parents: 4dab510 580484c
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Jun 14 16:44:45 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Jun 14 16:44:45 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/simple/DatasetGraphView.java | 138 +++++++++++++++++++
.../apache/commons/rdf/simple/DatasetImpl.java | 8 +-
2 files changed, 139 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
[3/8] incubator-commonsrdf git commit: Split out
AbstractRepositoryGraphLike
Posted by st...@apache.org.
Split out AbstractRepositoryGraphLike
.. to be used by RepositoryDataset
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/e477b937
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/e477b937
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/e477b937
Branch: refs/heads/rdf4j
Commit: e477b937ecd9b20970ff720e2711ee844b9e9e94
Parents: 3af404e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jun 3 15:26:26 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 3 15:27:13 2016 +0100
----------------------------------------------------------------------
.../apache/commons/rdf/rdf4j/RDF4JDataset.java | 30 +++++
.../apache/commons/rdf/rdf4j/RDF4JGraph.java | 33 +----
.../commons/rdf/rdf4j/RDF4JGraphLike.java | 63 ++++++++++
.../rdf4j/impl/AbstractRepositoryGraphLike.java | 125 +++++++++++++++++++
.../rdf/rdf4j/impl/RepositoryGraphImpl.java | 94 ++------------
5 files changed, 230 insertions(+), 115 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e477b937/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java
new file mode 100644
index 0000000..b0ca08d
--- /dev/null
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.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.rdf4j;
+
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.Quad;
+
+
+/**
+ * Marker interface for RDF4J implementations of Dataset.
+ *
+ */
+public interface RDF4JDataset extends Dataset, RDF4JGraphLike<Quad> {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e477b937/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
index abc4a98..d7cb50e 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
@@ -17,43 +17,14 @@
*/
package org.apache.commons.rdf.rdf4j;
-import java.util.Optional;
-
import org.apache.commons.rdf.api.Graph;
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.repository.Repository;
+import org.apache.commons.rdf.api.Triple;
/**
* Marker interface for RDF4J implementations of Graph.
*
*/
-public interface RDF4JGraph extends Graph {
-
- /**
- * Return the corresponding RDF4J {@link Model}, if present.
- * <p>
- * The return value is {@link Optional#isPresent()} if this graph is
- * backed by a Model.
- * <p>
- * Changes to the Model are reflected in this Graph, and
- * vice versa.
- *
- * @return The corresponding RDF4J Model.
- */
- public Optional<Model> asModel();
+public interface RDF4JGraph extends Graph, RDF4JGraphLike<Triple> {
- /**
- * Return the corresponding RDF4J {@link Repository}, if present.
- * <p>
- * The return value is {@link Optional#isPresent()} if this graph is
- * backed by a Repository.
- * <p>
- * Changes to the Repository are reflected in this Graph, and
- * vice versa.
- *
- * @return The corresponding RDF4J Repository.
- */
- public Optional<Repository> asRepository();
-
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e477b937/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraphLike.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraphLike.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraphLike.java
new file mode 100644
index 0000000..1750bd8
--- /dev/null
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraphLike.java
@@ -0,0 +1,63 @@
+/**
+ * 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.rdf4j;
+
+import java.util.Optional;
+
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.GraphLike;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.TripleLike;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.repository.Repository;
+
+/**
+ * Marker interface for RDF4J implementations of GraphLike.
+ *
+ * @see RDF4JGraph
+ *
+ */
+public interface RDF4JGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm>>
+ extends GraphLike<T, BlankNodeOrIRI, IRI, RDFTerm>, AutoCloseable {
+
+ /**
+ * Return the corresponding RDF4J {@link Model}, if present.
+ * <p>
+ * The return value is {@link Optional#isPresent()} if this is backed by a
+ * Model.
+ * <p>
+ * Changes to the Model are reflected in both directions.
+ *
+ * @return The corresponding RDF4J Model.
+ */
+ public Optional<Model> asModel();
+
+ /**
+ * Return the corresponding RDF4J {@link Repository}, if present.
+ * <p>
+ * The return value is {@link Optional#isPresent()} if this is backed by a
+ * Repository.
+ * <p>
+ * Changes to the Repository are reflected in both directions.
+ *
+ * @return The corresponding RDF4J Repository.
+ */
+ public Optional<Repository> asRepository();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e477b937/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
new file mode 100644
index 0000000..1283e2e
--- /dev/null
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
@@ -0,0 +1,125 @@
+/**
+ * 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.rdf4j.impl;
+
+import java.util.Optional;
+
+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.tripleLike;
+import org.apache.commons.rdf.api.TripleLike;
+import org.apache.commons.rdf.rdf4j.RDF4JGraphLike;
+import org.apache.commons.rdf.rdf4j.RDF4JTermFactory;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.model.Statement;
+import org.eclipse.rdf4j.repository.Repository;
+import org.eclipse.rdf4j.repository.RepositoryConnection;
+
+public abstract class AbstractRepositoryGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm>>
+ implements RDF4JGraphLike<T> {
+
+ protected Repository repository;
+ protected boolean includeInferred;
+ protected boolean shouldWeShutdown = false;
+ protected RDF4JTermFactory rdf4jTermFactory;
+
+ public AbstractRepositoryGraphLike(Repository repository) {
+ this(repository, false);
+ }
+
+ public AbstractRepositoryGraphLike(Repository repository, boolean includeInferred) {
+ this.repository = repository;
+ this.includeInferred = includeInferred;
+ if (!repository.isInitialized()) {
+ repository.initialize();
+ shouldWeShutdown = true;
+ }
+ rdf4jTermFactory = new RDF4JTermFactory(repository.getValueFactory());
+ }
+
+ @Override
+ public void close() throws Exception {
+ if (shouldWeShutdown) {
+ repository.shutDown();
+ }
+ // else: repository was initialized outside, so we should not shut it
+ // down
+ }
+
+ @Override
+ public void add(T tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.add(statement);
+ conn.commit();
+ }
+ }
+
+
+ @Override
+ public boolean contains(T tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ return conn.hasStatement(statement, includeInferred);
+ }
+ }
+
+ @Override
+ public void remove(T tripleLike) {
+ Statement statement = rdf4jTermFactory.asStatement(tripleLike);
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.remove(statement);
+ conn.commit();
+ }
+ }
+
+ @Override
+ public void clear() {
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ conn.clear();
+ conn.commit();
+ }
+ }
+
+ @Override
+ public long size() {
+ try (RepositoryConnection conn = getRepositoryConnection()) {
+ // FIXME: The below might contain duplicate statements across
+ // multiple contexts
+ return conn.size();
+ }
+
+ }
+
+ protected abstract T asTripleLike(Statement s);
+
+ protected RepositoryConnection getRepositoryConnection() {
+ return repository.getConnection();
+ }
+
+ public Optional<Repository> asRepository() {
+ return Optional.of(repository);
+ }
+
+ @Override
+ public Optional<Model> asModel() {
+ return Optional.empty();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e477b937/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
index 2e608a1..1fe1498 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
@@ -17,7 +17,6 @@
*/
package org.apache.commons.rdf.rdf4j.impl;
-import java.util.Optional;
import java.util.stream.Stream;
import org.apache.commons.rdf.api.BlankNodeOrIRI;
@@ -26,10 +25,8 @@ 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.rdf4j.RDF4JGraph;
-import org.apache.commons.rdf.rdf4j.RDF4JTermFactory;
import org.apache.commons.rdf.rdf4j.RDF4JTriple;
import org.eclipse.rdf4j.common.iteration.Iterations;
-import org.eclipse.rdf4j.model.Model;
import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.Statement;
import org.eclipse.rdf4j.model.Value;
@@ -37,43 +34,14 @@ import org.eclipse.rdf4j.repository.Repository;
import org.eclipse.rdf4j.repository.RepositoryConnection;
import org.eclipse.rdf4j.repository.RepositoryResult;
-public class RepositoryGraphImpl implements Graph, RDF4JGraph {
-
- private Repository repository;
- private boolean includeInferred;
- boolean shouldWeShutdown = false;
- private RDF4JTermFactory rdf4jTermFactory;
+public class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> implements Graph, RDF4JGraph {
public RepositoryGraphImpl(Repository repository) {
- this(repository, false);
+ super(repository, false);
}
public RepositoryGraphImpl(Repository repository, boolean includeInferred) {
- this.repository = repository;
- this.includeInferred = includeInferred;
- if (!repository.isInitialized()) {
- repository.initialize();
- shouldWeShutdown = true;
- }
- rdf4jTermFactory = new RDF4JTermFactory(repository.getValueFactory());
- }
-
- @Override
- public void close() throws Exception {
- if (shouldWeShutdown) {
- repository.shutDown();
- }
- // else: repository was initialized outside, so we should not shut it
- // down
- }
-
- @Override
- public void add(Triple triple) {
- Statement statement = rdf4jTermFactory.asStatement(triple);
- try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.add(statement);
- conn.commit();
- }
+ super(repository, includeInferred);
}
@Override
@@ -86,14 +54,8 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
conn.commit();
}
}
-
- @Override
- public boolean contains(Triple triple) {
- Statement statement = rdf4jTermFactory.asStatement(triple);
- try (RepositoryConnection conn = getRepositoryConnection()) {
- return conn.hasStatement(statement, includeInferred);
- }
- }
+
+
@Override
public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
@@ -106,15 +68,6 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
}
@Override
- public void remove(Triple triple) {
- Statement statement = rdf4jTermFactory.asStatement(triple);
- try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.remove(statement);
- conn.commit();
- }
- }
-
- @Override
public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
@@ -126,28 +79,10 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
}
@Override
- public void clear() {
- try (RepositoryConnection conn = getRepositoryConnection()) {
- conn.clear();
- conn.commit();
- }
- }
-
- @Override
- public long size() {
- try (RepositoryConnection conn = getRepositoryConnection()) {
- // FIXME: The below might contain duplicate statements across
- // multiple contexts
- return conn.size();
- }
-
- }
-
- @Override
public Stream<RDF4JTriple> stream() {
return stream(null, null, null);
}
-
+
@Override
public Stream<RDF4JTriple> stream(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
@@ -156,21 +91,12 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
RepositoryConnection conn = getRepositoryConnection();
// FIXME: Is it OK that we don't close the connection?
RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj);
- return Iterations.stream(statements).map(rdf4jTermFactory::asTriple);
-
+ return Iterations.stream(statements).map(this::asTripleLike);
}
-
- private RepositoryConnection getRepositoryConnection() {
- return repository.getConnection();
- }
-
- public Optional<Repository> asRepository() {
- return Optional.of(repository);
- }
-
+
@Override
- public Optional<Model> asModel() {
- return Optional.empty();
+ protected RDF4JTriple asTripleLike(Statement statement) {
+ return rdf4jTermFactory.asTriple(statement);
}
}