asJsonLdString moved to JsonLdRDFTermFactory
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/44a40d32 Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/44a40d32 Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/44a40d32 Branch: refs/heads/jena Commit: 44a40d3252ff5bc0b4f8733e7f9f33431243805c Parents: 02db403 Author: Stian Soiland-Reyes <[email protected]> Authored: Fri Sep 9 16:22:11 2016 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Fri Sep 9 16:22:11 2016 +0100 ---------------------------------------------------------------------- .../commons/rdf/jsonldjava/JsonLdGraph.java | 2 +- .../commons/rdf/jsonldjava/JsonLdGraphLike.java | 78 ++++++-------------- 2 files changed, 24 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/44a40d32/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java index a07f9b1..3b35c76 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java @@ -92,7 +92,7 @@ class JsonLdGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Triple> imp @Override public long size() { - String g = graphName.map(this::asJsonLdString).orElse("@default"); + String g = graphName.map(factory::asJsonLdString).orElse("@default"); return Optional.ofNullable(rdfDataSet.getQuads(g)) .map(List::size).orElse(0); } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/44a40d32/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java index 81f2ee7..cb8e568 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java @@ -17,7 +17,6 @@ */ package org.apache.commons.rdf.jsonldjava; -import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -25,7 +24,6 @@ import java.util.UUID; import java.util.function.Predicate; 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.GraphLike; import org.apache.commons.rdf.api.IRI; @@ -37,7 +35,6 @@ import org.apache.commons.rdf.api.TripleLike; import com.github.jsonldjava.core.RDFDataset; import com.github.jsonldjava.core.RDFDataset.Node; -import com.github.jsonldjava.core.RDFDataset.Quad; /** * Common abstract {@link GraphLike}. @@ -84,22 +81,31 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm } @Override - public void add(T tripleOrQuad) { - String g = graphNameAsJsonLdString(tripleOrQuad); - String s = asJsonLdString(tripleOrQuad.getSubject()); - String p = asJsonLdString(tripleOrQuad.getPredicate()); - - if (tripleOrQuad.getObject() instanceof BlankNodeOrIRI) { - String o = asJsonLdString((BlankNodeOrIRI)tripleOrQuad.getObject()); + public void add(T t) { + // add triples to default graph by default + BlankNodeOrIRI graphName = null; + if (t instanceof org.apache.commons.rdf.api.Quad) { + org.apache.commons.rdf.api.Quad q = (org.apache.commons.rdf.api.Quad)t; + graphName = q.getGraphName().orElse(null); + } + add(graphName, t.getSubject(), t.getPredicate(), t.getObject()); + } + + void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + String g = factory.asJsonLdString(graphName); + String s = factory.asJsonLdString(subject); + String p = factory.asJsonLdString(predicate); + if (object instanceof BlankNodeOrIRI) { + String o = factory.asJsonLdString((BlankNodeOrIRI)object); rdfDataSet.addQuad(s,p,o,g); - } else if(tripleOrQuad.getObject() instanceof Literal) { - Literal literal = (Literal) tripleOrQuad.getObject(); + } else if(object instanceof Literal) { + Literal literal = (Literal) object; String language = literal.getLanguageTag().orElse(null); String datatype = literal.getDatatype().getIRIString(); rdfDataSet.addQuad(s,p,literal.getLexicalForm(), datatype, language, g); - } + } } - + public void close() { // Drop the memory reference, but don't clear it rdfDataSet = null; @@ -133,44 +139,6 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm .map(this::asTripleOrQuad); } - void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - String g = asJsonLdString(graphName); - String s = asJsonLdString(subject); - String p = asJsonLdString(predicate); - if (object instanceof BlankNodeOrIRI) { - String o = asJsonLdString((BlankNodeOrIRI)object); - rdfDataSet.addQuad(s,p,o,g); - } else if(object instanceof Literal) { - Literal literal = (Literal) object; - String language = literal.getLanguageTag().orElse(null); - String datatype = literal.getDatatype().getIRIString(); - rdfDataSet.addQuad(s,p,literal.getLexicalForm(), datatype, language, g); - } - } - - String asJsonLdString(BlankNodeOrIRI blankNodeOrIRI) { - if (blankNodeOrIRI == null) { - return null; - } - if (blankNodeOrIRI instanceof IRI) { - return ((IRI)blankNodeOrIRI).getIRIString(); - } else if (blankNodeOrIRI instanceof BlankNode) { - BlankNode blankNode = (BlankNode) blankNodeOrIRI; - String ref = blankNode.uniqueReference(); - if (ref.startsWith(bnodePrefix)) { - // One of ours (but possibly not a JsonLdBlankNode) - - // we can use the suffix directly - return ref.replace(bnodePrefix, "_:"); - } else { - // Map to unique bnode identifier, e.g. _:0dbd92ee-ab1a-45e7-bba2-7ade54f87ec5 - UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8)); - return "_:"+ uuid; - } - } else { - throw new IllegalArgumentException("Expected a BlankNode or IRI, not: " + blankNodeOrIRI); - } - } - /** * Convert JsonLd Quad to a Commons RDF {@link Triple} or {@link org.apache.commons.rdf.api.Quad} * @@ -188,13 +156,13 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm return filteredGraphs(graphName).flatMap(List::stream).anyMatch(quadFilter(s,p,o)); } - Stream<List<Quad>> filteredGraphs(Optional<BlankNodeOrIRI> graphName) { + Stream<List<RDFDataset.Quad>> filteredGraphs(Optional<BlankNodeOrIRI> graphName) { return rdfDataSet.graphNames().parallelStream() // if graphName == null (wildcard), select all graphs, // otherwise check its jsonld string // (including @default for default graph) .filter(g -> graphName == null || - g.equals(graphName.map(this::asJsonLdString).orElse("@default"))) + g.equals(graphName.map(factory::asJsonLdString).orElse("@default"))) // remove the quads which match our filter (which could have nulls as wildcards) .map(rdfDataSet::getQuads); } @@ -202,7 +170,7 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm String graphNameAsJsonLdString(T tripleOrQuad) { if (tripleOrQuad instanceof org.apache.commons.rdf.api.Quad) { org.apache.commons.rdf.api.Quad quad = (org.apache.commons.rdf.api.Quad)tripleOrQuad; - return quad.getGraphName().map(this::asJsonLdString).orElse("@default"); + return quad.getGraphName().map(factory::asJsonLdString).orElse("@default"); } return "@default"; }
