Rename ViewDatasetGraph -> DyadicDatasetGraph
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9536bcde Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9536bcde Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9536bcde Branch: refs/heads/master Commit: 9536bcdecdfb717a731a189b5cd97fc42143dc37 Parents: 018a706 Author: ajs6f <[email protected]> Authored: Tue Jan 2 11:17:57 2018 -0500 Committer: ajs6f <[email protected]> Committed: Fri Jan 5 09:32:55 2018 -0500 ---------------------------------------------------------------------- .../sparql/util/DifferenceDatasetGraph.java | 2 +- .../jena/sparql/util/DyadicDatasetGraph.java | 225 +++++++++++++++++++ .../sparql/util/IntersectionDatasetGraph.java | 2 +- .../jena/sparql/util/UnionDatasetGraph.java | 2 +- .../jena/sparql/util/ViewDatasetGraph.java | 225 ------------------- 5 files changed, 228 insertions(+), 228 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/9536bcde/jena-arq/src/main/java/org/apache/jena/sparql/util/DifferenceDatasetGraph.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/DifferenceDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/DifferenceDatasetGraph.java index c092b34..6dbdfad 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/util/DifferenceDatasetGraph.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/DifferenceDatasetGraph.java @@ -29,7 +29,7 @@ import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.util.iterator.ExtendedIterator; import org.apache.jena.util.iterator.NullIterator; -public class DifferenceDatasetGraph extends ViewDatasetGraph { +public class DifferenceDatasetGraph extends DyadicDatasetGraph { public DifferenceDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) { super(left, right, c); http://git-wip-us.apache.org/repos/asf/jena/blob/9536bcde/jena-arq/src/main/java/org/apache/jena/sparql/util/DyadicDatasetGraph.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/DyadicDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/DyadicDatasetGraph.java new file mode 100644 index 0000000..6b70fd5 --- /dev/null +++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/DyadicDatasetGraph.java @@ -0,0 +1,225 @@ +/* + * 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.jena.sparql.util; + +import static java.util.Objects.requireNonNull; +import static org.apache.jena.atlas.iterator.Iter.count; +import static org.apache.jena.atlas.iterator.Iter.map; +import static org.apache.jena.ext.com.google.common.collect.Iterators.concat; +import static org.apache.jena.graph.Node.ANY; +import static org.apache.jena.query.ReadWrite.READ; +import static org.apache.jena.sparql.core.Quad.defaultGraphIRI; +import static org.apache.jena.sparql.util.graph.GraphUtils.triples2quads; + +import java.util.Iterator; + +import org.apache.jena.atlas.lib.Pair; +import org.apache.jena.graph.Graph; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.compose.MultiUnion; +import org.apache.jena.query.ReadWrite; +import org.apache.jena.shared.Lock; +import org.apache.jena.sparql.core.DatasetGraph; +import org.apache.jena.sparql.core.Quad; + +public abstract class DyadicDatasetGraph extends Pair.OfSameType<DatasetGraph> implements DatasetGraph { + + private Context context; + + private final Lock lock; + + public DyadicDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) { + super(requireNonNull(left), requireNonNull(right)); + this.context = requireNonNull(c); + this.lock = new PairLock(left.getLock(), right.getLock()); + } + + protected static void throwNoMutationAllowed() { + throw new UnsupportedOperationException("This view does not allow mutation!"); + } + + @Override + public void commit() { + throwNoMutationAllowed(); + } + + @Override + public void begin(ReadWrite readWrite) { + switch (readWrite) { + case WRITE: + throwNoMutationAllowed(); + case READ: + forEach(dsg -> dsg.begin(READ)); + } + } + + @Override + public void abort() { + forEach(DatasetGraph::abort); + } + + @Override + public void end() { + forEach(DatasetGraph::end); + } + + @Override + public boolean isInTransaction() { + return either(DatasetGraph::isInTransaction); + } + + @Override + public void setDefaultGraph(Graph g) { + throwNoMutationAllowed(); + } + + @Override + public void addGraph(Node graphName, Graph graph) { + throwNoMutationAllowed(); + } + + @Override + public void removeGraph(Node graphName) { + throwNoMutationAllowed(); + } + + @Override + public void add(Quad quad) { + throwNoMutationAllowed(); + } + + @Override + public void delete(Quad quad) { + throwNoMutationAllowed(); + } + + @Override + public void add(Node g, Node s, Node p, Node o) { + throwNoMutationAllowed(); + } + + @Override + public void delete(Node g, Node s, Node p, Node o) { + throwNoMutationAllowed(); + } + + @Override + public void deleteAny(Node g, Node s, Node p, Node o) { + throwNoMutationAllowed(); + } + + @Override + public void clear() { + throwNoMutationAllowed(); + } + + @Override + public Iterator<Quad> find() { + return find(Quad.ANY); + } + + @Override + public Iterator<Quad> find(Quad q) { + return find(q.getGraph(), q.getSubject(), q.getPredicate(), q.getObject()); + } + + @Override + public Iterator<Quad> find(Node g, Node s, Node p, Node o) { + return g.isConcrete() + ? findInOneGraph(g, s, p, o) + : concat(findNG(ANY, s, p, o), findInOneGraph(defaultGraphIRI, s, p, o)); + } + + @Override + public Iterator<Quad> findNG(Node g, Node s, Node p, Node o) { + return g.isConcrete() + ? findInOneGraph(g, s, p, o) + : concat(map(listGraphNodes(), gn -> findInOneGraph(gn, s, p, o))); + } + + protected Iterator<Quad> findInOneGraph(Node g, Node s, Node p, Node o) { + return triples2quads(g, getGraph(g).find(s, p, o)); + } + + @Override + public Graph getUnionGraph() { + return new MultiUnion(map(listGraphNodes(), this::getGraph)); + } + + @Override + public boolean contains(Quad q) { + return contains(q.getGraph(), q.getSubject(), q.getPredicate(), q.getObject()); + } + + @Override + public Lock getLock() { + return lock; + } + + @Override + public Context getContext() { + return context; + } + + public DatasetGraph setContext(Context c) { + this.context = c; + return this; + } + + @Override + public void close() { + } + + @Override + public boolean supportsTransactions() { + return both(DatasetGraph::supportsTransactions); + } + + @Override + public boolean supportsTransactionAbort() { + return both(DatasetGraph::supportsTransactionAbort); + } + + @Override + public long size() { + return count(listGraphNodes()); + } + + @Override + public boolean isEmpty() { + return listGraphNodes().hasNext(); + } + + private static class PairLock extends Pair.OfSameType<Lock> implements Lock { + + public PairLock(Lock left, Lock right) { + super(left, right); + } + + @Override + public void enterCriticalSection(boolean readLockRequested) { + forEach(lock -> lock.enterCriticalSection(readLockRequested)); + } + + @Override + public void leaveCriticalSection() { + forEach(Lock::leaveCriticalSection); + } + } +} http://git-wip-us.apache.org/repos/asf/jena/blob/9536bcde/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java index 52bcbc3..469f64b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java @@ -29,7 +29,7 @@ import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.util.iterator.ExtendedIterator; import org.apache.jena.util.iterator.NullIterator; -public class IntersectionDatasetGraph extends ViewDatasetGraph { +public class IntersectionDatasetGraph extends DyadicDatasetGraph { public IntersectionDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) { super(left, right, c); http://git-wip-us.apache.org/repos/asf/jena/blob/9536bcde/jena-arq/src/main/java/org/apache/jena/sparql/util/UnionDatasetGraph.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/UnionDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/UnionDatasetGraph.java index ebcdae4..c76ed85 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/util/UnionDatasetGraph.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/UnionDatasetGraph.java @@ -27,7 +27,7 @@ import org.apache.jena.graph.compose.Union; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.Quad; -public class UnionDatasetGraph extends ViewDatasetGraph { +public class UnionDatasetGraph extends DyadicDatasetGraph { public UnionDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) { super(left, right, c); http://git-wip-us.apache.org/repos/asf/jena/blob/9536bcde/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java deleted file mode 100644 index dd095c9..0000000 --- a/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java +++ /dev/null @@ -1,225 +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.jena.sparql.util; - -import static java.util.Objects.requireNonNull; -import static org.apache.jena.atlas.iterator.Iter.count; -import static org.apache.jena.atlas.iterator.Iter.map; -import static org.apache.jena.ext.com.google.common.collect.Iterators.concat; -import static org.apache.jena.graph.Node.ANY; -import static org.apache.jena.query.ReadWrite.READ; -import static org.apache.jena.sparql.core.Quad.defaultGraphIRI; -import static org.apache.jena.sparql.util.graph.GraphUtils.triples2quads; - -import java.util.Iterator; - -import org.apache.jena.atlas.lib.Pair; -import org.apache.jena.graph.Graph; -import org.apache.jena.graph.Node; -import org.apache.jena.graph.compose.MultiUnion; -import org.apache.jena.query.ReadWrite; -import org.apache.jena.shared.Lock; -import org.apache.jena.sparql.core.DatasetGraph; -import org.apache.jena.sparql.core.Quad; - -public abstract class ViewDatasetGraph extends Pair.OfSameType<DatasetGraph> implements DatasetGraph { - - private Context context; - - private final Lock lock; - - public ViewDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) { - super(requireNonNull(left), requireNonNull(right)); - this.context = requireNonNull(c); - this.lock = new PairLock(left.getLock(), right.getLock()); - } - - protected static void throwNoMutationAllowed() { - throw new UnsupportedOperationException("This view does not allow mutation!"); - } - - @Override - public void commit() { - throwNoMutationAllowed(); - } - - @Override - public void begin(ReadWrite readWrite) { - switch (readWrite) { - case WRITE: - throwNoMutationAllowed(); - case READ: - forEach(dsg -> dsg.begin(READ)); - } - } - - @Override - public void abort() { - forEach(DatasetGraph::abort); - } - - @Override - public void end() { - forEach(DatasetGraph::end); - } - - @Override - public boolean isInTransaction() { - return either(DatasetGraph::isInTransaction); - } - - @Override - public void setDefaultGraph(Graph g) { - throwNoMutationAllowed(); - } - - @Override - public void addGraph(Node graphName, Graph graph) { - throwNoMutationAllowed(); - } - - @Override - public void removeGraph(Node graphName) { - throwNoMutationAllowed(); - } - - @Override - public void add(Quad quad) { - throwNoMutationAllowed(); - } - - @Override - public void delete(Quad quad) { - throwNoMutationAllowed(); - } - - @Override - public void add(Node g, Node s, Node p, Node o) { - throwNoMutationAllowed(); - } - - @Override - public void delete(Node g, Node s, Node p, Node o) { - throwNoMutationAllowed(); - } - - @Override - public void deleteAny(Node g, Node s, Node p, Node o) { - throwNoMutationAllowed(); - } - - @Override - public void clear() { - throwNoMutationAllowed(); - } - - @Override - public Iterator<Quad> find() { - return find(Quad.ANY); - } - - @Override - public Iterator<Quad> find(Quad q) { - return find(q.getGraph(), q.getSubject(), q.getPredicate(), q.getObject()); - } - - @Override - public Iterator<Quad> find(Node g, Node s, Node p, Node o) { - return g.isConcrete() - ? findInOneGraph(g, s, p, o) - : concat(findNG(ANY, s, p, o), findInOneGraph(defaultGraphIRI, s, p, o)); - } - - @Override - public Iterator<Quad> findNG(Node g, Node s, Node p, Node o) { - return g.isConcrete() - ? findInOneGraph(g, s, p, o) - : concat(map(listGraphNodes(), gn -> findInOneGraph(gn, s, p, o))); - } - - protected Iterator<Quad> findInOneGraph(Node g, Node s, Node p, Node o) { - return triples2quads(g, getGraph(g).find(s, p, o)); - } - - @Override - public Graph getUnionGraph() { - return new MultiUnion(map(listGraphNodes(), this::getGraph)); - } - - @Override - public boolean contains(Quad q) { - return contains(q.getGraph(), q.getSubject(), q.getPredicate(), q.getObject()); - } - - @Override - public Lock getLock() { - return lock; - } - - @Override - public Context getContext() { - return context; - } - - public DatasetGraph setContext(Context c) { - this.context = c; - return this; - } - - @Override - public void close() { - } - - @Override - public boolean supportsTransactions() { - return both(DatasetGraph::supportsTransactions); - } - - @Override - public boolean supportsTransactionAbort() { - return both(DatasetGraph::supportsTransactionAbort); - } - - @Override - public long size() { - return count(listGraphNodes()); - } - - @Override - public boolean isEmpty() { - return listGraphNodes().hasNext(); - } - - private static class PairLock extends Pair.OfSameType<Lock> implements Lock { - - public PairLock(Lock left, Lock right) { - super(left, right); - } - - @Override - public void enterCriticalSection(boolean readLockRequested) { - forEach(lock -> lock.enterCriticalSection(readLockRequested)); - } - - @Override - public void leaveCriticalSection() { - forEach(Lock::leaveCriticalSection); - } - } -}
