Added JsonLdUnionGraph

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

Branch: refs/heads/jsonld-java
Commit: ea48c83efc02f0908868398742a4c90c903ab98c
Parents: 1330627
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 14:32:15 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 14:32:15 2016 +0100

----------------------------------------------------------------------
 .../rdf/jsonldjava/JsonLdUnionGraph.java        | 80 ++++++++++++++++++++
 1 file changed, 80 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ea48c83e/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
----------------------------------------------------------------------
diff --git 
a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
 
b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
new file mode 100644
index 0000000..ce164c6
--- /dev/null
+++ 
b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
@@ -0,0 +1,80 @@
+/**
+ * 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.jsonldjava;
+
+import java.util.List;
+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.RDFTerm;
+
+import com.github.jsonldjava.core.RDFDataset;
+
+public class JsonLdUnionGraph extends 
JsonLdGraphLike<org.apache.commons.rdf.api.Triple> implements Graph {
+
+       JsonLdUnionGraph(String bnodePrefix) {
+               super(bnodePrefix);
+       }
+       
+       public JsonLdUnionGraph(RDFDataset rdfDataSet) {
+               super(rdfDataSet);
+       }
+       
+       JsonLdUnionGraph(RDFDataset rdfDataSet, String bnodePrefix) {
+               super(rdfDataSet, bnodePrefix);
+       }
+
+
+       @Override
+       public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+               super.add(null, subject, predicate, object);
+       }
+
+       @Override
+       public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm 
object) {
+               return super.contains(null, subject, predicate, object);
+       }
+       
+       @Override
+       public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm 
object) {
+               super.remove(null, subject, predicate, object);
+       }
+
+       @Override
+       public Stream<JsonLdTriple> stream(BlankNodeOrIRI subject, IRI 
predicate,
+                       RDFTerm object) {               
+               return filteredGraphs(null)
+                               .flatMap(List::stream)
+                               .filter(quadFilter(subject, predicate, object))
+                               .map(factory::createTriple);
+       }
+
+       @Override
+       JsonLdTriple asTripleOrQuad(com.github.jsonldjava.core.RDFDataset.Quad 
jsonldQuad) {
+               return factory.createTriple(jsonldQuad);
+       }
+       
+       @Override
+       public long size() {
+               // NOTE: Inefficient as we'll have remove duplicate triples :-( 
+               return stream().distinct().count();
+       }
+}
+

Reply via email to