Hide implementations - expose JsonLd* interfaces
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/80ad999d Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/80ad999d Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/80ad999d Branch: refs/heads/rdf4j Commit: 80ad999d72217d4aeb6375bbe7a78e2427f41df5 Parents: 44031f3 Author: Stian Soiland-Reyes <[email protected]> Authored: Thu Sep 8 16:27:45 2016 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Thu Sep 8 16:31:12 2016 +0100 ---------------------------------------------------------------------- .../commons/rdf/jsonldjava/JsonLdBlankNode.java | 64 +++++----- .../commons/rdf/jsonldjava/JsonLdIRI.java | 68 +++++----- .../commons/rdf/jsonldjava/JsonLdLiteral.java | 128 ++++++++++--------- .../commons/rdf/jsonldjava/JsonLdQuad.java | 61 +++++---- .../commons/rdf/jsonldjava/JsonLdQuadLike.java | 73 ++++++----- .../rdf/jsonldjava/JsonLdRDFTermFactory.java | 42 +++--- .../commons/rdf/jsonldjava/JsonLdTerm.java | 26 +++- .../commons/rdf/jsonldjava/JsonLdTriple.java | 49 ++++--- 8 files changed, 281 insertions(+), 230 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java index f93d3b4..e54c894 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java @@ -21,38 +21,42 @@ import org.apache.commons.rdf.api.BlankNode; import com.github.jsonldjava.core.RDFDataset.Node; -final class JsonLdBlankNode extends JsonLdTerm implements BlankNode { - private String blankNodePrefix; - - JsonLdBlankNode(Node node, String blankNodePrefix) { - super(node); - this.blankNodePrefix = blankNodePrefix; - if (! node.isBlankNode()) { - throw new IllegalArgumentException("Node is not a BlankNode:" + node); +public interface JsonLdBlankNode extends JsonLdTerm, BlankNode { + + final class JsonLdBlankNodeImpl extends JsonLdTermImpl implements JsonLdBlankNode { + private String blankNodePrefix; + + JsonLdBlankNodeImpl(Node node, String blankNodePrefix) { + super(node); + this.blankNodePrefix = blankNodePrefix; + if (! node.isBlankNode()) { + throw new IllegalArgumentException("Node is not a BlankNode:" + node); + } } - } - - @Override - public String ntriplesString() { - return node.getValue(); - } - - @Override - public String uniqueReference() { - return blankNodePrefix + node.getValue(); - } - - @Override - public boolean equals(Object obj) { - if (! ( obj instanceof BlankNode)) { - return false; + + @Override + public String ntriplesString() { + return node.getValue(); + } + + @Override + public String uniqueReference() { + return blankNodePrefix + node.getValue(); + } + + @Override + public boolean equals(Object obj) { + if (! ( obj instanceof BlankNode)) { + return false; + } + BlankNode other = (BlankNode) obj; + return uniqueReference().equals(other.uniqueReference()); + } + + @Override + public int hashCode() { + return uniqueReference().hashCode(); } - BlankNode other = (BlankNode) obj; - return uniqueReference().equals(other.uniqueReference()); } - @Override - public int hashCode() { - return uniqueReference().hashCode(); - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdIRI.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdIRI.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdIRI.java index e21f55c..aac13e6 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdIRI.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdIRI.java @@ -22,40 +22,44 @@ import org.apache.commons.rdf.api.IRI; import com.github.jsonldjava.core.RDFDataset; import com.github.jsonldjava.core.RDFDataset.Node; -final class JsonLdIRI extends JsonLdTerm implements IRI { +public interface JsonLdIRI extends JsonLdTerm, IRI { - JsonLdIRI(Node node) { - super(node); - if (! node.isIRI()) { - throw new IllegalArgumentException("Node is not an IRI:" + node); + final class JsonLdIRIImpl extends JsonLdTermImpl implements JsonLdIRI { + + JsonLdIRIImpl(Node node) { + super(node); + if (! node.isIRI()) { + throw new IllegalArgumentException("Node is not an IRI:" + node); + } + } + + JsonLdIRIImpl(String iri) { + super(new RDFDataset.IRI(iri)); + } + + @Override + public String ntriplesString() { + return "<" + node.getValue() + ">"; + } + + @Override + public String getIRIString() { + return node.getValue(); + } + + @Override + public int hashCode() { + return node.getValue().hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (! (obj instanceof IRI)) { + return false; + } + IRI other = (IRI) obj; + return node.getValue().equals(other.getIRIString()); } } - public JsonLdIRI(String iri) { - super(new RDFDataset.IRI(iri)); - } - - @Override - public String ntriplesString() { - return "<" + node.getValue() + ">"; - } - - @Override - public String getIRIString() { - return node.getValue(); - } - - @Override - public int hashCode() { - return node.getValue().hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (! (obj instanceof IRI)) { - return false; - } - IRI other = (IRI) obj; - return node.getValue().equals(other.getIRIString()); - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java index e492486..025128e 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java @@ -26,72 +26,74 @@ import org.apache.commons.rdf.simple.Types; import com.github.jsonldjava.core.RDFDataset.Node; -public class JsonLdLiteral extends JsonLdTerm implements Literal { - - JsonLdLiteral(Node node) { - super(node); - if (! node.isLiteral()) { - throw new IllegalArgumentException("Node is not a Literal:" + node); +public interface JsonLdLiteral extends JsonLdTerm, Literal { + + class JsonLdLiteralImpl extends JsonLdTermImpl implements JsonLdLiteral { + + JsonLdLiteralImpl(Node node) { + super(node); + if (! node.isLiteral()) { + throw new IllegalArgumentException("Node is not a Literal:" + node); + } } - } - - @Override - public String ntriplesString() { - StringBuilder sb = new StringBuilder(); - sb.append('"'); - // Escape special characters - sb.append(getLexicalForm().replace("\\", "\\\\"). // escaped to \\ - replace("\"", "\\\""). // escaped to \" - replace("\r", "\\r"). // escaped to \r - replace("\n", "\\n")); // escaped to \n - sb.append('"'); - - if (getLanguageTag().isPresent()) { - sb.append("@"); - sb.append(getLanguageTag().get()); - } else if (!getDatatype().equals(Types.XSD_STRING)) { - sb.append("^^"); - sb.append(getDatatype().ntriplesString()); - } - return sb.toString(); - } - - @Override - public String getLexicalForm() { - return node.getValue(); - } - - @Override - public IRI getDatatype() { - return new JsonLdIRI(node.getDatatype()); - } - - @Override - public Optional<String> getLanguageTag() { - return Optional.ofNullable(node.getLanguage()); - } - - @Override - public int hashCode() { - // Should be the same as - // Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag()); - return Objects.hash(node.getValue(), node.getDatatype(), node.getLanguage()); - } - @Override - public boolean equals(Object obj) { - if (obj instanceof JsonLdLiteral) { - JsonLdLiteral other = (JsonLdLiteral) obj; - return asNode().compareTo(other.asNode()) == 0; + @Override + public String ntriplesString() { + StringBuilder sb = new StringBuilder(); + sb.append('"'); + // Escape special characters + sb.append(getLexicalForm().replace("\\", "\\\\"). // escaped to \\ + replace("\"", "\\\""). // escaped to \" + replace("\r", "\\r"). // escaped to \r + replace("\n", "\\n")); // escaped to \n + sb.append('"'); + + if (getLanguageTag().isPresent()) { + sb.append("@"); + sb.append(getLanguageTag().get()); + } else if (!getDatatype().equals(Types.XSD_STRING)) { + sb.append("^^"); + sb.append(getDatatype().ntriplesString()); + } + return sb.toString(); + } + + @Override + public String getLexicalForm() { + return node.getValue(); } - if (obj instanceof Literal) { - Literal other = (Literal) obj; - return getLexicalForm().equals(other.getLexicalForm()) && - getDatatype().equals(other.getDatatype()) && - getLanguageTag().equals(other.getLanguageTag()); + + @Override + public IRI getDatatype() { + return new JsonLdIRI.JsonLdIRIImpl(node.getDatatype()); + } + + @Override + public Optional<String> getLanguageTag() { + return Optional.ofNullable(node.getLanguage()); + } + + @Override + public int hashCode() { + // Should be the same as + // Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag()); + return Objects.hash(node.getValue(), node.getDatatype(), node.getLanguage()); } - return false; + @Override + public boolean equals(Object obj) { + if (obj instanceof JsonLdLiteral) { + JsonLdLiteral other = (JsonLdLiteral) obj; + return asNode().compareTo(other.asNode()) == 0; + } + if (obj instanceof Literal) { + Literal other = (Literal) obj; + return getLexicalForm().equals(other.getLexicalForm()) && + getDatatype().equals(other.getDatatype()) && + getLanguageTag().equals(other.getLanguageTag()); + } + return false; + + } } - -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuad.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuad.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuad.java index ce2cb09..524f43c 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuad.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuad.java @@ -21,34 +21,45 @@ import java.util.Objects; import org.apache.commons.rdf.api.BlankNodeOrIRI; import org.apache.commons.rdf.api.IRI; -import org.apache.commons.rdf.api.Quad; import org.apache.commons.rdf.api.RDFTerm; +// Note: To avoid confusion - don't import either Quad +import org.apache.commons.rdf.jsonldjava.JsonLdQuadLike.JsonLdQuadLikeImpl; -final class JsonLdQuad extends JsonLdQuadLike<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI> - implements org.apache.commons.rdf.api.Quad { - - JsonLdQuad(com.github.jsonldjava.core.RDFDataset.Quad quad, String blankNodePrefix) { - super(quad, blankNodePrefix); - } +public interface JsonLdQuad extends org.apache.commons.rdf.api.Quad { - @Override - public boolean equals(Object obj) { - if (obj == this) { - return true; + /** + * Return the underlying JsonLD {@link com.github.jsonldjava.core.RDFDataset.Quad} + * + * @return The JsonLD {@link com.github.jsonldjava.core.RDFDataset.Quad} + */ + public com.github.jsonldjava.core.RDFDataset.Quad asJsonLdQuad(); + + final class JsonLdQuadImpl extends JsonLdQuadLikeImpl<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI> + implements JsonLdQuad { + + JsonLdQuadImpl(com.github.jsonldjava.core.RDFDataset.Quad quad, String blankNodePrefix) { + super(quad, blankNodePrefix); } - if (! (obj instanceof Quad)) { - return false; + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (! (obj instanceof org.apache.commons.rdf.api.Quad)) { + return false; + } + org.apache.commons.rdf.api.Quad other = (org.apache.commons.rdf.api.Quad) obj; + return getGraphName().equals(other.getGraphName()) && + getSubject().equals(other.getSubject()) && + getPredicate().equals(other.getPredicate()) && + getObject().equals(other.getObject()); } - Quad other = (Quad) obj; - return getGraphName().equals(other.getGraphName()) && - getSubject().equals(other.getSubject()) && - getPredicate().equals(other.getPredicate()) && - getObject().equals(other.getObject()); - } - - @Override - public int hashCode() { - return Objects.hash(getGraphName(), getSubject(), getPredicate(), getObject()); - } - + + @Override + public int hashCode() { + return Objects.hash(getGraphName(), getSubject(), getPredicate(), getObject()); + } + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java index 6290812..753e332 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java @@ -24,41 +24,50 @@ import org.apache.commons.rdf.api.RDFTerm; import com.github.jsonldjava.core.RDFDataset.Quad; -class JsonLdQuadLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements QuadLike<S,P,O,G> { +public interface JsonLdQuadLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> extends QuadLike<S,P,O,G> { - private final Quad quad; - private String blankNodePrefix; - - private static JsonLdRDFTermFactory rdfTermFactory = new JsonLdRDFTermFactory(); + public Quad asJsonLdQuad(); - JsonLdQuadLike(Quad jsonldQuad, String blankNodePrefix) { - this.quad = jsonldQuad; - this.blankNodePrefix = blankNodePrefix; - } - - @SuppressWarnings("unchecked") - @Override - public Optional<G> getGraphName() { - G g = (G) rdfTermFactory.asTerm(quad.getGraph(), blankNodePrefix); - return Optional.ofNullable(g); - } + class JsonLdQuadLikeImpl<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JsonLdQuadLike<S,P,O,G> { + + private static JsonLdRDFTermFactory rdfTermFactory = new JsonLdRDFTermFactory(); + + private final Quad quad; + private String blankNodePrefix; + + JsonLdQuadLikeImpl(Quad jsonldQuad, String blankNodePrefix) { + this.quad = jsonldQuad; + this.blankNodePrefix = blankNodePrefix; + } - @SuppressWarnings("unchecked") - @Override - public S getSubject() { - return (S) rdfTermFactory.asTerm(quad.getSubject(), blankNodePrefix); - } - - @SuppressWarnings("unchecked") - @Override - public P getPredicate() { - return (P) rdfTermFactory.asTerm(quad.getPredicate(), blankNodePrefix); - } - - @SuppressWarnings("unchecked") - @Override - public O getObject() { - return (O) rdfTermFactory.asTerm(quad.getObject(), blankNodePrefix); + @SuppressWarnings("unchecked") + @Override + public Optional<G> getGraphName() { + G g = (G) rdfTermFactory.asTerm(quad.getGraph(), blankNodePrefix); + return Optional.ofNullable(g); + } + + @SuppressWarnings("unchecked") + @Override + public S getSubject() { + return (S) rdfTermFactory.asTerm(quad.getSubject(), blankNodePrefix); + } + + @SuppressWarnings("unchecked") + @Override + public P getPredicate() { + return (P) rdfTermFactory.asTerm(quad.getPredicate(), blankNodePrefix); + } + + @SuppressWarnings("unchecked") + @Override + public O getObject() { + return (O) rdfTermFactory.asTerm(quad.getObject(), blankNodePrefix); + } + + public Quad asJsonLdQuad() { + return quad; + } } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java index f57eb86..5ac360a 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java @@ -24,11 +24,9 @@ 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.Literal; -import org.apache.commons.rdf.api.Quad; import org.apache.commons.rdf.api.QuadLike; 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.simple.Types; @@ -54,44 +52,44 @@ final class JsonLdRDFTermFactory implements RDFTermFactory { } @Override - public IRI createIRI(String iri) { - return new JsonLdIRI(iri); + public JsonLdIRI createIRI(String iri) { + return new JsonLdIRI.JsonLdIRIImpl(iri); } @Override - public BlankNode createBlankNode() { + public JsonLdBlankNode createBlankNode() { String id = "_:" + UUID.randomUUID().toString(); - return new JsonLdBlankNode(new RDFDataset.BlankNode(id), bnodePrefix); + return new JsonLdBlankNode.JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix); } @Override - public BlankNode createBlankNode(String name) { + public JsonLdBlankNode createBlankNode(String name) { String id = "_:" + name; // TODO: Check if name is valid JSON-LD BlankNode identifier - return new JsonLdBlankNode(new RDFDataset.BlankNode(id), bnodePrefix); + return new JsonLdBlankNode.JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix); } @Override - public Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - return new JsonLdTriple(asJsonLdQuad(subject, predicate, object), bnodePrefix); + public JsonLdTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return new JsonLdTriple.JsonLdTripleImpl(asJsonLdQuad(subject, predicate, object), bnodePrefix); } @Override - public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) + public JsonLdQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) throws IllegalArgumentException, UnsupportedOperationException { - return new JsonLdQuad(asJsonLdQuad(graphName, subject, predicate, object), bnodePrefix); + return new JsonLdQuad.JsonLdQuadImpl(asJsonLdQuad(graphName, subject, predicate, object), bnodePrefix); } @Override - public Literal createLiteral(String literal) { - return new JsonLdLiteral(new RDFDataset.Literal(literal, null, null)); + public JsonLdLiteral createLiteral(String literal) { + return new JsonLdLiteral.JsonLdLiteralImpl(new RDFDataset.Literal(literal, null, null)); } @Override - public Literal createLiteral(String literal, IRI dataType) { - return new JsonLdLiteral(new RDFDataset.Literal(literal, dataType.getIRIString(), null)); } + public JsonLdLiteral createLiteral(String literal, IRI dataType) { + return new JsonLdLiteral.JsonLdLiteralImpl(new RDFDataset.Literal(literal, dataType.getIRIString(), null)); } @Override - public Literal createLiteral(String literal, String language) { - return new JsonLdLiteral(new RDFDataset.Literal(literal, Types.RDF_LANGSTRING.getIRIString(), language)); + public JsonLdLiteral createLiteral(String literal, String language) { + return new JsonLdLiteral.JsonLdLiteralImpl(new RDFDataset.Literal(literal, Types.RDF_LANGSTRING.getIRIString(), language)); } @@ -131,7 +129,7 @@ final class JsonLdRDFTermFactory implements RDFTermFactory { return new RDFDataset.Quad(asJsonLdNode(subject), asJsonLdNode(predicate), asJsonLdNode(object), graph); } - @SuppressWarnings("rawtypes") + @SuppressWarnings({ "rawtypes", "unchecked" }) public RDFDataset.Quad asJsonLdQuad(TripleLike tripleOrQuad) { RDFTerm g = null; if (tripleOrQuad instanceof QuadLike) { @@ -141,14 +139,14 @@ final class JsonLdRDFTermFactory implements RDFTermFactory { return asJsonLdQuad(g, tripleOrQuad.getSubject(), tripleOrQuad.getPredicate(), tripleOrQuad.getObject()); } - RDFTerm asTerm(final Node node, String blankNodePrefix) { + JsonLdTerm asTerm(final Node node, String blankNodePrefix) { if (node == null) { return null; // e.g. default graph } if (node.isIRI()) { - return new JsonLdIRI(node); + return new JsonLdIRI.JsonLdIRIImpl(node); } else if (node.isBlankNode()) { - return new JsonLdBlankNode(node, blankNodePrefix); + return new JsonLdBlankNode.JsonLdBlankNodeImpl(node, blankNodePrefix); } else if (node.isLiteral()) { // TODO: Our own JsonLdLiteral if (node.getLanguage() != null) { http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java index 39ef1a6..80a7b56 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java @@ -17,15 +17,27 @@ */ package org.apache.commons.rdf.jsonldjava; +import org.apache.commons.rdf.api.RDFTerm; + import com.github.jsonldjava.core.RDFDataset.Node; -public abstract class JsonLdTerm { - final Node node; - JsonLdTerm(Node node) { - this.node = node; - } - public Node asNode() { - return node; +public interface JsonLdTerm extends RDFTerm { + + /** + * Return the underlying JsonLd {@link Node}. + * + * @return JsonLd {@link Node} + */ + Node asNode(); + + abstract class JsonLdTermImpl implements JsonLdTerm { + final Node node; + JsonLdTermImpl(Node node) { + this.node = node; + } + public Node asNode() { + return node; + } } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/80ad999d/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTriple.java ---------------------------------------------------------------------- diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTriple.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTriple.java index a14dbb4..18e271c 100644 --- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTriple.java +++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTriple.java @@ -23,29 +23,40 @@ import org.apache.commons.rdf.api.BlankNodeOrIRI; import org.apache.commons.rdf.api.IRI; import org.apache.commons.rdf.api.RDFTerm; import org.apache.commons.rdf.api.Triple; +import org.apache.commons.rdf.jsonldjava.JsonLdQuadLike.JsonLdQuadLikeImpl; import com.github.jsonldjava.core.RDFDataset.Quad; -final class JsonLdTriple extends JsonLdQuadLike<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm> - implements Triple { - - JsonLdTriple(Quad quad, String blankNodePrefix) { - super(quad, blankNodePrefix); - } +public interface JsonLdTriple extends Triple { - @Override - public boolean equals(Object obj) { - if (! (obj instanceof Triple)) { - return false; - } - Triple other = (Triple) obj; - return getSubject().equals(other.getSubject()) && - getPredicate().equals(other.getPredicate()) && - getObject().equals(other.getObject()); - } + /** + * Return the underlying JsonLD {@link com.github.jsonldjava.core.RDFDataset.Quad} + * + * @return The JsonLD {@link com.github.jsonldjava.core.RDFDataset.Quad} + */ + public com.github.jsonldjava.core.RDFDataset.Quad asJsonLdQuad(); - @Override - public int hashCode() { - return Objects.hash(getSubject(), getPredicate(), getObject()); + final class JsonLdTripleImpl extends JsonLdQuadLikeImpl<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm> + implements JsonLdTriple { + + JsonLdTripleImpl(Quad quad, String blankNodePrefix) { + super(quad, blankNodePrefix); + } + + @Override + public boolean equals(Object obj) { + if (! (obj instanceof Triple)) { + return false; + } + Triple other = (Triple) obj; + return getSubject().equals(other.getSubject()) && + getPredicate().equals(other.getPredicate()) && + getObject().equals(other.getObject()); + } + + @Override + public int hashCode() { + return Objects.hash(getSubject(), getPredicate(), getObject()); + } } } \ No newline at end of file
