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/10/07 14:22:14 UTC

[01/50] incubator-commonsrdf git commit: code tidy

Repository: incubator-commonsrdf
Updated Branches:
  refs/heads/master 0beee9d85 -> 4528e695f


code tidy


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

Branch: refs/heads/master
Commit: 8a7b3ada5d43d997b55123dc55ee0840dbadf016
Parents: 7136d55
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 11:32:34 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 11:32:34 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/RDFTermFactoryJena.java    | 278 +++++++++++--------
 .../commons/rdf/jena/impl/JenaFactory.java      |   8 +-
 2 files changed, 168 insertions(+), 118 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/8a7b3ada/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
index f1ac450..1515a78 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
@@ -84,16 +84,6 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		return JenaFactory.createIRI(iri);
 	}
 
-	// Some simple validations - full IRI parsing is not cheap.
-	private static void validateIRI(String iri) {
-		if (iri.contains(" "))
-			throw new IllegalArgumentException();
-		if (iri.contains("<"))
-			throw new IllegalArgumentException();
-		if (iri.contains(">"))
-			throw new IllegalArgumentException();
-	}
-
 	@Override
 	public Literal createLiteral(String lexicalForm) {
 		return JenaFactory.createLiteral(lexicalForm);
@@ -110,97 +100,58 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		return JenaFactory.createLiteralLang(lexicalForm, languageTag);
 	}
 
-	private static void validateLang(String languageTag) {
-		if (languageTag.contains(" "))
-			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
-	}
-
 	@Override
 	public Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return JenaFactory.createTriple(subject, predicate, object);
 	}
 
 	/**
-	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
-	 * originally, return that original object, else create a copy using Jena
-	 * objects.
-	 */
-	public static Node toJena(RDFTerm term) {
-		if (term == null) {
-			return null;
-		}
-		if (term instanceof JenaNode)
-			// TODO: What if it's a BlankNodeImpl with
-			// a different salt? Do we need to rewrite the
-			// jena blanknode identifier?
-			return ((JenaNode) term).asJenaNode();
-
-		if (term instanceof IRI)
-			return NodeFactory.createURI(((IRI) term).getIRIString());
-
-		if (term instanceof Literal) {
-			Literal lit = (Literal) term;
-			RDFDatatype dt = NodeFactory.getType(lit.getDatatype().getIRIString());
-			String lang = lit.getLanguageTag().orElse("");
-			return NodeFactory.createLiteral(lit.getLexicalForm(), lang, dt);
-		}
-
-		if (term instanceof BlankNode) {
-			String id = ((BlankNode) term).uniqueReference();
-			return NodeFactory.createBlankNode(id);
-		}
-		conversionError("Not a concrete RDF Term: " + term);
-		return null;
-	}
-
-	/**
-	 * Convert a CommonsRDF Triple to a Jena Triple. If the Triple was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
-	 */
-	public static org.apache.jena.graph.Triple toJena(Triple triple) {
-		if (triple instanceof JenaTriple)
-			return ((JenaTriple) triple).asJenaTriple();
-		return new org.apache.jena.graph.Triple(toJena(triple.getSubject()), toJena(triple.getPredicate()),
-				toJena(triple.getObject()));
-	}
-
-	/**
-	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
-	 */
-	public static org.apache.jena.graph.Graph toJena(Graph graph) {
-		if (graph instanceof JenaGraph)
-			return ((JenaGraph) graph).asJenaGraph();
-		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
-		graph.stream().forEach(t -> g.add(toJena(t)));
-		return g;
-	}
-
-	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
+	 * <p>
+	 * If {@link Node#isLiteral()}, then the returned value is a 
+	 * {@link Literal}. If {@link Node#isURI(), the returned value is a 
+	 * IRI. If Node#isBlank(), the returned value is a {@link BlankNode}, 
+	 * which will use a {@link UUID} salt from this {@link RDFTermFactoryJena} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param salt
+	 * @param node The Jena Node to adapt. It's {@link Node#isConcrete()} must be <code>true</code>.
+	 * @throws ConversionException if the node is not concrete.
 	 */
-	public static RDFTerm fromJena(Node node, UUID salt) {
+	public RDFTerm fromJena(Node node) throws ConversionException {
 		return JenaFactory.fromJena(node, salt);
 	}
 
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
+	 * <p>
+	 * If {@link Node#isLiteral()}, then the returned value is a 
+	 * {@link Literal}. If {@link Node#isURI(), the returned value is a 
+	 * IRI. If Node#isBlank(), the returned value is a {@link BlankNode}, 
+	 * which will use the provided {@link UUID} salt 
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param salt
+	 * @param node The Jena Node to adapt. It's {@link Node#isConcrete()} must be <code>true</code>.
+	 * @param salt UUID salt for the purpose of {@link BlankNode#uniqueReference()}
+	 * @throws ConversionException if the node is not concrete.
 	 */
-	public RDFTerm fromJena(Node node) {
+	public static RDFTerm fromJena(Node node, UUID salt) {
 		return JenaFactory.fromJena(node, salt);
 	}
-
+	
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * <p>
+	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link RDFTermFactoryJena} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
 	 * @param triple
 	 *            Jena triple
+	 * @return Adapted triple          
 	 */
 	public Triple fromJena(org.apache.jena.graph.Triple triple) {
 		return JenaFactory.fromJena(triple, salt);
@@ -208,23 +159,22 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * <p>
+	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided a {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
 	 * @param triple
 	 *            Jena triple
 	 * @param salt
 	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted triple          
 	 */
 	public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
 		return JenaFactory.fromJena(triple, salt);
 	}
-
-	public Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		return JenaFactory.fromJena(quad, salt);
-	}
-
-	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return JenaFactory.fromJena(quad, salt);
-	}
+	
 
 	/**
 	 * Adapt an existring Jena Graph to CommonsRDF {@link Graph}. This does not
@@ -235,6 +185,40 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		// NOTE: This generates a new UUID salt per graph
 		return JenaFactory.fromJena(graph);
 	}
+	
+	/**
+	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * <p>
+	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link RDFTermFactoryJena} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @return Adapted quad
+	 */	
+	public Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
+		return JenaFactory.fromJena(quad, salt);
+	}
+	
+	/**
+	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * <p>
+	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link RDFTermFactoryJena} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @return Adapted quad
+	 */		
+	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		return JenaFactory.fromJena(quad, salt);
+	}
 
 	/**
 	 * Convert from Jena {@link Node} to any RDFCommons implementation
@@ -266,6 +250,24 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	}
 
 	/**
+	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
+	 * if the factory is a RDFTermFactoryJena. Use
+	 * {@link #fromJena(org.apache.jena.graph.Graph)} for a wrapper.
+	 */
+	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
+		if (factory instanceof RDFTermFactoryJena) {
+			// No need to convert, just wrap
+			return fromJena(graph);
+		}
+
+		Graph g = factory.createGraph();
+		graph.find(Node.ANY, Node.ANY, Node.ANY).forEachRemaining(t -> {
+			g.add(fromJena(factory, t));
+		});
+		return g;
+	}
+
+	/**
 	 * Convert from Jena {@link org.apache.jena.graph.Triple} to any RDFCommons
 	 * implementation
 	 */
@@ -280,22 +282,24 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		return factory.createTriple(subject, predicate, object);
 	}
 
-	/**
-	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
-	 * if the factory is a RDFTermFactoryJena. Use
-	 * {@link #fromJena(org.apache.jena.graph.Graph)} for a wrapper.
-	 */
-	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
+	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
 		if (factory instanceof RDFTermFactoryJena) {
 			// No need to convert, just wrap
-			return fromJena(graph);
+			return ((RDFTermFactoryJena) factory).fromJena(quad);
 		}
+		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
+		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));
+		IRI predicate = (IRI) (fromJena(factory, quad.getPredicate()));
+		RDFTerm object = fromJena(factory, quad.getObject());
+		return factory.createQuad(graphName, subject, predicate, object);
+	}
 
-		Graph g = factory.createGraph();
-		graph.find(Node.ANY, Node.ANY, Node.ANY).forEachRemaining(t -> {
-			g.add(fromJena(factory, t));
-		});
-		return g;
+	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
+		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
+	}
+
+	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
+		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
 	}
 
 	/**
@@ -311,28 +315,76 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		};
 	}
 
-	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return ((RDFTermFactoryJena) factory).fromJena(quad);
+	/**
+	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
+	 * originally, return that original object else create a copy using Jena
+	 * objects.
+	 */
+	public static org.apache.jena.graph.Graph toJena(Graph graph) {
+		if (graph instanceof JenaGraph)
+			return ((JenaGraph) graph).asJenaGraph();
+		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
+		graph.stream().forEach(t -> g.add(toJena(t)));
+		return g;
+	}
+
+	/**
+	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
+	 * originally, return that original object, else create a copy using Jena
+	 * objects.
+	 */
+	public static Node toJena(RDFTerm term) {
+		if (term == null) {
+			return null;
 		}
-		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
-		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));
-		IRI predicate = (IRI) (fromJena(factory, quad.getPredicate()));
-		RDFTerm object = fromJena(factory, quad.getObject());
-		return factory.createQuad(graphName, subject, predicate, object);
+		if (term instanceof JenaNode)
+			// TODO: What if it's a BlankNodeImpl with
+			// a different salt? Do we need to rewrite the
+			// jena blanknode identifier?
+			return ((JenaNode) term).asJenaNode();
+
+		if (term instanceof IRI)
+			return NodeFactory.createURI(((IRI) term).getIRIString());
+
+		if (term instanceof Literal) {
+			Literal lit = (Literal) term;
+			RDFDatatype dt = NodeFactory.getType(lit.getDatatype().getIRIString());
+			String lang = lit.getLanguageTag().orElse("");
+			return NodeFactory.createLiteral(lit.getLexicalForm(), lang, dt);
+		}
+
+		if (term instanceof BlankNode) {
+			String id = ((BlankNode) term).uniqueReference();
+			return NodeFactory.createBlankNode(id);
+		}
+		throw new ConversionException("Not a concrete RDF Term: " + term);
 	}
 
-	public static void conversionError(String msg) {
-		throw new ConversionException(msg);
+	/**
+	 * Convert a CommonsRDF Triple to a Jena Triple. If the Triple was from Jena
+	 * originally, return that original object else create a copy using Jena
+	 * objects.
+	 */
+	public static org.apache.jena.graph.Triple toJena(Triple triple) {
+		if (triple instanceof JenaTriple)
+			return ((JenaTriple) triple).asJenaTriple();
+		return new org.apache.jena.graph.Triple(toJena(triple.getSubject()), toJena(triple.getPredicate()),
+				toJena(triple.getObject()));
 	}
 
-	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
-		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
+	// Some simple validations - full IRI parsing is not cheap.
+	private static void validateIRI(String iri) {
+		if (iri.contains(" "))
+			throw new IllegalArgumentException();
+		if (iri.contains("<"))
+			throw new IllegalArgumentException();
+		if (iri.contains(">"))
+			throw new IllegalArgumentException();
 	}
 
-	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
-		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
+	private static void validateLang(String languageTag) {
+		if (languageTag.contains(" "))
+			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/8a7b3ada/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index c67bb7c..2b4eab9 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -18,8 +18,6 @@
 
 package org.apache.commons.rdf.jena.impl;
 
-import static org.apache.commons.rdf.jena.RDFTermFactoryJena.conversionError;
-
 import java.util.UUID;
 
 import org.apache.commons.rdf.api.BlankNode;
@@ -30,6 +28,7 @@ import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
@@ -76,7 +75,7 @@ public class JenaFactory {
 		return new TripleImpl(subject, predicate, object);
 	}
 
-	public static RDFTerm fromJena(Node node, UUID salt) {
+	public static RDFTerm fromJena(Node node, UUID salt) throws ConversionException {
 		if (node.isURI())
 			return new IRIImpl(node);
 		if (node.isLiteral()) {
@@ -90,8 +89,7 @@ public class JenaFactory {
 		}
 		if (node.isBlank())
 			return new BlankNodeImpl(node, salt);
-		conversionError("Node is not a concrete RDF Term: " + node);
-		return null;
+		throw new ConversionException("Node is not a concrete RDF Term: " + node);
 	}
 
 	public static Graph fromJena(org.apache.jena.graph.Graph graph) {


[20/50] incubator-commonsrdf git commit: Merge branch 'parser-with-quads' into jena

Posted by st...@apache.org.
Merge branch 'parser-with-quads' into jena


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

Branch: refs/heads/master
Commit: 47abae840c7ad382d327c2d0481622f44ac1f4b2
Parents: 7ef3f88 bfcead4
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Sep 13 00:11:27 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Sep 13 00:11:27 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/simple/AbstractRDFParserBuilder.java    | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
----------------------------------------------------------------------



[03/50] incubator-commonsrdf git commit: Added JenaAny/JenaVariable and fromJenaGeneralized(Triple)

Posted by st...@apache.org.
Added JenaAny/JenaVariable and fromJenaGeneralized(Triple)


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

Branch: refs/heads/master
Commit: c38aae23447e1eaafff80c3036b643e8bda65a17
Parents: 35c3261
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 12:40:18 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 12:40:18 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/jena/JenaAny.java    |  5 +
 .../apache/commons/rdf/jena/JenaVariable.java   |  6 ++
 .../commons/rdf/jena/RDFTermFactoryJena.java    | 98 +++++++++++++++++++-
 .../apache/commons/rdf/jena/impl/AnyImpl.java   | 31 +++++++
 .../commons/rdf/jena/impl/BlankNodeImpl.java    |  3 +
 .../apache/commons/rdf/jena/impl/IRIImpl.java   |  4 +
 .../commons/rdf/jena/impl/JenaFactory.java      | 40 +++++---
 .../commons/rdf/jena/impl/LiteralImpl.java      |  3 +
 .../commons/rdf/jena/impl/VariableImpl.java     | 33 +++++++
 9 files changed, 207 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
new file mode 100644
index 0000000..90599a4
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
@@ -0,0 +1,5 @@
+package org.apache.commons.rdf.jena;
+
+public interface JenaAny extends JenaRDFTerm {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
new file mode 100644
index 0000000..55791d4
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
@@ -0,0 +1,6 @@
+package org.apache.commons.rdf.jena;
+
+public interface JenaVariable extends JenaRDFTerm {
+	public String getVariableName();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
index 2ffabfb..760d911 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
@@ -32,6 +32,7 @@ import org.apache.commons.rdf.api.RDFSyntax;
 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.jena.impl.JenaFactory;
 import org.apache.jena.datatypes.RDFDatatype;
 import org.apache.jena.datatypes.xsd.XSDDatatype;
@@ -104,6 +105,34 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return JenaFactory.createTriple(subject, predicate, object);
 	}
+	
+	/**
+	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike} statement.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link RDFTermFactoryJena} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param subject The subject of the statement
+	 *            
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(
+			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return JenaFactory.createGeneralizedTriple(subject, predicate, object);
+	}
 
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
@@ -219,6 +248,65 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		return JenaFactory.fromJena(triple, salt);
 	}
 
+
+	/**
+	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt 
+	 * in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @param salt
+	 *            UUID salt for the purpose of
+	 *            {@link BlankNode#uniqueReference()}
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		return JenaFactory.fromJenaGeneralized(triple, salt);
+	}
+	
+	/**
+	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link RDFTermFactoryJena} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
+		return JenaFactory.fromJenaGeneralized(triple, salt);
+	}
+	
+	
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * <p>
@@ -270,9 +358,9 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		BlankNodeOrIRI subject;
 		IRI predicate;
 		try {
-			subject = (BlankNodeOrIRI) (fromJena(factory, triple.getSubject()));
-			predicate = (IRI) (fromJena(factory, triple.getPredicate()));
-		} (catch ClassCastException ex) {
+			subject = (BlankNodeOrIRI) fromJena(factory, triple.getSubject());
+			predicate = (IRI) fromJena(factory, triple.getPredicate());
+		} catch (ClassCastException ex) {
 			throw new ConversionException("Can't convert generalized triple: " + triple, ex);
 		}
 		RDFTerm object = fromJena(factory, triple.getObject());
@@ -400,11 +488,11 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		if (term == null) {
 			return null;
 		}
-		if (term instanceof JenaNode)
+		if (term instanceof JenaRDFTerm)
 			// TODO: What if it's a BlankNodeImpl with
 			// a different salt? Do we need to rewrite the
 			// jena blanknode identifier?
-			return ((JenaNode) term).asJenaNode();
+			return ((JenaRDFTerm) term).asJenaNode();
 
 		if (term instanceof IRI)
 			return NodeFactory.createURI(((IRI) term).getIRIString());

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
new file mode 100644
index 0000000..956851b
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
@@ -0,0 +1,31 @@
+package org.apache.commons.rdf.jena.impl;
+
+import org.apache.commons.rdf.jena.JenaAny;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.jena.graph.Node;
+
+public class AnyImpl implements JenaRDFTerm, JenaAny {
+
+	static class Singleton {
+		static AnyImpl instance = new AnyImpl();
+	}
+	
+	/**
+	 * Private constructor
+	 * 
+	 * @see {@link Singleton#instance}
+	 */
+	private AnyImpl() {
+	}
+	
+	@Override
+	public String ntriplesString() {
+		return "[]";
+	}
+
+	@Override
+	public Node asJenaNode() {
+		return Node.ANY;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
index 928da61..2acb635 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
@@ -30,6 +30,9 @@ public class BlankNodeImpl extends AbstractRDFTerm implements JenaBlankNode {
 
 	/* package */ BlankNodeImpl(Node node, UUID salt) {
 		super(node);
+		if (! node.isBlank()) {
+			throw new IllegalArgumentException("Node is not a blank node: " + node);
+		}				
 		this.salt = salt;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
index 9ad20d0..e85c80f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
@@ -27,6 +27,10 @@ public class IRIImpl extends AbstractRDFTerm implements JenaIRI {
 
 	/* package */ IRIImpl(Node node) {
 		super(node);
+		if (! node.isURI()) {
+			throw new IllegalArgumentException("Node is not a blank node: " + node);
+		}				
+		
 	}
 
 	/* package */ IRIImpl(String iriStr) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 797557c..4a6d44b 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -26,6 +26,7 @@ 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.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaAny;
 import org.apache.commons.rdf.jena.JenaBlankNode;
 import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaIRI;
@@ -33,6 +34,7 @@ import org.apache.commons.rdf.jena.JenaLiteral;
 import org.apache.commons.rdf.jena.JenaRDFTerm;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.commons.rdf.jena.JenaTripleLike;
+import org.apache.commons.rdf.jena.JenaVariable;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
@@ -58,7 +60,6 @@ public class JenaFactory {
 		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
 	}
 
-	// basic components to commonsrdf backed by Jena.
 	public static JenaIRI createIRI(String iriStr) {
 		return new IRIImpl(iriStr);
 	}
@@ -78,28 +79,45 @@ public class JenaFactory {
 	public static JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return new TripleImpl(subject, predicate, object);
 	}
+	
+	public static JenaVariable createVariable(String name) {
+		return new VariableImpl(NodeFactory.createVariable(name));
+	}
+	
+	public static JenaAny createVariable() {
+		return AnyImpl.Singleton.instance;
+	}
 
 	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
 		return new GeneralizedTripleImpl(subject, predicate, object);
 	}
 	
 	public static JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
-		if (node.isURI())
+		if (! node.isConcrete()) {
+			throw new ConversionException("Node is not a concrete RDF Term: " + node); 
+		}
+		return fromJenaGeneralized(node, salt);		
+	}
+
+	public static JenaRDFTerm fromJenaGeneralized(Node node, UUID salt) {
+		if (node.isURI()) {
 			return new IRIImpl(node);
+		}
 		if (node.isLiteral()) {
 			return new LiteralImpl(node);
-//			String lang = node.getLiteralLanguage();
-//			if (lang != null && lang.isEmpty())
-//				return createLiteralLang(node.getLiteralLexicalForm(), lang);
-//			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
-//				return createLiteral(node.getLiteralLexicalForm());
-//			return createLiteralDT(node.getLiteralLexicalForm(), node.getLiteralDatatype().getURI());
 		}
-		if (node.isBlank())
+		if (node.isBlank()) {
 			return new BlankNodeImpl(node, salt);
-		throw new ConversionException("Node is not a concrete RDF Term: " + node);
+		}
+		if (node.equals(Node.ANY)) {
+			return AnyImpl.Singleton.instance;
+		}
+		if (node.isVariable()) {
+			return new VariableImpl(node);
+		}
+		throw new IllegalArgumentException("Unrecognized node type: " + node);
 	}
-
+	
 	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
 		return new GraphImpl(graph, UUID.randomUUID());
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
index 0530d08..2750198 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
@@ -30,6 +30,9 @@ public class LiteralImpl extends AbstractRDFTerm implements JenaLiteral {
 
 	/* package */ LiteralImpl(Node node) {
 		super(node);
+		if (! node.isLiteral()) {
+			throw new IllegalArgumentException("Node is not a literal: " + node);
+		}		
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c38aae23/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
new file mode 100644
index 0000000..13f62e9
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
@@ -0,0 +1,33 @@
+package org.apache.commons.rdf.jena.impl;
+
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.commons.rdf.jena.JenaVariable;
+import org.apache.jena.graph.Node;
+
+public class VariableImpl implements JenaRDFTerm, JenaVariable {
+
+	private Node node;
+
+	VariableImpl(Node node) {	
+		if (! node.isVariable()) {
+			throw new IllegalArgumentException("Node is not a variable: " + node);
+		}
+		this.node = node;
+	}
+
+	@Override
+	public String ntriplesString() {
+		return "?" + getVariableName();
+	}
+
+	@Override
+	public String getVariableName() {
+		return node.getName();
+	}
+
+	@Override
+	public Node asJenaNode() {
+		return node;
+	}
+
+}


[36/50] incubator-commonsrdf git commit: Updated README

Posted by st...@apache.org.
Updated README


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

Branch: refs/heads/master
Commit: 81818507633b033ce411ccdad76225bda750bbec
Parents: 19d29a1
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 16:11:32 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 16:11:32 2016 +0100

----------------------------------------------------------------------
 README.md | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/81818507/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index e0f9ea8..bf745a1 100644
--- a/README.md
+++ b/README.md
@@ -5,22 +5,23 @@
 [![Coverage Status](https://coveralls.io/repos/apache/incubator-commonsrdf/badge.svg?branch=master&service=github)](https://coveralls.io/github/apache/incubator-commonsrdf?branch=master)
 
 [Commons RDF](http://commonsrdf.incubator.apache.org/) aims to provide a common
-library for [RDF 1.1](http://www.w3.org/TR/rdf11-concepts/) that could be
-implemented by [Jena](http://jena.apache.org/) as well as for other libraries
-such as [OWLAPI](http://owlapi.sourceforge.net/), 
+library for [RDF 1.1](http://www.w3.org/TR/rdf11-concepts/) with implementations
+for common Java RDF frameworks like [RDF4J](http://rdf4j.org/), [Apache
+Jena](http://jena.apache.org/) as well as for other libraries such as
+[OWLAPI](http://owlapi.sourceforge.net/),
 [Clerezza](http://clerezza.apache.org/) and other JVM languages.
 
-The main motivation behind this simple library is to revise an historical incompatibility 
-issue between these toolkits. This library does not pretend to be a generic API wrapping those libraries, 
-but is a set of common Java interfaces for the RDF 1.1 concepts, e.g. `IRI`, `BlankNode`, 
-`Graph`, accompanied with unit test cases for their expected behaviour, and a `simple` 
+The main motivation behind this simple library is to revise an historical
+incompatibility issue between these toolkits. This library does not pretend to
+be a generic API wrapping those libraries, but is a set of common Java
+interfaces for the RDF 1.1 concepts, e.g. `IRI`, `BlankNode`, `Graph`,
+accompanied with unit test cases for their expected behaviour, and a `simple`
 implementation, which main purpose is to clarify the tests and interfaces.
 
-In particular, Commons RDF aims to provide a type-safe, 
-non-general API that covers RDF 1.1. In a future phase we may define interfaces 
-for Datasets and Quads.
+In particular, Commons RDF aims to provide a type-safe, non-general API that
+covers RDF 1.1. 
 
-A draft diagram of the interfaces which may be included in Commons RDF are:
+A diagram of the interfaces included in Commons RDF:
 
 <a href="src/site/resources/images/class-diagram.png"><img height="400" src="src/site/resources/images/class-diagram.png" alt="Class diagram" /></a>
 
@@ -53,8 +54,10 @@ limitations under the License.
 ## Contributing
 
 Feel free to subscribe to the 
-[dev@commonsrdf](http://mail-archives.apache.org/mod_mbox/incubator-commonsrdf-dev/) 
-mailing list to follow the ongoing development of Commons RDF, ask questions 
+[dev@commons](https://lists.apache.org/list.html?dev@commons.apache.org)
+mailing list, use the 
+[Subject tag `[RDF]`](https://lists.apache.org/list.html?dev@commons.apache.org:lte=1M:%5BRDF%5D)
+to follow the ongoing development of Commons RDF, ask questions 
 about its usage, or help shape Commons RDF by 
 [contributing](http://commonsrdf.incubator.apache.org/contributing.html)
 your ideas, code and use cases. 
@@ -116,7 +119,8 @@ To then use this build from your project, add to Maven (update `<version>` to ma
         <version>0.2.0-incubating-SNAPSHOT</version>
     </dependency>
 
-See the [downloads](http://commonsrdf.incubator.apache.org/download.html) to 
+The `<version>` above might not be up to date, 
+see the [downloads](http://commonsrdf.incubator.apache.org/download.html) to
 use the latest stable release published in Maven Central.
     
 


[45/50] incubator-commonsrdf git commit: reduce visibility of JenaFactory and impl

Posted by st...@apache.org.
reduce visibility of JenaFactory and impl


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

Branch: refs/heads/master
Commit: b3baff420a91eb24e081e423d7a21f2e9344f7cc
Parents: a072cb9
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 14:33:33 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 14:33:33 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 44 ++++++++--------
 .../rdf/jena/impl/JenaBlankNodeImpl.java        |  4 +-
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |  4 +-
 .../commons/rdf/jena/impl/JenaFactory.java      | 53 ++++++++++----------
 .../rdf/jena/impl/JenaGeneralizedQuad.java      | 24 +++++----
 .../commons/rdf/jena/impl/JenaGraphImpl.java    |  2 +-
 .../commons/rdf/jena/impl/JenaIRIImpl.java      |  6 +--
 .../commons/rdf/jena/impl/JenaLiteralImpl.java  |  8 +--
 .../commons/rdf/jena/impl/JenaQuadImpl.java     |  2 +-
 .../commons/rdf/jena/impl/JenaTripleImpl.java   |  2 +-
 .../commons/rdf/jena/TestBlankNodeJena.java     |  6 ++-
 11 files changed, 82 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 8b53c76..25db850 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -61,6 +61,8 @@ import org.apache.jena.sparql.graph.GraphFactory;
  */
 public final class JenaRDFTermFactory implements RDFTermFactory {
 
+	private static JenaFactory jenaFactory = new JenaFactory(){};
+	
 	private final UUID salt;
 
 	/**
@@ -90,55 +92,55 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 
 	@Override
 	public JenaBlankNode createBlankNode() {
-		return JenaFactory.createBlankNode(getSalt());
+		return jenaFactory.createBlankNode(getSalt());
 	}
 
 	@Override
 	public JenaBlankNode createBlankNode(String name) {
-		return JenaFactory.createBlankNode(name, getSalt());
+		return jenaFactory.createBlankNode(name, getSalt());
 	}
 	
 	@Override
 	public JenaDataset createDataset() {
-		return JenaFactory.createDataset(getSalt());
+		return jenaFactory.createDataset(getSalt());
 	}
 
 	@Override
 	public JenaGraph createGraph() {
-		return JenaFactory.createGraph(getSalt());
+		return jenaFactory.createGraph(getSalt());
 	}
 
 	@Override
 	public JenaIRI createIRI(String iri) {
 		validateIRI(iri);
-		return JenaFactory.createIRI(iri);
+		return jenaFactory.createIRI(iri);
 	}
 
 	@Override
 	public JenaLiteral createLiteral(String lexicalForm) {
-		return JenaFactory.createLiteral(lexicalForm);
+		return jenaFactory.createLiteral(lexicalForm);
 	}
 
 	@Override
 	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
-		return JenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
+		return jenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
 	}
 
 	@Override
 	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
 		validateLang(languageTag);
-		return JenaFactory.createLiteralLang(lexicalForm, languageTag);
+		return jenaFactory.createLiteralLang(lexicalForm, languageTag);
 	}
 
 	@Override
 	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return JenaFactory.createTriple(subject, predicate, object);
+		return jenaFactory.createTriple(subject, predicate, object);
 	}
 	
 	@Override
 	public JenaQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
 			throws IllegalArgumentException, UnsupportedOperationException {
-		return JenaFactory.createQuad(subject, predicate, object, graphName);
+		return jenaFactory.createQuad(subject, predicate, object, graphName);
 	}
 
 	/**
@@ -163,7 +165,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 */
 	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return JenaFactory.createGeneralizedTriple(subject, predicate, object);
+		return jenaFactory.createGeneralizedTriple(subject, predicate, object);
 	}
 
 	/**
@@ -190,7 +192,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 */
 	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> createGeneralizedQuad(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
-		return JenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
+		return jenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
 	}	
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
@@ -212,7 +214,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if the node is not concrete or represents a variable in Jena.
 	 */
 	public JenaRDFTerm fromJena(Node node) throws ConversionException {
-		return JenaFactory.fromJena(node, getSalt());
+		return jenaFactory.fromJena(node, getSalt());
 	}
 
 	/**
@@ -277,7 +279,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             is a generalized triple
 	 */
 	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return JenaFactory.fromJena(triple, getSalt());
+		return jenaFactory.fromJena(triple, getSalt());
 	}
 
 	/**
@@ -303,7 +305,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if any of the triple's nodes are not concrete
 	 */
 	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(triple, getSalt());
+		return jenaFactory.fromJenaGeneralized(triple, getSalt());
 	}
 
 	/**
@@ -333,7 +335,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if any of the quad nodes are not concrete
 	 */
 	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(quad, getSalt());
+		return jenaFactory.fromJenaGeneralized(quad, getSalt());
 	}
 	
 	/**
@@ -388,7 +390,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted quad
 	 */	
 	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		return JenaFactory.fromJena(quad, getSalt());
+		return jenaFactory.fromJena(quad, getSalt());
 	}
 
 	/**
@@ -410,7 +412,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaGraph}
 	 */
 	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
-		return JenaFactory.fromJena(graph, getSalt());
+		return jenaFactory.fromJena(graph, getSalt());
 	}
 
 	/**
@@ -429,7 +431,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaGraph}
 	 */
 	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
-		return JenaFactory.fromJena(model, getSalt());
+		return jenaFactory.fromJena(model, getSalt());
 	}	
 
 	/**
@@ -449,7 +451,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaDataset} 
 	 */
 	public JenaDataset fromJena(DatasetGraph datasetGraph) {
-		return JenaFactory.fromJena(datasetGraph, getSalt());
+		return jenaFactory.fromJena(datasetGraph, getSalt());
 	}	
 	
 	/**
@@ -469,7 +471,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaDataset} 
 	 */
 	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
-		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
+		return jenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
 	}		
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
index 0cbd764..a4cc3af 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
@@ -24,11 +24,11 @@ import org.apache.commons.rdf.api.BlankNode;
 import org.apache.commons.rdf.jena.JenaBlankNode;
 import org.apache.jena.graph.Node;
 
-public class JenaBlankNodeImpl extends AbstractJenaRDFTerm implements JenaBlankNode {
+class JenaBlankNodeImpl extends AbstractJenaRDFTerm implements JenaBlankNode {
 
 	private UUID salt;
 
-	/* package */ JenaBlankNodeImpl(Node node, UUID salt) {
+	JenaBlankNodeImpl(Node node, UUID salt) {
 		super(node);
 		if (! node.isBlank()) {
 			throw new IllegalArgumentException("Node is not a blank node: " + node);

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
index 76b018c..fec063f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -40,7 +40,7 @@ import org.apache.jena.riot.RDFDataMgr;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.GraphView;
 
-public class JenaDatasetImpl implements JenaDataset {
+class JenaDatasetImpl implements JenaDataset {
 
 	private DatasetGraph graph;
 	private UUID salt;
@@ -94,7 +94,7 @@ public class JenaDatasetImpl implements JenaDataset {
 
 	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
 		// In theory we could have done:
-		//   factory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
+		//   factory.toJena(graphName.orElse(jenaFactory::createAnyVariable))
 		// but because of generics casting rules that doesn't work :(						
 
 		if (graphName == null) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index b349df8..30b96ed 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -47,66 +47,67 @@ import org.apache.jena.sparql.graph.GraphFactory;
 /**
  * Construct Jena implementations of Commons RDF.
  * <p>
- * This class is primarily an internal helper class, users should instead use
- * {@link JenaRDFTermFactory}.
+ * This class is deliberately an abstract class, as it is an internal helper
+ * which <strong>may change</strong> in any minor version update; users should
+ * instead use {@link JenaRDFTermFactory}.
  * <p>
- * For the purpose of blank node identity, some of 
- * these methods require a {@link UUID} to use as a salt.
- * See {@link BlankNode#uniqueReference()} for details.
+ * For the purpose of blank node identity, some of these methods require a
+ * {@link UUID} to use as a salt. See {@link BlankNode#uniqueReference()} for
+ * details.
  * 
  */
-public class JenaFactory {
+public abstract class JenaFactory {
 
-	public static JenaBlankNode createBlankNode(String id, UUID salt) {
+	public JenaBlankNode createBlankNode(String id, UUID salt) {
 		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(id), salt);
 	}
 
-	public static JenaBlankNode createBlankNode(UUID salt) {
+	public JenaBlankNode createBlankNode(UUID salt) {
 		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
-	public static JenaDataset createDataset(UUID salt) {
+	public JenaDataset createDataset(UUID salt) {
 		DatasetGraph dg = DatasetGraphFactory.createGeneral();
 		// Or which createMethod() -- a bit confusing with lots of choice..
 		return new JenaDatasetImpl(dg, salt);
 	}
 
-	public static JenaGraph createGraph(UUID salt) {
+	public JenaGraph createGraph(UUID salt) {
 		return new JenaGraphImpl(GraphFactory.createDefaultGraph(), salt);
 	}
 
-	public static JenaIRI createIRI(String iriStr) {
+	public JenaIRI createIRI(String iriStr) {
 		return new JenaIRIImpl(iriStr);
 	}
 
-	public static JenaLiteral createLiteral(String lexStr) {
+	public JenaLiteral createLiteral(String lexStr) {
 		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr));
 	}
 
-	public static JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
+	public JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
 		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
 	}
 
-	public static JenaLiteral createLiteralLang(String lexStr, String langTag) {
+	public JenaLiteral createLiteralLang(String lexStr, String langTag) {
 		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
 	}
 
-	public static JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return new JenaTripleImpl(subject, predicate, object);
 	}
 
-	public static JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
+	public JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
 		return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 
-	public static JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+	public JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
 		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
 	}
 
-	public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
+	public JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
 		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 	
-	public static JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
+	public JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
 		if (! node.isConcrete()) {
 			throw new ConversionException("Node is not a concrete RDF Term: " + node); 
 		}
@@ -130,31 +131,31 @@ public class JenaFactory {
 		throw new ConversionException("Unrecognized node type: " + node);
 	}
 
-	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
+	public JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
 		return new JenaGraphImpl(graph, salt);
 	}
 
-	public static JenaGraph fromJena(Model model, UUID salt) {
+	public JenaGraph fromJena(Model model, UUID salt) {
 		return new JenaGraphImpl(model, salt);
 	}
 
-	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
+	public JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
 		return new JenaDatasetImpl(datasetGraph, salt);
 	}
 	
-	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+	public JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
 		return new JenaTripleImpl(triple, salt);
 	}
 
-	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
 		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
 	}
 
-	public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+	public JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
 	}
 	
-	public static JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return new JenaQuadImpl(quad, salt);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
index cad2355..607defd 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
@@ -40,12 +40,14 @@ import org.apache.jena.sparql.core.Quad;
  * 
  * @see JenaTripleImpl
  * @see JenaQuadImpl
- * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
- * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+ * @see jenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+ * @see jenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
  *
  */
-public class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
+class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
 
+	private static JenaFactory jenaFactory = new JenaFactory(){};
+	
 	final Optional<G> graphName;
 	final S subject;
 	final P predicate;
@@ -53,7 +55,7 @@ public class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends
 	org.apache.jena.sparql.core.Quad quad = null;
 	org.apache.jena.graph.Triple triple = null;
 	
-	JenaGeneralizedQuad(S subject, P predicate, O object, Optional<G> graphName) {		
+	JenaGeneralizedQuad(S subject, P predicate, O object, Optional<G> graphName) {
 		this.subject = Objects.requireNonNull(subject);
 		this.predicate = Objects.requireNonNull(predicate);
 		this.object = Objects.requireNonNull(object);
@@ -67,18 +69,18 @@ public class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends
 	@SuppressWarnings("unchecked")
 	JenaGeneralizedQuad(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		this.quad = Objects.requireNonNull(quad);
-		this.subject = (S) JenaFactory.fromJena(quad.getSubject(), salt);
-		this.predicate = (P) JenaFactory.fromJena(quad.getPredicate(), salt);
-		this.object = (O)JenaFactory.fromJena(quad.getObject(), salt);
-		this.graphName = Optional.of((G) JenaFactory.fromJena(quad.getGraph(), salt));		
+		this.subject = (S) jenaFactory.fromJena(quad.getSubject(), salt);
+		this.predicate = (P) jenaFactory.fromJena(quad.getPredicate(), salt);
+		this.object = (O)jenaFactory.fromJena(quad.getObject(), salt);
+		this.graphName = Optional.of((G) jenaFactory.fromJena(quad.getGraph(), salt));		
 	}
 
 	@SuppressWarnings("unchecked")
 	JenaGeneralizedQuad(org.apache.jena.graph.Triple triple, UUID salt) {
 		this.triple = Objects.requireNonNull(triple);		
-		this.subject = (S) JenaFactory.fromJena(triple.getSubject(), salt);
-		this.predicate = (P) JenaFactory.fromJena(triple.getPredicate(), salt);
-		this.object = (O)JenaFactory.fromJena(triple.getObject(), salt);
+		this.subject = (S) jenaFactory.fromJena(triple.getSubject(), salt);
+		this.predicate = (P) jenaFactory.fromJena(triple.getPredicate(), salt);
+		this.object = (O)jenaFactory.fromJena(triple.getObject(), salt);
 		this.graphName = Optional.empty();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
index 89162e0..09cc2ab 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
@@ -35,7 +35,7 @@ import org.apache.jena.rdf.model.ModelFactory;
 import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFDataMgr;
 
-public class JenaGraphImpl implements JenaGraph {
+class JenaGraphImpl implements JenaGraph {
 
 	private final org.apache.jena.graph.Graph graph;
 	private final UUID salt;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
index 2aa170f..7fbf284 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
@@ -23,9 +23,9 @@ import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 
-public class JenaIRIImpl extends AbstractJenaRDFTerm implements JenaIRI {
+class JenaIRIImpl extends AbstractJenaRDFTerm implements JenaIRI {
 
-	/* package */ JenaIRIImpl(Node node) {
+	JenaIRIImpl(Node node) {
 		super(node);
 		if (! node.isURI()) {
 			throw new IllegalArgumentException("Node is not a blank node: " + node);
@@ -33,7 +33,7 @@ public class JenaIRIImpl extends AbstractJenaRDFTerm implements JenaIRI {
 		
 	}
 
-	/* package */ JenaIRIImpl(String iriStr) {
+	JenaIRIImpl(String iriStr) {
 		super(NodeFactory.createURI(iriStr));
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
index 5bbc166..173af4c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
@@ -26,9 +26,11 @@ import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.jena.JenaLiteral;
 import org.apache.jena.graph.Node;
 
-public class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral {
+class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral {
 
-	/* package */ JenaLiteralImpl(Node node) {
+	private static JenaFactory jenaFactory = new JenaFactory(){};
+	
+	JenaLiteralImpl(Node node) {
 		super(node);
 		if (! node.isLiteral()) {
 			throw new IllegalArgumentException("Node is not a literal: " + node);
@@ -50,7 +52,7 @@ public class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral
 
 	@Override
 	public IRI getDatatype() {
-		return JenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
+		return jenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
index 0f3e3e3..9d65374 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
@@ -29,7 +29,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaQuad;
 
-public class JenaQuadImpl	extends JenaGeneralizedQuad<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
+class JenaQuadImpl	extends JenaGeneralizedQuad<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
 	implements JenaQuad {
 
 	JenaQuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
index 4e497f2..502b575 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaTriple;
 
-public class JenaTripleImpl extends JenaGeneralizedQuad<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
+class JenaTripleImpl extends JenaGeneralizedQuad<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
 		implements JenaTriple {
 
 	JenaTripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b3baff42/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
index f37922f..0ac6326 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
@@ -26,6 +26,8 @@ import org.apache.commons.rdf.jena.impl.JenaFactory;
 
 public class TestBlankNodeJena extends AbstractBlankNodeTest {
 
+	JenaFactory jenaFactory = new JenaFactory(){};
+	
 	/** 
 	 * Fixed salt for the purpose of this test.
 	 */
@@ -33,12 +35,12 @@ public class TestBlankNodeJena extends AbstractBlankNodeTest {
 
 	@Override
     protected BlankNode getBlankNode() {
-        return JenaFactory.createBlankNode(SALT) ;
+        return jenaFactory.createBlankNode(SALT) ;
     }
     
     @Override
     protected BlankNode getBlankNode(String identifier) {
-        return JenaFactory.createBlankNode(identifier, SALT) ;
+        return jenaFactory.createBlankNode(identifier, SALT) ;
     }
 }
 


[35/50] incubator-commonsrdf git commit: newer japicmp plugin

Posted by st...@apache.org.
newer japicmp plugin


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

Branch: refs/heads/master
Commit: 19d29a1e3378f7ba4558168164f0ae5a88454926
Parents: b6ec123
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 16:03:45 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 16:03:45 2016 +0100

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/19d29a1e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 512946c..913a659 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@
         <commons.scmPubCheckoutDirectory>${project.build.directory}/site-content</commons.scmPubCheckoutDirectory>
         <commons.javadoc.java.link>https://docs.oracle.com/javase/8/docs/api/</commons.javadoc.java.link>
         <!-- upgrade from 0.8.0 -->
-         <commons.japicmp.version>0.9.0</commons.japicmp.version>
+         <commons.japicmp.version>0.9.1</commons.japicmp.version>
         <ver.jena>3.1.0</ver.jena>
         <dexx.collection.version>0.6</dexx.collection.version>
         <servicemix.xerces.version>2.11.0_1</servicemix.xerces.version>


[34/50] incubator-commonsrdf git commit: Avoid Quad import

Posted by st...@apache.org.
Avoid Quad import


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

Branch: refs/heads/master
Commit: b6ec1230d7b892ed35f2cc0f13090922485a709f
Parents: 379ac0a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 16:01:30 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 16:01:30 2016 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b6ec1230/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 3fb3c3f..eb60cc0 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -24,7 +24,6 @@ import java.util.UUID;
 import org.apache.commons.rdf.api.BlankNode;
 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;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaAny;


[11/50] incubator-commonsrdf git commit: added javadoc

Posted by st...@apache.org.
added javadoc


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

Branch: refs/heads/master
Commit: c6d654bacd840f8ec3e3c5db752ad15a60add7a9
Parents: d912b6b
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Jul 18 01:39:44 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Jul 18 01:39:44 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c6d654ba/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index d8e41b1..52fde28 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -509,6 +509,26 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}	
 	
 	/**
+	 * Adapt an existing Jena {@link org.apache.jena.query.Dataset} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena dataset graph to adapt
+	 * @return Adapted dataset 
+	 */
+	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
+		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), salt);
+	}		
+	
+	/**
 	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
 	 * <p>
 	 * This does not


[25/50] incubator-commonsrdf git commit: COMMONSRDF-33 Avoid .settings

Posted by st...@apache.org.
COMMONSRDF-33 Avoid .settings


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

Branch: refs/heads/master
Commit: 059aa82d1c83fede7bfd27b54b1634e96a7ab644
Parents: c52979b
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 14:56:22 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 14:56:22 2016 +0100

----------------------------------------------------------------------
 jena/.settings/org.eclipse.core.resources.prefs | 6 ------
 jena/.settings/org.eclipse.jdt.core.prefs       | 5 -----
 jena/.settings/org.eclipse.m2e.core.prefs       | 4 ----
 3 files changed, 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/059aa82d/jena/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/jena/.settings/org.eclipse.core.resources.prefs b/jena/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf99..0000000
--- a/jena/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/<project>=UTF-8

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/059aa82d/jena/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/jena/.settings/org.eclipse.jdt.core.prefs b/jena/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 714351a..0000000
--- a/jena/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/059aa82d/jena/.settings/org.eclipse.m2e.core.prefs
----------------------------------------------------------------------
diff --git a/jena/.settings/org.eclipse.m2e.core.prefs b/jena/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/jena/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1


[08/50] incubator-commonsrdf git commit: Added JenaDataset

Posted by st...@apache.org.
Added JenaDataset


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

Branch: refs/heads/master
Commit: 3a09004ca1757490e7273d78ab00f901a3d0a613
Parents: a3cb3b1
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 16:39:25 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 16:39:25 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaDataset.java    |  30 +++
 .../commons/rdf/jena/JenaRDFTermFactory.java    |  35 +++-
 .../commons/rdf/jena/impl/DatasetImpl.java      | 187 +++++++++++++++++++
 .../commons/rdf/jena/impl/JenaFactory.java      |  16 +-
 4 files changed, 263 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
new file mode 100644
index 0000000..98fb840
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.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.jena;
+
+import org.apache.commons.rdf.api.Graph;
+import org.apache.jena.sparql.core.DatasetGraph;
+
+/** Access the Jena graph backing this object */
+public interface JenaDataset extends org.apache.commons.rdf.api.Dataset {
+	public DatasetGraph asJenaDatasetGraph();
+	
+	public Graph getUnionGraph();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 12b152e..78dc5f7 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -24,6 +24,7 @@ import java.util.function.Consumer;
 
 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.Literal;
@@ -74,6 +75,11 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public JenaBlankNode createBlankNode(String name) {
 		return JenaFactory.createBlankNode(name, salt);
 	}
+	
+	@Override
+	public Dataset createDataset() throws UnsupportedOperationException {
+		return JenaFactory.createDataset(salt);
+	}
 
 	@Override
 	public JenaGraph createGraph() {
@@ -578,19 +584,40 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Convert a CommonsRDF Triple to a Jena Triple. If the Triple was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
+	 * Convert a CommonsRDF {@link Triple} to a Jena
+	 * {@link org.apache.jena.graph.Triple}.
+	 * <p>
+	 * If the triple was from Jena originally, return that original object, else
+	 * create a copy using Jena objects.
 	 */
 	public static org.apache.jena.graph.Triple toJena(Triple triple) {
 		if (triple instanceof JenaTriple)
 			return ((JenaTriple) triple).asJenaTriple();
-		return new org.apache.jena.graph.Triple(
+		return org.apache.jena.graph.Triple.create(
 				toJena(triple.getSubject()), 
 				toJena(triple.getPredicate()),
 				toJena(triple.getObject()));
 	}
 
+
+	/**
+	 * Convert a CommonsRDF {@link Quad} to a Jena
+	 * {@link org.apache.jena.sparql.core.Quad}.
+	 * <p>
+	 * If the quad was from Jena originally, return that original object,
+	 * otherwise create a copy using Jena objects.
+	 */
+	public static org.apache.jena.sparql.core.Quad toJena(Quad quad) {
+		if (quad instanceof JenaQuad) {
+			return ((JenaQuad) quad).asJenaQuad();
+		}
+		return org.apache.jena.sparql.core.Quad.create(
+				toJena(quad.getGraphName().orElse(null)),
+				toJena(quad.getSubject()), 
+				toJena(quad.getPredicate()), 
+				toJena(quad.getObject()));
+	}
+
 	// Some simple validations - full IRI parsing is not cheap.
 	private static void validateIRI(String iri) {
 		if (iri.contains(" "))

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
new file mode 100644
index 0000000..4094efe
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
@@ -0,0 +1,187 @@
+/**
+ * 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.jena.impl;
+
+import static org.apache.jena.graph.Node.ANY;
+
+import java.io.StringWriter;
+import java.util.Optional;
+import java.util.UUID;
+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.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaDataset;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.GraphView;
+
+public class DatasetImpl implements JenaDataset {
+
+	private DatasetGraph graph;
+	private UUID salt;
+
+	/* package */ DatasetImpl(DatasetGraph graph, UUID salt) {
+		this.graph = graph;
+		this.salt = salt;
+	}
+
+	@Override
+	public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.add(				
+				org.apache.jena.sparql.core.Quad.create(
+				JenaRDFTermFactory.toJena(graphName),
+				JenaRDFTermFactory.toJena(subject),				
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
+	}
+
+	@Override
+	public void add(Quad quad) {
+		graph.add(JenaRDFTermFactory.toJena(quad));
+	}
+	
+	@Override
+	public DatasetGraph asJenaDatasetGraph() {		
+		return graph;
+	}
+
+	@Override
+	public void clear() {
+		graph.clear();
+	}
+
+	@Override
+	public void close() {
+		graph.close();
+	}
+
+
+	@Override
+	public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {		
+		return graph.contains(
+				toJenaPattern(graphName),
+				toJenaPattern(subject), 
+				toJenaPattern(predicate),
+				toJenaPattern(object));
+	}
+
+	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
+		// In theory we could have done:
+		//   JenaRDFTermFactory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
+		// but because of generics casting rules that doesn't work :(						
+
+		if (graphName == null) {
+			return ANY;
+		}
+		// null: default graph
+		return JenaRDFTermFactory.toJena(graphName.orElse(null));
+	}
+
+	private Node toJenaPattern(RDFTerm term) {
+		if (term == null)
+			return ANY;
+		return JenaRDFTermFactory.toJena(term);
+	}
+
+	@Override
+	public boolean contains(Quad quad) {
+		return graph.contains(JenaRDFTermFactory.toJena(quad));
+	}
+
+	@Override
+	public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.delete(org.apache.jena.sparql.core.Quad.create(
+				toJenaPattern(graphName),
+				toJenaPattern(subject),
+				toJenaPattern(predicate), 
+				toJenaPattern(object)));
+	}
+
+	@Override
+	public void remove(Quad quad) {
+		graph.delete(JenaRDFTermFactory.toJena(quad));
+	}
+
+	@Override
+	public long size() {
+		return graph.size();
+	}
+
+	@Override
+	public Stream<? extends Quad> stream() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(ANY, ANY, ANY, ANY), true)
+				.map(factory::fromJena);
+	}
+
+	@Override
+	public Stream<? extends Quad> stream(Optional<BlankNodeOrIRI> g, BlankNodeOrIRI s, IRI p, RDFTerm o) {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(toJenaPattern(g), toJenaPattern(s), toJenaPattern(p), toJenaPattern(o)), true)
+				.map(factory::fromJena);
+	}
+
+	@Override
+	public String toString() {
+		StringWriter sw = new StringWriter();
+		RDFDataMgr.write(sw, graph, Lang.NT);
+		return sw.toString();
+	}
+
+	@Override
+	public Graph getGraph() {
+		GraphView gv = GraphView.createDefaultGraph(graph);
+		return new GraphImpl(gv, salt);
+	}
+
+	@Override
+	public Graph getUnionGraph() {
+		GraphView gv = GraphView.createUnionGraph(graph);
+		return new GraphImpl(gv, salt);
+	}
+	
+	@Override
+	public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
+		GraphView gv = GraphView.createNamedGraph(graph, JenaRDFTermFactory.toJena(graphName));
+		return Optional.of(new GraphImpl(gv, salt));
+	}	
+
+	@Override
+	public Stream<BlankNodeOrIRI> getGraphNames() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.listGraphNodes()).map(node -> 
+			(BlankNodeOrIRI) factory.fromJena(node));		
+	}
+
+	@Override
+	public Iterable<Quad> iterate() {
+		return Iter.asStream(graph.find(), false)
+				.map(q -> (Quad) JenaRDFTermFactory.fromJena(q, salt))
+				::iterator;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3a09004c/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index b685832..da24277 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -23,6 +23,7 @@ import java.util.UUID;
 
 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.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
@@ -40,6 +41,8 @@ import org.apache.commons.rdf.jena.JenaTripleLike;
 import org.apache.commons.rdf.jena.JenaVariable;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 public class JenaFactory {
@@ -55,6 +58,16 @@ public class JenaFactory {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
 
+	public static Dataset createDataset() {
+		return createDataset(UUID.randomUUID());
+	}
+	
+	public static Dataset createDataset(UUID salt) {
+		DatasetGraph dg = DatasetGraphFactory.createGeneral();
+		// Or which createMethod() -- a bit confusing with lots of choice..
+		return new DatasetImpl(dg, salt);
+	}
+
 	public static JenaGraph createGraph() {
 		return createGraph(UUID.randomUUID());
 	}
@@ -91,7 +104,7 @@ public class JenaFactory {
 		return new VariableImpl(NodeFactory.createVariable(name));
 	}
 	
-	public static JenaAny createVariable() {
+	public static JenaAny createAnyVariable() {
 		return AnyImpl.Singleton.instance;
 	}
 
@@ -152,4 +165,5 @@ public class JenaFactory {
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return new QuadImpl(quad, salt);
 	}
+
 }


[05/50] incubator-commonsrdf git commit: javadoc improvements

Posted by st...@apache.org.
javadoc improvements


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

Branch: refs/heads/master
Commit: 0f349723de52c5a9cbc78f70edd41f40c355631b
Parents: 0475259
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 12:53:32 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 12:53:32 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/jena/JenaAny.java   | 16 ++++++++++++++++
 .../org/apache/commons/rdf/jena/JenaBlankNode.java  |  6 ++++++
 .../java/org/apache/commons/rdf/jena/JenaIRI.java   |  6 ++++++
 .../org/apache/commons/rdf/jena/JenaLiteral.java    |  6 ++++++
 .../org/apache/commons/rdf/jena/JenaVariable.java   | 15 +++++++++++++++
 .../org/apache/commons/rdf/jena/impl/AnyImpl.java   |  5 +++++
 .../apache/commons/rdf/jena/impl/VariableImpl.java  | 13 +++++++++++++
 7 files changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
index b6c32fd..5b6f398 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
@@ -18,6 +18,22 @@
 
 package org.apache.commons.rdf.jena;
 
+import org.apache.jena.graph.Node;
+
+/**
+ * A placeholder for "any" RDFTerm.
+ * <p>
+ * Equivalent to <code>[]</code> in SPARQL. This is a Jena-specific
+ * RDFTerm extension used in SPARQL queries.
+ * <p>
+ * Note that any JenaAny is {@link Object#equals(Object)} equal to 
+ * any other JenaAny - in practice there is only a singleton instance -
+ * but  every ocurrance of JenaAny in a generalized statement 
+ * would independently represent "any" RDFTerm.
+ * 
+ * @see Node#ANY
+ * 
+ */
 public interface JenaAny extends JenaRDFTerm {
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
index 099821f..4777dda 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
@@ -19,7 +19,13 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.BlankNode;
+import org.apache.jena.graph.Node;
 
+/**
+ * A Jena-backed {@link BlankNode}.
+ * 
+ * @see Node#isBlank()
+ */
 public interface JenaBlankNode extends JenaRDFTerm, BlankNode {
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
index ee58465..b16acd8 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
@@ -19,7 +19,13 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.IRI;
+import org.apache.jena.graph.Node;
 
+/**
+ * A Jena-backed {@link IRI}.
+ * 
+ * @see Node#isURI()
+ */
 public interface JenaIRI extends JenaRDFTerm, IRI {
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
index 7d0757b..df0c697 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
@@ -19,7 +19,13 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.Literal;
+import org.apache.jena.graph.Node;
 
+/**
+ * A Jena-backed {@link Literal}
+ * 
+ * @see Node#isLiteral()
+ */
 public interface JenaLiteral extends JenaRDFTerm, Literal {
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
index 218272f..099018f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
@@ -17,7 +17,22 @@
  */
 package org.apache.commons.rdf.jena;
 
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.jena.graph.Node;
 
+/**
+ * A placeholder for a variable RDFTerm.
+ * <p>
+ * Equivalent to <code>?variable</code> in SPARQL. This is a Jena-specific
+ * RDFTerm extension used in SPARQL queries.
+ * <p>
+ * Note that any JenaVariable is {@link Object#equals(Object)} equal to 
+ * any other JenaVariable if they have the same {@link #getVariableName()}. There
+ * is no equivalent of {@link BlankNode#uniqueReference()} and actual equality depend
+ * on the SPARQL query using the variable.
+ * 
+ * @see Node#isVariable()
+ */
 public interface JenaVariable extends JenaRDFTerm {
 	public String getVariableName();
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
index a468f43..e2d3809 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
@@ -45,5 +45,10 @@ public class AnyImpl implements JenaRDFTerm, JenaAny {
 	public Node asJenaNode() {
 		return Node.ANY;
 	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		return obj == this || obj instanceof JenaAny;
+	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0f349723/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
index 130462a..b72ecde 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
@@ -18,6 +18,8 @@
 
 package org.apache.commons.rdf.jena.impl;
 
+import java.util.Objects;
+
 import org.apache.commons.rdf.jena.JenaRDFTerm;
 import org.apache.commons.rdf.jena.JenaVariable;
 import org.apache.jena.graph.Node;
@@ -47,5 +49,16 @@ public class VariableImpl implements JenaRDFTerm, JenaVariable {
 	public Node asJenaNode() {
 		return node;
 	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		if (obj == this) { 
+			return true;
+		}
+		if (! (obj instanceof JenaVariable)) { 
+			return false;
+		}
+		return Objects.equals(getVariableName(), ((JenaVariable)obj).getVariableName());
+	}
 
 }


[30/50] incubator-commonsrdf git commit: Corrected javadoc (again..:))

Posted by st...@apache.org.
Corrected javadoc (again..:))


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

Branch: refs/heads/master
Commit: c763ffa75c434dde98844986029b097ad89ca70e
Parents: eb391f8
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 01:13:06 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 01:13:36 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c763ffa7/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 1c1be7f..d8406b8 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -663,9 +663,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Return Jena {@link Lang} corresponding to a {@link RDFSyntax.
+	 * Return Jena {@link Lang} corresponding to a {@link RDFSyntax}.
 	 * 
-	 * @param lang {@link RDFSyntax} to convert
+	 * @param rdfSyntax {@link RDFSyntax} to convert
 	 * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
 	 */
 	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {


[50/50] incubator-commonsrdf git commit: Merge branch 'master' into jena

Posted by st...@apache.org.
Merge branch 'master' into jena


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

Branch: refs/heads/master
Commit: 4528e695f5ee1c56e3527dec4a25e8f4685cd702
Parents: 7dd08a2 0beee9d
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 15:21:23 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 15:21:23 2016 +0100

----------------------------------------------------------------------
 jsonld-java/pom.xml                             |  67 ++++
 .../commons/rdf/jsonldjava/JsonLdBlankNode.java |  62 ++++
 .../commons/rdf/jsonldjava/JsonLdDataset.java   | 115 +++++++
 .../commons/rdf/jsonldjava/JsonLdGraph.java     | 118 +++++++
 .../commons/rdf/jsonldjava/JsonLdGraphLike.java | 220 +++++++++++++
 .../commons/rdf/jsonldjava/JsonLdIRI.java       |  64 ++++
 .../commons/rdf/jsonldjava/JsonLdLiteral.java   |  99 ++++++
 .../commons/rdf/jsonldjava/JsonLdQuad.java      |  66 ++++
 .../commons/rdf/jsonldjava/JsonLdQuadLike.java  |  75 +++++
 .../rdf/jsonldjava/JsonLdRDFTermFactory.java    | 306 +++++++++++++++++++
 .../commons/rdf/jsonldjava/JsonLdTerm.java      |  44 +++
 .../commons/rdf/jsonldjava/JsonLdTriple.java    |  61 ++++
 .../rdf/jsonldjava/JsonLdUnionGraph.java        | 118 +++++++
 .../jsonldjava/experimental/JsonLdParser.java   | 160 ++++++++++
 .../jsonldjava/experimental/package-info.java   |  34 +++
 .../commons/rdf/jsonldjava/package-info.java    |  27 ++
 .../org.apache.commons.rdf.api.RDFTermFactory   |   1 +
 jsonld-java/src/main/resources/test.jsonld      |  26 ++
 .../rdf/jsonldjava/JsonLdBlankNodeTest.java     |  24 ++
 .../commons/rdf/jsonldjava/JsonLdGraphTest.java |  31 ++
 .../rdf/jsonldjava/JsonLdParserBuilderTest.java | 127 ++++++++
 .../jsonldjava/JsonLdRDFTermFactoryTest.java    |  54 ++++
 pom.xml                                         |  14 +
 23 files changed, 1913 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4528e695/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 913a659,235dfa9..2b837c6
--- a/pom.xml
+++ b/pom.xml
@@@ -218,7 -215,7 +218,8 @@@
      <modules>
          <module>api</module>
          <module>simple</module>
 +        <module>jena</module>
+         <module>jsonld-java</module>
      </modules>
  
      <dependencyManagement>


[32/50] incubator-commonsrdf git commit: Added createGeneralizedQuad()

Posted by st...@apache.org.
Added createGeneralizedQuad()

See
https://github.com/apache/incubator-commonsrdf/pull/23#pullrequestreview-2147436


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

Branch: refs/heads/master
Commit: fe8104a2940822646b2bf95a83bc6d4532bdcef8
Parents: 2462a95
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 15:50:47 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 15:50:47 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 78 ++++++++++++++------
 1 file changed, 56 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fe8104a2/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index d8406b8..9a58ce7 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -137,32 +137,37 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 			throws IllegalArgumentException, UnsupportedOperationException {
 		return JenaFactory.createQuad(subject, predicate, object, graphName);
 	}
+
+	public JenaAny createAnyVariable() {
+		return JenaFactory.createAnyVariable();
+	}
+	
+	public JenaVariable createVariable(String variableName) {
+		return JenaFactory.createVariable(variableName);
+	}
 	
 	/**
-	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike} statement.
+	 * Create a generalized Jena triple.
 	 * <p>
-	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
-	 * <p>
-	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link JenaRDFTermFactory} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
+	 * The <em>generalized triple</em> supports any {@link RDFTerm} as its
+	 * {@link TripleLike#getSubject()} {@link TripleLike#getPredicate()} or
+	 * {@link TripleLike#getObject()}, including {@link JenaAny} or
+	 * {@link JenaVariable}.
 	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
-	 * 
-	 * @param subject The subject of the statement
-	 * @param predicate The predicate of the statement
-	 * @param object The object of the statement
-
-	 *            
-	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
-	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
-	 *         {@link Triple#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete
+	 * @see #createTriple(BlankNodeOrIRI, IRI, RDFTerm)
+	 * @see #createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+	 * @see #createAnyVariable()
+	 * @see #createVariable(String)
+	 * 
+	 * @param subject
+	 *            The subject of the statement
+	 * @param predicate
+	 *            The predicate of the statement
+	 * @param object
+	 *            The object of the statement
+	 * @return Generalized {@link TripleLike}. Note that the generalized triple
+	 *         does <strong>not</strong> implement {@link Triple#equals(Object)}
+	 *         or {@link Triple#hashCode()}.
 	 */
 	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
@@ -170,6 +175,35 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
+	 * Create a generalized Jena quad.
+	 * <p>
+	 * The <em>generalized quad</em> supports any {@link RDFTerm} as its
+	 * {@link QuadLike#getSubject()} {@link QuadLike#getPredicate()},
+	 * {@link QuadLike#getObject()} or {@link QuadLike#getObject()} including
+	 * {@link JenaAny} or {@link JenaVariable}.
+	 * 
+	 * @see #createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)
+	 * @see #createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+	 * @see #createAnyVariable()
+	 * @see #createVariable(String)
+	 * 
+	 * @param subject
+	 *            The subject of the statement
+	 * @param predicate
+	 *            The predicate of the statement
+	 * @param object
+	 *            The object of the statement
+	 * @param graphName
+	 *            The graph name of the statement
+	 * @return Generalized {@link QuadLike}. Note that the generalized quad does
+	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
+	 *         {@link Quad#hashCode()}.
+	 */
+	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> createGeneralizedQuad(
+			RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
+		return JenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
+	}	
+	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
 	 * <p>
 	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.


[18/50] incubator-commonsrdf git commit: Merge branch 'parser-with-quads' into jena

Posted by st...@apache.org.
Merge branch 'parser-with-quads' into jena


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

Branch: refs/heads/master
Commit: 77e90e3933fb6fd16b613ac9c0abd0421b1e665a
Parents: 387eaae 7201668
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Sep 13 00:10:15 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Sep 13 00:10:15 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/api/RDFParserBuilder.java       | 21 +++++++++++++-------
 .../rdf/simple/AbstractRDFParserBuilder.java    |  3 +--
 2 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------



[40/50] incubator-commonsrdf git commit: removed fromJenaGeneralized

Posted by st...@apache.org.
removed fromJenaGeneralized


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

Branch: refs/heads/master
Commit: fd87f5ae93fdec379feadda162a9ed41c92885de
Parents: 3fdb27f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 09:39:23 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 09:39:23 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java  | 4 ----
 1 file changed, 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd87f5ae/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 2f75436..b349df8 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -110,10 +110,6 @@ public class JenaFactory {
 		if (! node.isConcrete()) {
 			throw new ConversionException("Node is not a concrete RDF Term: " + node); 
 		}
-		return fromJenaGeneralized(node, salt);		
-	}
-
-	public static JenaRDFTerm fromJenaGeneralized(Node node, UUID salt) {
 		if (node.isURI()) {
 			return new JenaIRIImpl(node);
 		}


[24/50] incubator-commonsrdf git commit: COMMONSRDF-33 Rename implementations to Jena*Impl

Posted by st...@apache.org.
COMMONSRDF-33 Rename implementations to Jena*Impl


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

Branch: refs/heads/master
Commit: c52979ba57ce5acda06151030040986b19b1792a
Parents: 4416acc
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 14:25:47 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 14:25:47 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    |   2 +-
 .../rdf/jena/impl/AbstractJenaRDFTerm.java      |  47 +++++
 .../commons/rdf/jena/impl/AbstractRDFTerm.java  |  47 -----
 .../apache/commons/rdf/jena/impl/AnyImpl.java   |  54 ------
 .../commons/rdf/jena/impl/BlankNodeImpl.java    |  61 ------
 .../commons/rdf/jena/impl/DatasetImpl.java      | 187 -------------------
 .../rdf/jena/impl/GeneralizedQuadImpl.java      | 136 --------------
 .../apache/commons/rdf/jena/impl/GraphImpl.java | 154 ---------------
 .../apache/commons/rdf/jena/impl/IRIImpl.java   |  61 ------
 .../commons/rdf/jena/impl/JenaAnyImpl.java      |  54 ++++++
 .../rdf/jena/impl/JenaBlankNodeImpl.java        |  61 ++++++
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  | 187 +++++++++++++++++++
 .../commons/rdf/jena/impl/JenaFactory.java      |  52 +++---
 .../rdf/jena/impl/JenaGeneralizedQuad.java      | 136 ++++++++++++++
 .../commons/rdf/jena/impl/JenaGraphImpl.java    | 154 +++++++++++++++
 .../commons/rdf/jena/impl/JenaIRIImpl.java      |  61 ++++++
 .../commons/rdf/jena/impl/JenaLiteralImpl.java  |  73 ++++++++
 .../commons/rdf/jena/impl/JenaQuadImpl.java     |  66 +++++++
 .../commons/rdf/jena/impl/JenaTripleImpl.java   |  67 +++++++
 .../commons/rdf/jena/impl/JenaVariableImpl.java |  64 +++++++
 .../commons/rdf/jena/impl/LiteralImpl.java      |  73 --------
 .../apache/commons/rdf/jena/impl/QuadImpl.java  |  66 -------
 .../commons/rdf/jena/impl/TripleImpl.java       |  67 -------
 .../commons/rdf/jena/impl/VariableImpl.java     |  64 -------
 .../commons/rdf/jena/TestRDFParserBuilder.java  |   5 +-
 25 files changed, 1000 insertions(+), 999 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index ec84c0a..7359acb 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -681,7 +681,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 			return null;
 		}
 		if (term instanceof JenaRDFTerm)
-			// TODO: What if it's a BlankNodeImpl with
+			// TODO: What if it's a JenaBlankNodeImpl with
 			// a different salt? Do we need to rewrite the
 			// jena blanknode identifier?
 			return ((JenaRDFTerm) term).asJenaNode();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java
new file mode 100644
index 0000000..9c0d7ec
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractJenaRDFTerm.java
@@ -0,0 +1,47 @@
+/**
+ * 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.jena.impl;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.out.NodeFmtLib;
+
+class AbstractJenaRDFTerm implements JenaRDFTerm, RDFTerm {
+	private Node node;
+	// static private PrefixMapping empty = new PrefixMappingImpl() ;
+
+	protected AbstractJenaRDFTerm(Node node) {
+		this.node = node;
+	}
+
+	@Override
+	public Node asJenaNode() {
+		return node;
+	}
+
+	public String ntriplesString() {
+		return NodeFmtLib.str(node);
+	}
+
+	@Override
+	public String toString() {
+		return ntriplesString();
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
deleted file mode 100644
index 5c828ef..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
+++ /dev/null
@@ -1,47 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.jena.graph.Node;
-import org.apache.jena.riot.out.NodeFmtLib;
-
-class AbstractRDFTerm implements JenaRDFTerm, RDFTerm {
-	private Node node;
-	// static private PrefixMapping empty = new PrefixMappingImpl() ;
-
-	protected AbstractRDFTerm(Node node) {
-		this.node = node;
-	}
-
-	@Override
-	public Node asJenaNode() {
-		return node;
-	}
-
-	public String ntriplesString() {
-		return NodeFmtLib.str(node);
-	}
-
-	@Override
-	public String toString() {
-		return ntriplesString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
deleted file mode 100644
index e2d3809..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
+++ /dev/null
@@ -1,54 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.jena.JenaAny;
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.jena.graph.Node;
-
-public class AnyImpl implements JenaRDFTerm, JenaAny {
-
-	static class Singleton {
-		static AnyImpl instance = new AnyImpl();
-	}
-	
-	/**
-	 * Private constructor
-	 * 
-	 * @see {@link Singleton#instance}
-	 */
-	private AnyImpl() {
-	}
-	
-	@Override
-	public String ntriplesString() {
-		return "[]";
-	}
-
-	@Override
-	public Node asJenaNode() {
-		return Node.ANY;
-	}
-	
-	@Override
-	public boolean equals(Object obj) {
-		return obj == this || obj instanceof JenaAny;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
deleted file mode 100644
index 2acb635..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
+++ /dev/null
@@ -1,61 +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.commons.rdf.jena.impl;
-
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.jena.JenaBlankNode;
-import org.apache.jena.graph.Node;
-
-public class BlankNodeImpl extends AbstractRDFTerm implements JenaBlankNode {
-
-	private UUID salt;
-
-	/* package */ BlankNodeImpl(Node node, UUID salt) {
-		super(node);
-		if (! node.isBlank()) {
-			throw new IllegalArgumentException("Node is not a blank node: " + node);
-		}				
-		this.salt = salt;
-	}
-
-	@Override
-	public boolean equals(Object other) {
-		if (other == this)
-			return true;
-		if (other == null)
-			return false;
-		if (!(other instanceof BlankNode))
-			return false;
-		BlankNode bNode = (BlankNode) other;
-		return uniqueReference().equals(bNode.uniqueReference());
-	}
-
-	@Override
-	public int hashCode() {
-		return uniqueReference().hashCode();
-	}
-
-	@Override
-	public String uniqueReference() {
-		return salt + asJenaNode().getBlankNodeLabel();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
deleted file mode 100644
index 4094efe..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/DatasetImpl.java
+++ /dev/null
@@ -1,187 +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.commons.rdf.jena.impl;
-
-import static org.apache.jena.graph.Node.ANY;
-
-import java.io.StringWriter;
-import java.util.Optional;
-import java.util.UUID;
-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.Quad;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaDataset;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.graph.Node;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.core.GraphView;
-
-public class DatasetImpl implements JenaDataset {
-
-	private DatasetGraph graph;
-	private UUID salt;
-
-	/* package */ DatasetImpl(DatasetGraph graph, UUID salt) {
-		this.graph = graph;
-		this.salt = salt;
-	}
-
-	@Override
-	public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		graph.add(				
-				org.apache.jena.sparql.core.Quad.create(
-				JenaRDFTermFactory.toJena(graphName),
-				JenaRDFTermFactory.toJena(subject),				
-				JenaRDFTermFactory.toJena(predicate), 
-				JenaRDFTermFactory.toJena(object)));
-	}
-
-	@Override
-	public void add(Quad quad) {
-		graph.add(JenaRDFTermFactory.toJena(quad));
-	}
-	
-	@Override
-	public DatasetGraph asJenaDatasetGraph() {		
-		return graph;
-	}
-
-	@Override
-	public void clear() {
-		graph.clear();
-	}
-
-	@Override
-	public void close() {
-		graph.close();
-	}
-
-
-	@Override
-	public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {		
-		return graph.contains(
-				toJenaPattern(graphName),
-				toJenaPattern(subject), 
-				toJenaPattern(predicate),
-				toJenaPattern(object));
-	}
-
-	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
-		// In theory we could have done:
-		//   JenaRDFTermFactory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
-		// but because of generics casting rules that doesn't work :(						
-
-		if (graphName == null) {
-			return ANY;
-		}
-		// null: default graph
-		return JenaRDFTermFactory.toJena(graphName.orElse(null));
-	}
-
-	private Node toJenaPattern(RDFTerm term) {
-		if (term == null)
-			return ANY;
-		return JenaRDFTermFactory.toJena(term);
-	}
-
-	@Override
-	public boolean contains(Quad quad) {
-		return graph.contains(JenaRDFTermFactory.toJena(quad));
-	}
-
-	@Override
-	public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		graph.delete(org.apache.jena.sparql.core.Quad.create(
-				toJenaPattern(graphName),
-				toJenaPattern(subject),
-				toJenaPattern(predicate), 
-				toJenaPattern(object)));
-	}
-
-	@Override
-	public void remove(Quad quad) {
-		graph.delete(JenaRDFTermFactory.toJena(quad));
-	}
-
-	@Override
-	public long size() {
-		return graph.size();
-	}
-
-	@Override
-	public Stream<? extends Quad> stream() {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
-		return Iter.asStream(graph.find(ANY, ANY, ANY, ANY), true)
-				.map(factory::fromJena);
-	}
-
-	@Override
-	public Stream<? extends Quad> stream(Optional<BlankNodeOrIRI> g, BlankNodeOrIRI s, IRI p, RDFTerm o) {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
-		return Iter.asStream(graph.find(toJenaPattern(g), toJenaPattern(s), toJenaPattern(p), toJenaPattern(o)), true)
-				.map(factory::fromJena);
-	}
-
-	@Override
-	public String toString() {
-		StringWriter sw = new StringWriter();
-		RDFDataMgr.write(sw, graph, Lang.NT);
-		return sw.toString();
-	}
-
-	@Override
-	public Graph getGraph() {
-		GraphView gv = GraphView.createDefaultGraph(graph);
-		return new GraphImpl(gv, salt);
-	}
-
-	@Override
-	public Graph getUnionGraph() {
-		GraphView gv = GraphView.createUnionGraph(graph);
-		return new GraphImpl(gv, salt);
-	}
-	
-	@Override
-	public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
-		GraphView gv = GraphView.createNamedGraph(graph, JenaRDFTermFactory.toJena(graphName));
-		return Optional.of(new GraphImpl(gv, salt));
-	}	
-
-	@Override
-	public Stream<BlankNodeOrIRI> getGraphNames() {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
-		return Iter.asStream(graph.listGraphNodes()).map(node -> 
-			(BlankNodeOrIRI) factory.fromJena(node));		
-	}
-
-	@Override
-	public Iterable<Quad> iterate() {
-		return Iter.asStream(graph.find(), false)
-				.map(q -> (Quad) JenaRDFTermFactory.fromJena(q, salt))
-				::iterator;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
deleted file mode 100644
index e772bd1..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
+++ /dev/null
@@ -1,136 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.QuadLike;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaQuad;
-import org.apache.commons.rdf.jena.JenaQuadLike;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.jena.graph.Triple;
-import org.apache.jena.sparql.core.Quad;
-
-/**
- * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
- * <p>
- * This class does not implement any particular {@link #equals(Object)} or
- * {@link #hashCode()} but can otherwise be used as a base class for both
- * a {@link JenaTriple} and a {@link JenaQuad}.
- * 
- * @see TripleImpl
- * @see QuadImpl
- * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
- * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
- *
- */
-public class GeneralizedQuadImpl<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
-
-	final Optional<G> graphName;
-	final S subject;
-	final P predicate;
-	final O object;
-	org.apache.jena.sparql.core.Quad quad = null;
-	org.apache.jena.graph.Triple triple = null;
-	
-	GeneralizedQuadImpl(S subject, P predicate, O object, Optional<G> graphName) {		
-		this.subject = Objects.requireNonNull(subject);
-		this.predicate = Objects.requireNonNull(predicate);
-		this.object = Objects.requireNonNull(object);
-		this.graphName = Objects.requireNonNull(graphName);
-	}
-
-	GeneralizedQuadImpl(S subject, P predicate, O object) {
-		this(subject, predicate, object, Optional.empty());
-	}
-	 
-	@SuppressWarnings("unchecked")
-	GeneralizedQuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		this.quad = Objects.requireNonNull(quad);
-		this.subject = (S) JenaFactory.fromJena(quad.getSubject(), salt);
-		this.predicate = (P) JenaFactory.fromJena(quad.getPredicate(), salt);
-		this.object = (O)JenaFactory.fromJena(quad.getObject(), salt);
-		this.graphName = Optional.of((G) JenaFactory.fromJena(quad.getGraph(), salt));		
-	}
-
-	@SuppressWarnings("unchecked")
-	GeneralizedQuadImpl(org.apache.jena.graph.Triple triple, UUID salt) {
-		this.triple = Objects.requireNonNull(triple);		
-		this.subject = (S) JenaFactory.fromJena(triple.getSubject(), salt);
-		this.predicate = (P) JenaFactory.fromJena(triple.getPredicate(), salt);
-		this.object = (O)JenaFactory.fromJena(triple.getObject(), salt);
-		this.graphName = Optional.empty();
-	}
-
-	@Override
-	public org.apache.jena.sparql.core.Quad asJenaQuad() {
-		if (quad == null) {
-			quad = org.apache.jena.sparql.core.Quad.create(
-					JenaRDFTermFactory.toJena(graphName.orElse(null)),
-					JenaRDFTermFactory.toJena(subject), 
-					JenaRDFTermFactory.toJena(predicate),
-					JenaRDFTermFactory.toJena(object));
-		}
-		return quad;
-	}
-
-	@Override
-	public org.apache.jena.graph.Triple asJenaTriple() {
-		if (triple == null) {
-			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject), 
-				JenaRDFTermFactory.toJena(predicate),
-				JenaRDFTermFactory.toJena(object));
-		}
-		return triple;
-	}	
-	
-	@Override
-	public S getSubject() {
-		return subject;
-	}
-
-	@Override
-	public P getPredicate() {
-		return predicate;
-	}
-	
-	@Override
-	public O getObject() {
-		return object;
-	}
-
-	@Override
-	public Optional<G> getGraphName() {
-		return graphName;
-	}
-
-	@Override
-	public String toString() {
-		// kind of nquad syntax
-		return getSubject().ntriplesString() + " " + 
-				getPredicate().ntriplesString() + " "
-				+ getObject().ntriplesString() + " " + 
-				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
deleted file mode 100644
index 3b74ee0..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
+++ /dev/null
@@ -1,154 +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.commons.rdf.jena.impl;
-
-import java.io.StringWriter;
-import java.util.UUID;
-import java.util.stream.Stream;
-
-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.jena.JenaGraph;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.graph.Node;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.rdf.model.ModelFactory;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-
-public class GraphImpl implements JenaGraph {
-
-	private org.apache.jena.graph.Graph graph;
-	private UUID salt;
-	private Model model;
-
-	GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
-		this.graph = graph;
-		this.salt = salt;
-	}
-
-	GraphImpl(Model model, UUID salt) {
-		this.model = model;
-		this.graph = model.getGraph();
-		this.salt = salt;
-	}
-
-	@Override
-	public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		graph.add(org.apache.jena.graph.Triple.create(
-				JenaRDFTermFactory.toJena(subject),
-				JenaRDFTermFactory.toJena(predicate), 
-				JenaRDFTermFactory.toJena(object)));
-	}
-
-	@Override
-	public void add(Triple triple) {
-		graph.add(JenaRDFTermFactory.toJena(triple));
-	}
-
-	@Override
-	public org.apache.jena.graph.Graph asJenaGraph() {
-		return graph;
-	}
-
-	@Override
-	public void clear() {
-		graph.clear();
-	}
-
-	@Override
-	public void close() {
-		graph.close();
-	}
-
-	@Override
-	public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return graph.contains(
-				JenaRDFTermFactory.toJena(subject), 
-				JenaRDFTermFactory.toJena(predicate),
-				JenaRDFTermFactory.toJena(object));
-	}
-
-	@Override
-	public boolean contains(Triple triple) {
-		return graph.contains(JenaRDFTermFactory.toJena(triple));
-	}
-
-	@Override
-	public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		graph.delete(org.apache.jena.graph.Triple.create(
-				JenaRDFTermFactory.toJena(subject),
-				JenaRDFTermFactory.toJena(predicate), 
-				JenaRDFTermFactory.toJena(object)));
-	}
-
-	@Override
-	public void remove(Triple triple) {
-		graph.delete(JenaRDFTermFactory.toJena(triple));
-	}
-
-	@Override
-	public long size() {
-		return graph.size();
-	}
-
-	@Override
-	public Stream<? extends Triple> stream() {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
-		return Iter.asStream(graph.find(null, null, null), true).map(factory::fromJena);
-	}
-
-	@Override
-	public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
-		return Iter.asStream(graph.find(toJenaAny(s), toJenaAny(p), toJenaAny(o)), true)
-				.map(factory::fromJena);
-	}
-
-	private Node toJenaAny(RDFTerm term) {
-		if (term == null)
-			return Node.ANY;
-		return JenaRDFTermFactory.toJena(term);
-	}
-
-	@Override
-	public String toString() {
-		StringWriter sw = new StringWriter();
-		RDFDataMgr.write(sw, graph, Lang.NT);
-		return sw.toString();
-	}
-
-	@Override
-	public Model asJenaModel() {
-		if (model == null) {
-			synchronized(this) {
-				// As Model can be used for locks, we should make sure we don't make
-				// more than one model
-				if (model == null) {
-					model = ModelFactory.createModelForGraph(graph);
-				}
-			}
-		}
-		return model;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
deleted file mode 100644
index e85c80f..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
+++ /dev/null
@@ -1,61 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.jena.JenaIRI;
-import org.apache.jena.graph.Node;
-import org.apache.jena.graph.NodeFactory;
-
-public class IRIImpl extends AbstractRDFTerm implements JenaIRI {
-
-	/* package */ IRIImpl(Node node) {
-		super(node);
-		if (! node.isURI()) {
-			throw new IllegalArgumentException("Node is not a blank node: " + node);
-		}				
-		
-	}
-
-	/* package */ IRIImpl(String iriStr) {
-		super(NodeFactory.createURI(iriStr));
-	}
-
-	@Override
-	public boolean equals(Object other) {
-		if (other == this)
-			return true;
-		if (other == null)
-			return false;
-		if (!(other instanceof IRI))
-			return false;
-		IRI iri = (IRI) other;
-		return getIRIString().equals(iri.getIRIString());
-	}
-
-	@Override
-	public String getIRIString() {
-		return asJenaNode().getURI();
-	}
-
-	@Override
-	public int hashCode() {
-		return getIRIString().hashCode();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
new file mode 100644
index 0000000..068cbd8
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
@@ -0,0 +1,54 @@
+/**
+ * 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.jena.impl;
+
+import org.apache.commons.rdf.jena.JenaAny;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.jena.graph.Node;
+
+public class JenaAnyImpl implements JenaRDFTerm, JenaAny {
+
+	static class Singleton {
+		static JenaAnyImpl instance = new JenaAnyImpl();
+	}
+	
+	/**
+	 * Private constructor
+	 * 
+	 * @see {@link Singleton#instance}
+	 */
+	private JenaAnyImpl() {
+	}
+	
+	@Override
+	public String ntriplesString() {
+		return "[]";
+	}
+
+	@Override
+	public Node asJenaNode() {
+		return Node.ANY;
+	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		return obj == this || obj instanceof JenaAny;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
new file mode 100644
index 0000000..0cbd764
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaBlankNodeImpl.java
@@ -0,0 +1,61 @@
+/**
+ * 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.jena.impl;
+
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.jena.JenaBlankNode;
+import org.apache.jena.graph.Node;
+
+public class JenaBlankNodeImpl extends AbstractJenaRDFTerm implements JenaBlankNode {
+
+	private UUID salt;
+
+	/* package */ JenaBlankNodeImpl(Node node, UUID salt) {
+		super(node);
+		if (! node.isBlank()) {
+			throw new IllegalArgumentException("Node is not a blank node: " + node);
+		}				
+		this.salt = salt;
+	}
+
+	@Override
+	public boolean equals(Object other) {
+		if (other == this)
+			return true;
+		if (other == null)
+			return false;
+		if (!(other instanceof BlankNode))
+			return false;
+		BlankNode bNode = (BlankNode) other;
+		return uniqueReference().equals(bNode.uniqueReference());
+	}
+
+	@Override
+	public int hashCode() {
+		return uniqueReference().hashCode();
+	}
+
+	@Override
+	public String uniqueReference() {
+		return salt + asJenaNode().getBlankNodeLabel();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
new file mode 100644
index 0000000..b756526
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -0,0 +1,187 @@
+/**
+ * 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.jena.impl;
+
+import static org.apache.jena.graph.Node.ANY;
+
+import java.io.StringWriter;
+import java.util.Optional;
+import java.util.UUID;
+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.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaDataset;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.GraphView;
+
+public class JenaDatasetImpl implements JenaDataset {
+
+	private DatasetGraph graph;
+	private UUID salt;
+
+	/* package */ JenaDatasetImpl(DatasetGraph graph, UUID salt) {
+		this.graph = graph;
+		this.salt = salt;
+	}
+
+	@Override
+	public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.add(				
+				org.apache.jena.sparql.core.Quad.create(
+				JenaRDFTermFactory.toJena(graphName),
+				JenaRDFTermFactory.toJena(subject),				
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
+	}
+
+	@Override
+	public void add(Quad quad) {
+		graph.add(JenaRDFTermFactory.toJena(quad));
+	}
+	
+	@Override
+	public DatasetGraph asJenaDatasetGraph() {		
+		return graph;
+	}
+
+	@Override
+	public void clear() {
+		graph.clear();
+	}
+
+	@Override
+	public void close() {
+		graph.close();
+	}
+
+
+	@Override
+	public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {		
+		return graph.contains(
+				toJenaPattern(graphName),
+				toJenaPattern(subject), 
+				toJenaPattern(predicate),
+				toJenaPattern(object));
+	}
+
+	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
+		// In theory we could have done:
+		//   JenaRDFTermFactory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
+		// but because of generics casting rules that doesn't work :(						
+
+		if (graphName == null) {
+			return ANY;
+		}
+		// null: default graph
+		return JenaRDFTermFactory.toJena(graphName.orElse(null));
+	}
+
+	private Node toJenaPattern(RDFTerm term) {
+		if (term == null)
+			return ANY;
+		return JenaRDFTermFactory.toJena(term);
+	}
+
+	@Override
+	public boolean contains(Quad quad) {
+		return graph.contains(JenaRDFTermFactory.toJena(quad));
+	}
+
+	@Override
+	public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.delete(org.apache.jena.sparql.core.Quad.create(
+				toJenaPattern(graphName),
+				toJenaPattern(subject),
+				toJenaPattern(predicate), 
+				toJenaPattern(object)));
+	}
+
+	@Override
+	public void remove(Quad quad) {
+		graph.delete(JenaRDFTermFactory.toJena(quad));
+	}
+
+	@Override
+	public long size() {
+		return graph.size();
+	}
+
+	@Override
+	public Stream<? extends Quad> stream() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(ANY, ANY, ANY, ANY), true)
+				.map(factory::fromJena);
+	}
+
+	@Override
+	public Stream<? extends Quad> stream(Optional<BlankNodeOrIRI> g, BlankNodeOrIRI s, IRI p, RDFTerm o) {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(toJenaPattern(g), toJenaPattern(s), toJenaPattern(p), toJenaPattern(o)), true)
+				.map(factory::fromJena);
+	}
+
+	@Override
+	public String toString() {
+		StringWriter sw = new StringWriter();
+		RDFDataMgr.write(sw, graph, Lang.NT);
+		return sw.toString();
+	}
+
+	@Override
+	public Graph getGraph() {
+		GraphView gv = GraphView.createDefaultGraph(graph);
+		return new JenaGraphImpl(gv, salt);
+	}
+
+	@Override
+	public Graph getUnionGraph() {
+		GraphView gv = GraphView.createUnionGraph(graph);
+		return new JenaGraphImpl(gv, salt);
+	}
+	
+	@Override
+	public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
+		GraphView gv = GraphView.createNamedGraph(graph, JenaRDFTermFactory.toJena(graphName));
+		return Optional.of(new JenaGraphImpl(gv, salt));
+	}	
+
+	@Override
+	public Stream<BlankNodeOrIRI> getGraphNames() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.listGraphNodes()).map(node -> 
+			(BlankNodeOrIRI) factory.fromJena(node));		
+	}
+
+	@Override
+	public Iterable<Quad> iterate() {
+		return Iter.asStream(graph.find(), false)
+				.map(q -> (Quad) JenaRDFTermFactory.fromJena(q, salt))
+				::iterator;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 7a6a7ab..0551094 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -62,60 +62,60 @@ import org.apache.jena.sparql.graph.GraphFactory;
 public class JenaFactory {
 
 	public static JenaBlankNode createBlankNode(String id, UUID salt) {
-		return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
+		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(id), salt);
 	}
 
 	public static JenaBlankNode createBlankNode(UUID salt) {
-		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
+		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
 	public static Dataset createDataset(UUID salt) {
 		DatasetGraph dg = DatasetGraphFactory.createGeneral();
 		// Or which createMethod() -- a bit confusing with lots of choice..
-		return new DatasetImpl(dg, salt);
+		return new JenaDatasetImpl(dg, salt);
 	}
 
 	public static JenaGraph createGraph(UUID salt) {
-		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
+		return new JenaGraphImpl(GraphFactory.createDefaultGraph(), salt);
 	}
 
 	public static JenaIRI createIRI(String iriStr) {
-		return new IRIImpl(iriStr);
+		return new JenaIRIImpl(iriStr);
 	}
 
 	public static JenaLiteral createLiteral(String lexStr) {
-		return new LiteralImpl(NodeFactory.createLiteral(lexStr));
+		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr));
 	}
 
 	public static JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
-		return new LiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
+		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
 	}
 
 	public static JenaLiteral createLiteralLang(String lexStr, String langTag) {
-		return new LiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
+		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
 	}
 
 	public static JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return new TripleImpl(subject, predicate, object);
+		return new JenaTripleImpl(subject, predicate, object);
 	}
 
 	public static JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
-		return new QuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
+		return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 	
 	public static JenaVariable createVariable(String name) {
-		return new VariableImpl(NodeFactory.createVariable(name));
+		return new JenaVariableImpl(NodeFactory.createVariable(name));
 	}
 	
 	public static JenaAny createAnyVariable() {
-		return AnyImpl.Singleton.instance;
+		return JenaAnyImpl.Singleton.instance;
 	}
 
 	public static JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
+		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
 	}
 
 	public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
-		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
+		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 	
 	public static JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
@@ -127,49 +127,49 @@ public class JenaFactory {
 
 	public static JenaRDFTerm fromJenaGeneralized(Node node, UUID salt) {
 		if (node.isURI()) {
-			return new IRIImpl(node);
+			return new JenaIRIImpl(node);
 		}
 		if (node.isLiteral()) {
-			return new LiteralImpl(node);
+			return new JenaLiteralImpl(node);
 		}
 		if (node.isBlank()) {
-			return new BlankNodeImpl(node, salt);
+			return new JenaBlankNodeImpl(node, salt);
 		}
 		if (node.equals(Node.ANY)) {
-			return AnyImpl.Singleton.instance;
+			return JenaAnyImpl.Singleton.instance;
 		}
 		if (node.isVariable()) {
-			return new VariableImpl(node);
+			return new JenaVariableImpl(node);
 		}
 		throw new IllegalArgumentException("Unrecognized node type: " + node);
 	}
 
 	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
-		return new GraphImpl(graph, salt);
+		return new JenaGraphImpl(graph, salt);
 	}
 
 	public static JenaGraph fromJena(Model model, UUID salt) {
-		return new GraphImpl(model, salt);
+		return new JenaGraphImpl(model, salt);
 	}
 
 	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
-		return new DatasetImpl(datasetGraph, salt);
+		return new JenaDatasetImpl(datasetGraph, salt);
 	}
 	
 	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new TripleImpl(triple, salt);
+		return new JenaTripleImpl(triple, salt);
 	}
 
 	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
+		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
 	}
 
 	public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
+		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
 	}
 	
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return new QuadImpl(quad, salt);
+		return new JenaQuadImpl(quad, salt);
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
new file mode 100644
index 0000000..5456ec9
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
@@ -0,0 +1,136 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.QuadLike;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.JenaQuadLike;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.jena.JenaTriple;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.sparql.core.Quad;
+
+/**
+ * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
+ * <p>
+ * This class does not implement any particular {@link #equals(Object)} or
+ * {@link #hashCode()} but can otherwise be used as a base class for both
+ * a {@link JenaTriple} and a {@link JenaQuad}.
+ * 
+ * @see JenaTripleImpl
+ * @see JenaQuadImpl
+ * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+ * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+ *
+ */
+public class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
+
+	final Optional<G> graphName;
+	final S subject;
+	final P predicate;
+	final O object;
+	org.apache.jena.sparql.core.Quad quad = null;
+	org.apache.jena.graph.Triple triple = null;
+	
+	JenaGeneralizedQuad(S subject, P predicate, O object, Optional<G> graphName) {		
+		this.subject = Objects.requireNonNull(subject);
+		this.predicate = Objects.requireNonNull(predicate);
+		this.object = Objects.requireNonNull(object);
+		this.graphName = Objects.requireNonNull(graphName);
+	}
+
+	JenaGeneralizedQuad(S subject, P predicate, O object) {
+		this(subject, predicate, object, Optional.empty());
+	}
+	 
+	@SuppressWarnings("unchecked")
+	JenaGeneralizedQuad(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		this.quad = Objects.requireNonNull(quad);
+		this.subject = (S) JenaFactory.fromJena(quad.getSubject(), salt);
+		this.predicate = (P) JenaFactory.fromJena(quad.getPredicate(), salt);
+		this.object = (O)JenaFactory.fromJena(quad.getObject(), salt);
+		this.graphName = Optional.of((G) JenaFactory.fromJena(quad.getGraph(), salt));		
+	}
+
+	@SuppressWarnings("unchecked")
+	JenaGeneralizedQuad(org.apache.jena.graph.Triple triple, UUID salt) {
+		this.triple = Objects.requireNonNull(triple);		
+		this.subject = (S) JenaFactory.fromJena(triple.getSubject(), salt);
+		this.predicate = (P) JenaFactory.fromJena(triple.getPredicate(), salt);
+		this.object = (O)JenaFactory.fromJena(triple.getObject(), salt);
+		this.graphName = Optional.empty();
+	}
+
+	@Override
+	public org.apache.jena.sparql.core.Quad asJenaQuad() {
+		if (quad == null) {
+			quad = org.apache.jena.sparql.core.Quad.create(
+					JenaRDFTermFactory.toJena(graphName.orElse(null)),
+					JenaRDFTermFactory.toJena(subject), 
+					JenaRDFTermFactory.toJena(predicate),
+					JenaRDFTermFactory.toJena(object));
+		}
+		return quad;
+	}
+
+	@Override
+	public org.apache.jena.graph.Triple asJenaTriple() {
+		if (triple == null) {
+			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject), 
+				JenaRDFTermFactory.toJena(predicate),
+				JenaRDFTermFactory.toJena(object));
+		}
+		return triple;
+	}	
+	
+	@Override
+	public S getSubject() {
+		return subject;
+	}
+
+	@Override
+	public P getPredicate() {
+		return predicate;
+	}
+	
+	@Override
+	public O getObject() {
+		return object;
+	}
+
+	@Override
+	public Optional<G> getGraphName() {
+		return graphName;
+	}
+
+	@Override
+	public String toString() {
+		// kind of nquad syntax
+		return getSubject().ntriplesString() + " " + 
+				getPredicate().ntriplesString() + " "
+				+ getObject().ntriplesString() + " " + 
+				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
new file mode 100644
index 0000000..49a09ae
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
@@ -0,0 +1,154 @@
+/**
+ * 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.jena.impl;
+
+import java.io.StringWriter;
+import java.util.UUID;
+import java.util.stream.Stream;
+
+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.jena.JenaGraph;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.graph.Node;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+
+public class JenaGraphImpl implements JenaGraph {
+
+	private org.apache.jena.graph.Graph graph;
+	private UUID salt;
+	private Model model;
+
+	JenaGraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
+		this.graph = graph;
+		this.salt = salt;
+	}
+
+	JenaGraphImpl(Model model, UUID salt) {
+		this.model = model;
+		this.graph = model.getGraph();
+		this.salt = salt;
+	}
+
+	@Override
+	public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.add(org.apache.jena.graph.Triple.create(
+				JenaRDFTermFactory.toJena(subject),
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
+	}
+
+	@Override
+	public void add(Triple triple) {
+		graph.add(JenaRDFTermFactory.toJena(triple));
+	}
+
+	@Override
+	public org.apache.jena.graph.Graph asJenaGraph() {
+		return graph;
+	}
+
+	@Override
+	public void clear() {
+		graph.clear();
+	}
+
+	@Override
+	public void close() {
+		graph.close();
+	}
+
+	@Override
+	public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return graph.contains(
+				JenaRDFTermFactory.toJena(subject), 
+				JenaRDFTermFactory.toJena(predicate),
+				JenaRDFTermFactory.toJena(object));
+	}
+
+	@Override
+	public boolean contains(Triple triple) {
+		return graph.contains(JenaRDFTermFactory.toJena(triple));
+	}
+
+	@Override
+	public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		graph.delete(org.apache.jena.graph.Triple.create(
+				JenaRDFTermFactory.toJena(subject),
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
+	}
+
+	@Override
+	public void remove(Triple triple) {
+		graph.delete(JenaRDFTermFactory.toJena(triple));
+	}
+
+	@Override
+	public long size() {
+		return graph.size();
+	}
+
+	@Override
+	public Stream<? extends Triple> stream() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(null, null, null), true).map(factory::fromJena);
+	}
+
+	@Override
+	public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
+		return Iter.asStream(graph.find(toJenaAny(s), toJenaAny(p), toJenaAny(o)), true)
+				.map(factory::fromJena);
+	}
+
+	private Node toJenaAny(RDFTerm term) {
+		if (term == null)
+			return Node.ANY;
+		return JenaRDFTermFactory.toJena(term);
+	}
+
+	@Override
+	public String toString() {
+		StringWriter sw = new StringWriter();
+		RDFDataMgr.write(sw, graph, Lang.NT);
+		return sw.toString();
+	}
+
+	@Override
+	public Model asJenaModel() {
+		if (model == null) {
+			synchronized(this) {
+				// As Model can be used for locks, we should make sure we don't make
+				// more than one model
+				if (model == null) {
+					model = ModelFactory.createModelForGraph(graph);
+				}
+			}
+		}
+		return model;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
new file mode 100644
index 0000000..2aa170f
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaIRIImpl.java
@@ -0,0 +1,61 @@
+/**
+ * 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.jena.impl;
+
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.jena.JenaIRI;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+
+public class JenaIRIImpl extends AbstractJenaRDFTerm implements JenaIRI {
+
+	/* package */ JenaIRIImpl(Node node) {
+		super(node);
+		if (! node.isURI()) {
+			throw new IllegalArgumentException("Node is not a blank node: " + node);
+		}				
+		
+	}
+
+	/* package */ JenaIRIImpl(String iriStr) {
+		super(NodeFactory.createURI(iriStr));
+	}
+
+	@Override
+	public boolean equals(Object other) {
+		if (other == this)
+			return true;
+		if (other == null)
+			return false;
+		if (!(other instanceof IRI))
+			return false;
+		IRI iri = (IRI) other;
+		return getIRIString().equals(iri.getIRIString());
+	}
+
+	@Override
+	public String getIRIString() {
+		return asJenaNode().getURI();
+	}
+
+	@Override
+	public int hashCode() {
+		return getIRIString().hashCode();
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
new file mode 100644
index 0000000..5bbc166
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
@@ -0,0 +1,73 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+import java.util.Optional;
+
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.jena.JenaLiteral;
+import org.apache.jena.graph.Node;
+
+public class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral {
+
+	/* package */ JenaLiteralImpl(Node node) {
+		super(node);
+		if (! node.isLiteral()) {
+			throw new IllegalArgumentException("Node is not a literal: " + node);
+		}		
+	}
+
+	@Override
+	public boolean equals(Object other) {
+		if (other == this)
+			return true;
+		if (other == null)
+			return false;
+		if (!(other instanceof Literal))
+			return false;
+		Literal literal = (Literal) other;
+		return getLexicalForm().equals(literal.getLexicalForm()) && getLanguageTag().equals(literal.getLanguageTag())
+				&& getDatatype().equals(literal.getDatatype());
+	}
+
+	@Override
+	public IRI getDatatype() {
+		return JenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
+	}
+
+	@Override
+	public Optional<String> getLanguageTag() {
+		String x = asJenaNode().getLiteralLanguage();
+		if (x == null || x.isEmpty())
+			return Optional.empty();
+		return Optional.of(x);
+	}
+
+	@Override
+	public String getLexicalForm() {
+		return asJenaNode().getLiteralLexicalForm();
+	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag());
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
new file mode 100644
index 0000000..0f3e3e3
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
@@ -0,0 +1,66 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+
+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;
+import org.apache.commons.rdf.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaQuad;
+
+public class JenaQuadImpl	extends JenaGeneralizedQuad<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
+	implements JenaQuad {
+
+	JenaQuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {
+		super(subject, predicate, object, graphName);
+	}
+
+	JenaQuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		super(quad, salt);
+		// Check the conversion
+		if ((graphName.isPresent() && ! (graphName.get() instanceof BlankNodeOrIRI)) ||
+			! (subject instanceof BlankNodeOrIRI) ||
+			! (predicate instanceof IRI) ||
+			! (object instanceof RDFTerm)) {
+			throw new ConversionException("Can't adapt generalized quad: " + quad);	
+		}
+	}
+
+	@Override
+	public boolean equals(Object other) {
+		if (other == this)
+			return true;
+		if (!(other instanceof Quad))
+			return false;
+		Quad quad = (Quad) other;
+		return getGraphName().equals(quad.getGraphName()) && getSubject().equals(quad.getSubject())
+				&& getPredicate().equals(quad.getPredicate()) && getObject().equals(quad.getObject());
+	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName());
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
new file mode 100644
index 0000000..4e497f2
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
@@ -0,0 +1,67 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+import java.util.UUID;
+
+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.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaTriple;
+
+public class JenaTripleImpl extends JenaGeneralizedQuad<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
+		implements JenaTriple {
+
+	JenaTripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		super(subject, predicate, object);
+	}
+
+	JenaTripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		super(triple, salt);
+		// Check the conversion
+		if (! (subject instanceof BlankNodeOrIRI) ||
+			! (predicate instanceof IRI) ||
+			! (object instanceof RDFTerm)) {
+			throw new ConversionException("Can't adapt generalized triple: " + quad);	
+		}
+	}
+
+	@Override
+	public boolean equals(Object other) {
+		if (other == this)
+			return true;
+		if (other == null)
+			return false;
+		if (!(other instanceof Triple))
+			return false;
+		Triple triple = (Triple) other;
+		return getSubject().equals(triple.getSubject()) && getPredicate().equals(triple.getPredicate())
+				&& getObject().equals(triple.getObject());
+	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(getSubject(), getPredicate(), getObject());
+	}
+
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
new file mode 100644
index 0000000..8027cf2
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
@@ -0,0 +1,64 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.commons.rdf.jena.JenaVariable;
+import org.apache.jena.graph.Node;
+
+public class JenaVariableImpl implements JenaRDFTerm, JenaVariable {
+
+	private Node node;
+
+	JenaVariableImpl(Node node) {	
+		if (! node.isVariable()) {
+			throw new IllegalArgumentException("Node is not a variable: " + node);
+		}
+		this.node = node;
+	}
+
+	@Override
+	public String ntriplesString() {
+		return "?" + getVariableName();
+	}
+
+	@Override
+	public String getVariableName() {
+		return node.getName();
+	}
+
+	@Override
+	public Node asJenaNode() {
+		return node;
+	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		if (obj == this) { 
+			return true;
+		}
+		if (! (obj instanceof JenaVariable)) { 
+			return false;
+		}
+		return Objects.equals(getVariableName(), ((JenaVariable)obj).getVariableName());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
deleted file mode 100644
index 2750198..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
+++ /dev/null
@@ -1,73 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.Literal;
-import org.apache.commons.rdf.jena.JenaLiteral;
-import org.apache.jena.graph.Node;
-
-public class LiteralImpl extends AbstractRDFTerm implements JenaLiteral {
-
-	/* package */ LiteralImpl(Node node) {
-		super(node);
-		if (! node.isLiteral()) {
-			throw new IllegalArgumentException("Node is not a literal: " + node);
-		}		
-	}
-
-	@Override
-	public boolean equals(Object other) {
-		if (other == this)
-			return true;
-		if (other == null)
-			return false;
-		if (!(other instanceof Literal))
-			return false;
-		Literal literal = (Literal) other;
-		return getLexicalForm().equals(literal.getLexicalForm()) && getLanguageTag().equals(literal.getLanguageTag())
-				&& getDatatype().equals(literal.getDatatype());
-	}
-
-	@Override
-	public IRI getDatatype() {
-		return JenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
-	}
-
-	@Override
-	public Optional<String> getLanguageTag() {
-		String x = asJenaNode().getLiteralLanguage();
-		if (x == null || x.isEmpty())
-			return Optional.empty();
-		return Optional.of(x);
-	}
-
-	@Override
-	public String getLexicalForm() {
-		return asJenaNode().getLiteralLexicalForm();
-	}
-
-	@Override
-	public int hashCode() {
-		return Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
deleted file mode 100644
index d68fcaf..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
+++ /dev/null
@@ -1,66 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-import java.util.UUID;
-
-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;
-import org.apache.commons.rdf.jena.ConversionException;
-import org.apache.commons.rdf.jena.JenaQuad;
-
-public class QuadImpl	extends GeneralizedQuadImpl<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
-	implements JenaQuad {
-
-	QuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {
-		super(subject, predicate, object, graphName);
-	}
-
-	QuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		super(quad, salt);
-		// Check the conversion
-		if ((graphName.isPresent() && ! (graphName.get() instanceof BlankNodeOrIRI)) ||
-			! (subject instanceof BlankNodeOrIRI) ||
-			! (predicate instanceof IRI) ||
-			! (object instanceof RDFTerm)) {
-			throw new ConversionException("Can't adapt generalized quad: " + quad);	
-		}
-	}
-
-	@Override
-	public boolean equals(Object other) {
-		if (other == this)
-			return true;
-		if (!(other instanceof Quad))
-			return false;
-		Quad quad = (Quad) other;
-		return getGraphName().equals(quad.getGraphName()) && getSubject().equals(quad.getSubject())
-				&& getPredicate().equals(quad.getPredicate()) && getObject().equals(quad.getObject());
-	}
-
-	@Override
-	public int hashCode() {
-		return Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName());
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
deleted file mode 100644
index 9207b38..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
+++ /dev/null
@@ -1,67 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.UUID;
-
-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.jena.ConversionException;
-import org.apache.commons.rdf.jena.JenaTriple;
-
-public class TripleImpl extends GeneralizedQuadImpl<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
-		implements JenaTriple {
-
-	TripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		super(subject, predicate, object);
-	}
-
-	TripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		super(triple, salt);
-		// Check the conversion
-		if (! (subject instanceof BlankNodeOrIRI) ||
-			! (predicate instanceof IRI) ||
-			! (object instanceof RDFTerm)) {
-			throw new ConversionException("Can't adapt generalized triple: " + quad);	
-		}
-	}
-
-	@Override
-	public boolean equals(Object other) {
-		if (other == this)
-			return true;
-		if (other == null)
-			return false;
-		if (!(other instanceof Triple))
-			return false;
-		Triple triple = (Triple) other;
-		return getSubject().equals(triple.getSubject()) && getPredicate().equals(triple.getPredicate())
-				&& getObject().equals(triple.getObject());
-	}
-
-	@Override
-	public int hashCode() {
-		return Objects.hash(getSubject(), getPredicate(), getObject());
-	}
-
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
deleted file mode 100644
index b72ecde..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
+++ /dev/null
@@ -1,64 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.commons.rdf.jena.JenaVariable;
-import org.apache.jena.graph.Node;
-
-public class VariableImpl implements JenaRDFTerm, JenaVariable {
-
-	private Node node;
-
-	VariableImpl(Node node) {	
-		if (! node.isVariable()) {
-			throw new IllegalArgumentException("Node is not a variable: " + node);
-		}
-		this.node = node;
-	}
-
-	@Override
-	public String ntriplesString() {
-		return "?" + getVariableName();
-	}
-
-	@Override
-	public String getVariableName() {
-		return node.getName();
-	}
-
-	@Override
-	public Node asJenaNode() {
-		return node;
-	}
-	
-	@Override
-	public boolean equals(Object obj) {
-		if (obj == this) { 
-			return true;
-		}
-		if (! (obj instanceof JenaVariable)) { 
-			return false;
-		}
-		return Objects.equals(getVariableName(), ((JenaVariable)obj).getVariableName());
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c52979ba/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
index c689d0e..cd57a0e 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
@@ -28,8 +28,9 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.RDFParserBuilder.ParseResult;
 import org.apache.commons.rdf.api.RDFSyntax;
+import org.apache.commons.rdf.experimental.RDFParser.ParseResult;
+import org.apache.commons.rdf.jena.experimental.JenaRDFParser;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -54,7 +55,7 @@ public class TestRDFParserBuilder {
 	@Test
 	public void parseTurtle() throws Exception {
 		Graph g = new JenaRDFTermFactory().createGraph();
-		Future<ParseResult> gFuture = new JenaRDFParserBuilder().contentType(RDFSyntax.TURTLE).source(turtleFile)
+		Future<ParseResult> gFuture = new JenaRDFParser().contentType(RDFSyntax.TURTLE).source(turtleFile)
 				.target(g).parse();
 		gFuture.get(5, TimeUnit.SECONDS);
 		assertEquals(3, g.size());


[22/50] incubator-commonsrdf git commit: Merge branch 'master' into jena

Posted by st...@apache.org.
Merge branch 'master' into jena


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

Branch: refs/heads/master
Commit: 2eb821d65e6512ed160a5b18c0054595a8a006d7
Parents: 5e78763 e0d3191
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 14:24:33 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 14:24:33 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/api/RDFParserBuilder.java       | 479 ----------------
 .../commons/rdf/experimental/RDFParser.java     | 495 +++++++++++++++++
 .../commons/rdf/experimental/package-info.java  |  34 ++
 .../test/resources/example-rdf/example.jsonld   |  25 +
 api/src/test/resources/example-rdf/example.nq   |   3 +
 api/src/test/resources/example-rdf/example.nt   |   2 +
 api/src/test/resources/example-rdf/example.rdf  |  23 +
 api/src/test/resources/example-rdf/example.trig |   3 +
 api/src/test/resources/example-rdf/example.ttl  |   2 +
 .../rdf/simple/AbstractRDFParserBuilder.java    | 541 ------------------
 .../apache/commons/rdf/simple/GraphImpl.java    |  39 +-
 .../commons/rdf/simple/RDFParseException.java   |  50 --
 .../simple/experimental/AbstractRDFParser.java  | 542 +++++++++++++++++++
 .../simple/experimental/RDFParseException.java  |  50 ++
 .../rdf/simple/experimental/package-info.java   |  34 ++
 .../simple/AbstractRDFParserBuilderTest.java    | 253 ---------
 .../rdf/simple/DummyRDFParserBuilder.java       |  12 +-
 .../experimental/AbstractRDFParserTest.java     | 256 +++++++++
 18 files changed, 1497 insertions(+), 1346 deletions(-)
----------------------------------------------------------------------



[48/50] incubator-commonsrdf git commit: More Javadoc..

Posted by st...@apache.org.
More Javadoc..


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

Branch: refs/heads/master
Commit: 1271ae013f1b983fedc64fa3271454d94b1e2c48
Parents: c718800
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 15:14:02 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 15:16:16 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/ConversionException.java       |  3 +++
 .../org/apache/commons/rdf/jena/JenaBlankNode.java  |  2 ++
 .../org/apache/commons/rdf/jena/JenaDataset.java    |  8 +++++++-
 .../commons/rdf/jena/JenaGeneralizedQuadLike.java   |  5 +++--
 .../commons/rdf/jena/JenaGeneralizedTripleLike.java |  7 ++++---
 .../java/org/apache/commons/rdf/jena/JenaGraph.java | 16 +++++++++++-----
 .../java/org/apache/commons/rdf/jena/JenaIRI.java   |  3 ++-
 .../org/apache/commons/rdf/jena/JenaLiteral.java    |  3 ++-
 .../java/org/apache/commons/rdf/jena/JenaQuad.java  |  8 ++++++--
 .../org/apache/commons/rdf/jena/JenaQuadLike.java   | 11 ++++++++++-
 .../org/apache/commons/rdf/jena/JenaRDFTerm.java    | 10 +++++++++-
 .../org/apache/commons/rdf/jena/JenaTriple.java     |  8 ++++++--
 .../org/apache/commons/rdf/jena/JenaTripleLike.java | 15 ++++++++++++++-
 13 files changed, 79 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java b/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
index 990086f..be75427 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
@@ -22,6 +22,7 @@ import org.apache.jena.shared.JenaException;
 
 /**
  * Exception thrown when a problem arises across the Jena-CommonRDF boundary.
+ * <p>
  * This should not happen in well-formed RDF data but, for example, Jena triples
  * allow
  * <a href="http://www.w3.org/TR/rdf11-concepts/#section-generalized-rdf" >
@@ -29,6 +30,8 @@ import org.apache.jena.shared.JenaException;
  */
 
 public class ConversionException extends JenaException {
+	private static final long serialVersionUID = -898179977312382568L;
+
 	public ConversionException() {
 		super();
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
index 4777dda..ef12951 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
@@ -23,6 +23,8 @@ import org.apache.jena.graph.Node;
 
 /**
  * A Jena-backed {@link BlankNode}.
+ * <p>
+ * The underlying Jena {@link Node} can be accessed from {@link #asJenaNode()}.
  * 
  * @see Node#isBlank()
  */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
index ad8c0ca..4a85d34 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
@@ -18,10 +18,16 @@
 
 package org.apache.commons.rdf.jena;
 
+import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.Graph;
 import org.apache.jena.sparql.core.DatasetGraph;
 
-/** Access the Jena graph backing this object */
+/**
+ * A Jena-backed {@link Dataset}.
+ * <p>
+ * The underlying Jena {@link DatasetGraph} can be accessed with
+ * {@link #asJenaDatasetGraph()}.
+ */
 public interface JenaDataset extends org.apache.commons.rdf.api.Dataset {
 	
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
index 272421d..49e1fe9 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
@@ -29,9 +29,10 @@ import org.apache.commons.rdf.api.RDFTerm;
  * some serializations like JSON-LD.
  * <p>
  * Note that unlike {@link Quad}, this type does not have fixed semantics for
- * {@link #equals(Object)} or {@link #hashCode()} beyond object identity.
+ * {@link Object#equals(Object)} or {@link Object#hashCode()} beyond object
+ * identity.
  * 
+ * @see JenaGeneralizedTripleLike
  */
 public interface JenaGeneralizedQuadLike extends JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> {
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
index 68e5264..546089f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
@@ -29,10 +29,11 @@ import org.apache.commons.rdf.api.Triple;
  * JSON-LD.
  * <p>
  * Note that unlike {@link Triple}, this type does not have fixed semantics for
- * {@link #equals(Object)} or {@link #hashCode()} beyond object identity.
+ * {@link Object#equals(Object)} or {@link Object#hashCode()} beyond object
+ * identity.
  * 
+ * @see JenaGeneralizedQuadLike
  */
 public interface JenaGeneralizedTripleLike
-		extends JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> {
-	
+		extends JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> {	
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
index 2ce453f..86b9f29 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
@@ -18,20 +18,26 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.graph.Graph;
+// NOTE: To avoid confusion, don't import Graph as it exists in both APIs
 import org.apache.jena.rdf.model.Model;
+// 
 
-/** Access the Jena graph backing this object */
+/**
+ * A Jena-backed {@link org.apache.commons.rdf.api.Graph}.
+ * <p>
+ * The underlying Jena {@link org.apache.jena.graph.Graph} can be accessed with
+ * {@link #asJenaGraph()}.
+ */
 public interface JenaGraph extends org.apache.commons.rdf.api.Graph {
 	
 	/**
-	 * Return the underlying Jena {@link Graph}.
+	 * Return the underlying Jena {@link org.apache.jena.graph.Graph}.
 	 * <p>
 	 * Changes to the Jena graph are reflected in the Commons RDF graph and vice versa.
 	 * 
-	 * @return A Jena {@link Graph}
+	 * @return A Jena {@link org.apache.jena.graph.Graph}
 	 */
-	public Graph asJenaGraph();
+	public org.apache.jena.graph.Graph asJenaGraph();
 
 	/**
 	 * Return the graph as a Jena {@link Model}.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
index b16acd8..bcc46c8 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.IRI;
@@ -23,6 +22,8 @@ import org.apache.jena.graph.Node;
 
 /**
  * A Jena-backed {@link IRI}.
+ * <p>
+ * The underlying Jena {@link Node} can be accessed from {@link #asJenaNode()}. 
  * 
  * @see Node#isURI()
  */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
index df0c697..96bf530 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.Literal;
@@ -23,6 +22,8 @@ import org.apache.jena.graph.Node;
 
 /**
  * A Jena-backed {@link Literal}
+ *
+ * The underlying Jena {@link Node} can be accessed from {@link #asJenaNode()}.
  * 
  * @see Node#isLiteral()
  */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
index 45d9d2c..b593263 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
@@ -15,14 +15,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.RDFTerm;
 
-/** Access the Jena quad backing this object */
+/** 
+ * A Jena-backed {@link org.apache.commons.rdf.api.Quad}.
+ * <p>
+ * The underlying Jena {@link org.apache.jena.sparql.core.Quad}
+ * can be accessed with {@link #asJenaQuad()}.
+ */
 public interface JenaQuad extends org.apache.commons.rdf.api.Quad, 
 	JenaQuadLike<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI> {	
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
index 015e8c9..e21e670 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
@@ -22,7 +22,16 @@ import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.jena.sparql.core.Quad;
 
-/** Access the Jena quad backing this object */
+/**
+ * A {@link QuadLike} wrapper of a Jena {@link Quad}.
+ * <p>
+ * This is a marker interface common to its specializations {@link JenaQuad} and
+ * {@link JenaGeneralizedQuadLike}.
+ * 
+ * @see JenaQuad
+ * @see JenaGeneralizedQuadLike
+ * 
+ */
 public interface JenaQuadLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> 
 	extends JenaTripleLike<S,P,O>, QuadLike<S,P,O,G> {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
index 623f8b4..0bbe26b 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
@@ -21,7 +21,15 @@ package org.apache.commons.rdf.jena;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.jena.graph.Node;
 
-/** Access the Jena node backing this object */
+/**
+ * A Jena-backed {@link RDFTerm}.
+ * <p>
+ * The underlying Jena {@link Node} can be retrieved with {@link #asJenaNode()}.
+ * 
+ * @see JenaIRI
+ * @see JenaLiteral
+ * @see JenaBlankNode
+ */
 public interface JenaRDFTerm extends RDFTerm {
 	public Node asJenaNode();
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
index b94cc08..d39bec7 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
@@ -15,13 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.RDFTerm;
 
-/** Access the Jena triple backing this object */
+/** 
+ * A Jena-backed {@link org.apache.commons.rdf.api.Triple}.
+ * <p>
+ * The underlying Jena {@link org.apache.jena.graph.Triple}
+ * can be accessed with {@link #asJenaTriple()}.
+ */
 public interface JenaTriple extends org.apache.commons.rdf.api.Triple, JenaTripleLike<BlankNodeOrIRI, IRI, RDFTerm> {
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1271ae01/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
index 4f0deb8..8821c51 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
@@ -19,9 +19,22 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.TripleLike;
 import org.apache.jena.graph.Triple;
 
-/** Access the Jena triple backing this object */
+/**
+ * A {@link TripleLike} wrapper of a Jena {@link Triple}.
+ * <p>
+ * This is a marker interface common to its specializations {@link JenaTriple},
+ * {@link JenaGeneralizedTripleLike}, {@link JenaQuad} and
+ * {@link JenaGeneralizedQuadLike}.
+ * 
+ * @see JenaTriple
+ * @see JenaGeneralizedTripleLike
+ * @see JenaQuad
+ * @see JenaGeneralizedQuadLike
+ * 
+ */
 public interface JenaTripleLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm> 
 	extends org.apache.commons.rdf.api.TripleLike<S,P,O> {
 


[16/50] incubator-commonsrdf git commit: Remove UUID-less helper methods

Posted by st...@apache.org.
Remove UUID-less helper methods


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

Branch: refs/heads/master
Commit: 4e9b11b1f352897f0d7b9fd5334d73f3ace375e0
Parents: 7fb1d88
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 8 15:28:17 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 8 15:29:15 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/impl/JenaFactory.java      | 32 ++++++++------------
 .../commons/rdf/jena/TestBlankNodeJena.java     |  6 ++--
 2 files changed, 16 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4e9b11b1/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index bc0ae0f..7a6a7ab 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -37,6 +37,7 @@ import org.apache.commons.rdf.jena.JenaLiteral;
 import org.apache.commons.rdf.jena.JenaQuad;
 import org.apache.commons.rdf.jena.JenaQuadLike;
 import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.commons.rdf.jena.JenaTripleLike;
 import org.apache.commons.rdf.jena.JenaVariable;
@@ -47,10 +48,18 @@ import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
 
+/**
+ * Construct Jena implementations of Commons RDF.
+ * <p>
+ * This class is primarily an internal helper class, users should instead use
+ * {@link JenaRDFTermFactory}.
+ * <p>
+ * For the purpose of blank node identity, some of 
+ * these methods require a {@link UUID} to use as a salt.
+ * See {@link BlankNode#uniqueReference()} for details.
+ * 
+ */
 public class JenaFactory {
-	public static BlankNode createBlankNode() {
-		return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
-	}
 
 	public static JenaBlankNode createBlankNode(String id, UUID salt) {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
@@ -59,21 +68,12 @@ public class JenaFactory {
 	public static JenaBlankNode createBlankNode(UUID salt) {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
-
-	public static Dataset createDataset() {
-		return createDataset(UUID.randomUUID());
-	}
-	
 	public static Dataset createDataset(UUID salt) {
 		DatasetGraph dg = DatasetGraphFactory.createGeneral();
 		// Or which createMethod() -- a bit confusing with lots of choice..
 		return new DatasetImpl(dg, salt);
 	}
 
-	public static JenaGraph createGraph() {
-		return createGraph(UUID.randomUUID());
-	}
-
 	public static JenaGraph createGraph(UUID salt) {
 		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
 	}
@@ -144,10 +144,6 @@ public class JenaFactory {
 		throw new IllegalArgumentException("Unrecognized node type: " + node);
 	}
 
-	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
-		return new GraphImpl(graph, UUID.randomUUID());
-	}
-
 	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
 		return new GraphImpl(graph, salt);
 	}
@@ -156,10 +152,6 @@ public class JenaFactory {
 		return new GraphImpl(model, salt);
 	}
 
-	public static JenaDataset fromJena(DatasetGraph datasetGraph) {
-		return new DatasetImpl(datasetGraph, UUID.randomUUID());
-	}
-
 	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
 		return new DatasetImpl(datasetGraph, salt);
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4e9b11b1/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
index 10edd09..f37922f 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
@@ -26,12 +26,14 @@ import org.apache.commons.rdf.jena.impl.JenaFactory;
 
 public class TestBlankNodeJena extends AbstractBlankNodeTest {
 
-	
+	/** 
+	 * Fixed salt for the purpose of this test.
+	 */
     private static final UUID SALT = UUID.fromString("ccfde817-55b8-4a5f-bc2d-6bfd8eaa41ce");
 
 	@Override
     protected BlankNode getBlankNode() {
-        return JenaFactory.createBlankNode() ;
+        return JenaFactory.createBlankNode(SALT) ;
     }
     
     @Override


[26/50] incubator-commonsrdf git commit: COMMONSRDF-33 log4j.properties ASF license header

Posted by st...@apache.org.
COMMONSRDF-33 log4j.properties ASF license header


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

Branch: refs/heads/master
Commit: a423c41ac1b280d845a64c0f2494cb6e7f0d4f53
Parents: 059aa82
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 14:57:02 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 14:57:02 2016 +0100

----------------------------------------------------------------------
 jena/src/test/resources/log4j.properties | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a423c41a/jena/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/jena/src/test/resources/log4j.properties b/jena/src/test/resources/log4j.properties
index 5cedb50..794559f 100644
--- a/jena/src/test/resources/log4j.properties
+++ b/jena/src/test/resources/log4j.properties
@@ -1,3 +1,18 @@
+##  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.
 log4j.rootLogger=INFO, stdlog
 
 log4j.appender.stdlog=org.apache.log4j.ConsoleAppender


[43/50] incubator-commonsrdf git commit: avoid 'static' in JenaRDFTermFactory

Posted by st...@apache.org.
avoid 'static' in JenaRDFTermFactory


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

Branch: refs/heads/master
Commit: edc303640de509e838628249b27b344f22fa61ae
Parents: 35e1366
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 14:08:19 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 14:09:40 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 12 ++-----
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  | 26 ++++++++-------
 .../rdf/jena/impl/JenaGeneralizedQuad.java      | 17 +++++-----
 .../commons/rdf/jena/impl/JenaGraphImpl.java    | 33 +++++++++++---------
 4 files changed, 45 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/edc30364/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 10d8fa1..aa4bacf 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -205,7 +205,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @see #fromJena(Node, UUID)
 	 * @see #fromJena(RDFTermFactory, Node)
 	 * 
 	 * @param node
@@ -229,7 +228,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(Node)
-	 * @see #fromJena(Node, UUID)
 	 * 
 	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}.
 	 * @param node
@@ -273,7 +271,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
 	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
@@ -300,7 +297,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
 	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
@@ -357,7 +353,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(org.apache.jena.graph.Triple)
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
 	 *
 	 * @param factory {@link RDFTermFactory} to use for creating the {@link Triple} and its
 	 * {@link RDFTerm}s.
@@ -494,7 +489,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * instance for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
-	 * @see #fromJena(org.apache.jena.sparql.core.Quad, UUID)
 	 * @see #fromJenaGeneralized(org.apache.jena.sparql.core.Quad)
 	 *
 	 * @param factory
@@ -637,7 +631,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param term Commons RDF {@link RDFTerm} to convert
 	 * @return Converted Jena {@link Node}
 	 */
-	public static Node toJena(RDFTerm term) {
+	public Node toJena(RDFTerm term) {
 		if (term == null) {
 			return null;
 		}
@@ -674,7 +668,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param triple Commons RDF {@link Triple} to convert
 	 * @return Converted Jena {@link org.apache.jena.graph.Triple}
 	 */
-	public static org.apache.jena.graph.Triple toJena(Triple triple) {
+	public org.apache.jena.graph.Triple toJena(Triple triple) {
 		if (triple instanceof JenaTriple)
 			return ((JenaTriple) triple).asJenaTriple();
 		return org.apache.jena.graph.Triple.create(
@@ -694,7 +688,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param quad Commons RDF {@link Quad} to convert
 	 * @return Converted Jena {@link org.apache.jena.sparql.core.Quad}
 	 */
-	public static org.apache.jena.sparql.core.Quad toJena(Quad quad) {
+	public org.apache.jena.sparql.core.Quad toJena(Quad quad) {
 		if (quad instanceof JenaQuad) {
 			return ((JenaQuad) quad).asJenaQuad();
 		}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/edc30364/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
index 4cd6bd1..76b018c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -44,25 +44,27 @@ public class JenaDatasetImpl implements JenaDataset {
 
 	private DatasetGraph graph;
 	private UUID salt;
+	private JenaRDFTermFactory factory;
 
-	/* package */ JenaDatasetImpl(DatasetGraph graph, UUID salt) {
+	JenaDatasetImpl(DatasetGraph graph, UUID salt) {
 		this.graph = graph;
 		this.salt = salt;
+		this.factory = new JenaRDFTermFactory(salt);
 	}
 
 	@Override
 	public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		graph.add(				
 				org.apache.jena.sparql.core.Quad.create(
-				JenaRDFTermFactory.toJena(graphName),
-				JenaRDFTermFactory.toJena(subject),				
-				JenaRDFTermFactory.toJena(predicate), 
-				JenaRDFTermFactory.toJena(object)));
+				factory.toJena(graphName),
+				factory.toJena(subject),				
+				factory.toJena(predicate), 
+				factory.toJena(object)));
 	}
 
 	@Override
 	public void add(Quad quad) {
-		graph.add(JenaRDFTermFactory.toJena(quad));
+		graph.add(factory.toJena(quad));
 	}
 	
 	@Override
@@ -92,25 +94,25 @@ public class JenaDatasetImpl implements JenaDataset {
 
 	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
 		// In theory we could have done:
-		//   JenaRDFTermFactory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
+		//   factory.toJena(graphName.orElse(JenaFactory::createAnyVariable))
 		// but because of generics casting rules that doesn't work :(						
 
 		if (graphName == null) {
 			return ANY;
 		}
 		// null: default graph
-		return JenaRDFTermFactory.toJena(graphName.orElse(null));
+		return factory.toJena(graphName.orElse(null));
 	}
 
 	private Node toJenaPattern(RDFTerm term) {
 		if (term == null)
 			return ANY;
-		return JenaRDFTermFactory.toJena(term);
+		return factory.toJena(term);
 	}
 
 	@Override
 	public boolean contains(Quad quad) {
-		return graph.contains(JenaRDFTermFactory.toJena(quad));
+		return graph.contains(factory.toJena(quad));
 	}
 
 	@Override
@@ -124,7 +126,7 @@ public class JenaDatasetImpl implements JenaDataset {
 
 	@Override
 	public void remove(Quad quad) {
-		graph.delete(JenaRDFTermFactory.toJena(quad));
+		graph.delete(factory.toJena(quad));
 	}
 
 	@Override
@@ -167,7 +169,7 @@ public class JenaDatasetImpl implements JenaDataset {
 	
 	@Override
 	public Optional<Graph> getGraph(BlankNodeOrIRI graphName) {
-		GraphView gv = GraphView.createNamedGraph(graph, JenaRDFTermFactory.toJena(graphName));
+		GraphView gv = GraphView.createNamedGraph(graph, factory.toJena(graphName));
 		return Optional.of(new JenaGraphImpl(gv, salt));
 	}	
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/edc30364/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
index 5456ec9..cad2355 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
@@ -84,22 +84,25 @@ public class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends
 
 	@Override
 	public org.apache.jena.sparql.core.Quad asJenaQuad() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory();
 		if (quad == null) {
 			quad = org.apache.jena.sparql.core.Quad.create(
-					JenaRDFTermFactory.toJena(graphName.orElse(null)),
-					JenaRDFTermFactory.toJena(subject), 
-					JenaRDFTermFactory.toJena(predicate),
-					JenaRDFTermFactory.toJena(object));
+					factory.toJena(graphName.orElse(null)),
+					factory.toJena(subject), 
+					factory.toJena(predicate),
+					factory.toJena(object));
 		}
 		return quad;
 	}
 
 	@Override
 	public org.apache.jena.graph.Triple asJenaTriple() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory();
 		if (triple == null) {
-			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject), 
-				JenaRDFTermFactory.toJena(predicate),
-				JenaRDFTermFactory.toJena(object));
+			triple = org.apache.jena.graph.Triple.create(
+				factory.toJena(subject), 
+				factory.toJena(predicate),
+				factory.toJena(object));
 		}
 		return triple;
 	}	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/edc30364/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
index 49a09ae..89162e0 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
@@ -37,32 +37,35 @@ import org.apache.jena.riot.RDFDataMgr;
 
 public class JenaGraphImpl implements JenaGraph {
 
-	private org.apache.jena.graph.Graph graph;
-	private UUID salt;
+	private final org.apache.jena.graph.Graph graph;
+	private final UUID salt;
+	private final transient JenaRDFTermFactory factory;
 	private Model model;
 
 	JenaGraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
 		this.graph = graph;
 		this.salt = salt;
+		this.factory = new JenaRDFTermFactory(salt);
 	}
 
 	JenaGraphImpl(Model model, UUID salt) {
 		this.model = model;
 		this.graph = model.getGraph();
 		this.salt = salt;
+		this.factory = new JenaRDFTermFactory(salt);
 	}
 
 	@Override
 	public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		graph.add(org.apache.jena.graph.Triple.create(
-				JenaRDFTermFactory.toJena(subject),
-				JenaRDFTermFactory.toJena(predicate), 
-				JenaRDFTermFactory.toJena(object)));
+				factory.toJena(subject),
+				factory.toJena(predicate), 
+				factory.toJena(object)));
 	}
 
 	@Override
 	public void add(Triple triple) {
-		graph.add(JenaRDFTermFactory.toJena(triple));
+		graph.add(factory.toJena(triple));
 	}
 
 	@Override
@@ -83,27 +86,27 @@ public class JenaGraphImpl implements JenaGraph {
 	@Override
 	public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return graph.contains(
-				JenaRDFTermFactory.toJena(subject), 
-				JenaRDFTermFactory.toJena(predicate),
-				JenaRDFTermFactory.toJena(object));
+				factory.toJena(subject), 
+				factory.toJena(predicate),
+				factory.toJena(object));
 	}
 
 	@Override
 	public boolean contains(Triple triple) {
-		return graph.contains(JenaRDFTermFactory.toJena(triple));
+		return graph.contains(factory.toJena(triple));
 	}
 
 	@Override
 	public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		graph.delete(org.apache.jena.graph.Triple.create(
-				JenaRDFTermFactory.toJena(subject),
-				JenaRDFTermFactory.toJena(predicate), 
-				JenaRDFTermFactory.toJena(object)));
+				factory.toJena(subject),
+				factory.toJena(predicate), 
+				factory.toJena(object)));
 	}
 
 	@Override
 	public void remove(Triple triple) {
-		graph.delete(JenaRDFTermFactory.toJena(triple));
+		graph.delete(factory.toJena(triple));
 	}
 
 	@Override
@@ -127,7 +130,7 @@ public class JenaGraphImpl implements JenaGraph {
 	private Node toJenaAny(RDFTerm term) {
 		if (term == null)
 			return Node.ANY;
-		return JenaRDFTermFactory.toJena(term);
+		return factory.toJena(term);
 	}
 
 	@Override


[37/50] incubator-commonsrdf git commit: Javadoc link

Posted by st...@apache.org.
Javadoc link


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

Branch: refs/heads/master
Commit: cfbe28fcb0192de2ab877a4e4c665f5cd8b23532
Parents: 8181850
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 16:12:36 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 16:12:36 2016 +0100

----------------------------------------------------------------------
 README.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/cfbe28fc/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index bf745a1..15a7723 100644
--- a/README.md
+++ b/README.md
@@ -13,8 +13,9 @@ Jena](http://jena.apache.org/) as well as for other libraries such as
 
 The main motivation behind this simple library is to revise an historical
 incompatibility issue between these toolkits. This library does not pretend to
-be a generic API wrapping those libraries, but is a set of common Java
-interfaces for the RDF 1.1 concepts, e.g. `IRI`, `BlankNode`, `Graph`,
+be a generic API wrapping those libraries, but is a 
+[set of common Java interfaces](http://commonsrdf.incubator.apache.org/apidocs/index.html?org/apache/commons/rdf/api/package-summary.html)
+for the RDF 1.1 concepts, e.g. `IRI`, `BlankNode`, `Graph`,
 accompanied with unit test cases for their expected behaviour, and a `simple`
 implementation, which main purpose is to clarify the tests and interfaces.
 


[44/50] incubator-commonsrdf git commit: avoid javadoc warnings

Posted by st...@apache.org.
avoid javadoc warnings


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

Branch: refs/heads/master
Commit: a072cb96943bc2d72d905502baa5c1212a10c18e
Parents: edc3036
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 14:25:24 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 14:25:24 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaDataset.java    |  6 ++-
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 41 ++++++++------------
 2 files changed, 20 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a072cb96/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
index f312c2a..ad8c0ca 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
@@ -36,8 +36,10 @@ public interface JenaDataset extends org.apache.commons.rdf.api.Dataset {
 	public DatasetGraph asJenaDatasetGraph();
 	
 	/**
-	 * Return a union graph view of this dataset. <p The <em>union graph</em>
-	 * contains triples in any graph (including the default graph).
+	 * Return a union graph view of this dataset.
+	 * <p>
+	 * The <em>union graph</em> contains triples in any graph (including the
+	 * default graph).
 	 * <p>
 	 * Changes in the union graph are reflected in the Commons RDF dataset and
 	 * vice versa. Triples added to the graph are added to the default graph.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a072cb96/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index aa4bacf..8b53c76 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -76,10 +76,13 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	/**
 	 * Create a JenaRDFTermFactory.
 	 * <p>
-	 * This constructor will use the specified {@link UUID} as a salt 
-	 * for the purposes of {@link BlankNode} identity.
+	 * This constructor will use the specified {@link UUID} as a salt for
+	 * the purposes of {@link BlankNode} identity, and should only be used in
+	 * cases where predictable and consistent
+	 * {@link BlankNode#uniqueReference()} are important.
 	 * 
-	 * @param salt {@link UUID} to use as salt
+	 * @param salt
+	 *            {@link UUID} to use as salt for {@link BlankNode} equality
 	 */	
 	public JenaRDFTermFactory(UUID salt) {
 		this.salt = salt;
@@ -143,13 +146,10 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * <p>
 	 * The <em>generalized triple</em> supports any {@link RDFTerm} as its
 	 * {@link TripleLike#getSubject()} {@link TripleLike#getPredicate()} or
-	 * {@link TripleLike#getObject()}, including {@link JenaAny} or
-	 * {@link JenaVariable}.
+	 * {@link TripleLike#getObject()}.
 	 *
 	 * @see #createTriple(BlankNodeOrIRI, IRI, RDFTerm)
 	 * @see #createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
-	 * @see #createAnyVariable()
-	 * @see #createVariable(String)
 	 * 
 	 * @param subject
 	 *            The subject of the statement
@@ -171,13 +171,10 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * <p>
 	 * The <em>generalized quad</em> supports any {@link RDFTerm} as its
 	 * {@link QuadLike#getSubject()} {@link QuadLike#getPredicate()},
-	 * {@link QuadLike#getObject()} or {@link QuadLike#getObject()} including
-	 * {@link JenaAny} or {@link JenaVariable}.
+	 * {@link QuadLike#getObject()} or {@link QuadLike#getObject()}.
 	 * 
 	 * @see #createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)
 	 * @see #createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
-	 * @see #createAnyVariable()
-	 * @see #createVariable(String)
 	 * 
 	 * @param subject
 	 *            The subject of the statement
@@ -212,8 +209,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *            <code>true</code>.
 	 * @return Adapted {@link JenaRDFTerm}
 	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
-	 *             if the node is not {@link Node#isConcrete()},
-	 *             is {@link Node#isVariable()}, or is {@link Node.ANY}
+	 *             if the node is not concrete or represents a variable in Jena.
 	 */
 	public JenaRDFTerm fromJena(Node node) throws ConversionException {
 		return JenaFactory.fromJena(node, getSalt());
@@ -233,9 +229,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
 	 *            <code>true</code>.
-	 * @return Adapted {@link RDFTerm}            
-	 * @throws ConversionException
-	 *             if the node is not concrete.
+	 * @return Adapted {@link RDFTerm}
+	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
+	 *             if the node is not concrete or represents a variable in Jena.
 	 */
 	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
 		if (node == null) {
@@ -288,8 +284,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * Adapt a generalized Jena {@link org.apache.jena.graph.Triple} to a CommonsRDF {@link TripleLike}.
 	 * <p>
 	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}, including 
-	 * the extensions {@link JenaAny} and {@link JenaVariable}.
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}.
 	 * <p>
 	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use a {@link UUID} salt from this
@@ -318,9 +313,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link QuadLike#getGraphName()}, 
 	 * {@link QuadLike#getSubject()}
 	 * {@link QuadLike#getPredicate()} or 
-	 * {@link QuadLike#getObject()}, including 
-	 * the extensions 
-	 * {@link JenaAny} and {@link JenaVariable}. 
+	 * {@link QuadLike#getObject()}. 
 	 * <p>
 	 * If the Jena quad contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use a {@link UUID} salt from this
@@ -721,10 +714,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link BlankNode#uniqueReference()} for details.
 	 * <p>
 	 * This salt can be used with the constructor 
-	 * {@link JenaRDFTermFactory#JenaRDFTermFactory(UUID)} or
-	 * methods like {@link #fromJena(Node, UUID)} and 
-	 * {@link #fromJena(org.apache.jena.graph.Triple, UUID)}
-	 * to ensure consistent {@link BlankNode}s. 
+	 * {@link JenaRDFTermFactory#JenaRDFTermFactory(UUID)}
+	 * if consistent or reproducible {@link BlankNode}s are desirable. 
 	 * 
 	 * @return The {@link UUID} used as salt
 	 */


[06/50] incubator-commonsrdf git commit: RDFTermFactoryJena -> JenaRDFTermFactory

Posted by st...@apache.org.
RDFTermFactoryJena -> JenaRDFTermFactory

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

Branch: refs/heads/master
Commit: 76dbe500114bba89a9eef542c432dddb83c4c16b
Parents: 0f34972
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 14:07:55 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 14:07:55 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFParserBuilder.java  |   6 +-
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 543 +++++++++++++++++++
 .../commons/rdf/jena/RDFTermFactoryJena.java    | 543 -------------------
 .../rdf/jena/impl/GeneralizedTripleImpl.java    |   6 +-
 .../apache/commons/rdf/jena/impl/GraphImpl.java |  32 +-
 .../apache/commons/rdf/jena/impl/QuadImpl.java  |  10 +-
 .../commons/rdf/jena/impl/TripleImpl.java       |   6 +-
 .../commons/rdf/jena/TestBlankNodeJena.java     |   8 +-
 .../apache/commons/rdf/jena/TestGraphJena.java  |   2 +-
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |   4 +-
 .../commons/rdf/jena/TestRDFParserBuilder.java  |   2 +-
 .../rdf/jena/TestRDFTermFactoryJena.java        |   2 +-
 12 files changed, 584 insertions(+), 580 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
index e0eb19d..9b5ac29 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
@@ -35,7 +35,7 @@ import org.apache.jena.riot.system.StreamRDFLib;
 public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParserBuilder> implements RDFParserBuilder {
 
 	protected RDFTermFactory createRDFTermFactory() {
-		return new RDFTermFactoryJena();
+		return new JenaRDFTermFactory();
 	}
 
 	@Override
@@ -45,10 +45,10 @@ public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParser
 			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
 			dest = StreamRDFLib.graph(jenaGraph);
 		} else {
-			dest = RDFTermFactoryJena.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
+			dest = JenaRDFTermFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
 		}
 
-		Lang lang = getContentTypeSyntax().flatMap(RDFTermFactoryJena::rdfSyntaxToLang).orElse(null);
+		Lang lang = getContentTypeSyntax().flatMap(JenaRDFTermFactory::rdfSyntaxToLang).orElse(null);
 		String baseStr = getBase().map(IRI::getIRIString).orElse(null);
 
 		if (getSourceIri().isPresent()) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
new file mode 100644
index 0000000..f31173b
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -0,0 +1,543 @@
+/**
+ * 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.jena;
+
+import java.util.Optional;
+import java.util.UUID;
+import java.util.function.Consumer;
+
+import org.apache.commons.rdf.api.BlankNode;
+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.RDFSyntax;
+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.jena.impl.JenaFactory;
+import org.apache.jena.datatypes.RDFDatatype;
+import org.apache.jena.datatypes.xsd.XSDDatatype;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFLanguages;
+import org.apache.jena.riot.system.StreamRDF;
+import org.apache.jena.riot.system.StreamRDFBase;
+import org.apache.jena.sparql.graph.GraphFactory;
+
+/**
+ * RDFTermFactory with Jena-backed objects.
+ * <p>
+ * This factory can also convert existing objects from/to Jena with methods like
+ * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
+ * 
+ * @see RDFTermFactory
+ */
+public final class JenaRDFTermFactory implements RDFTermFactory {
+
+	private UUID salt;
+
+	public JenaRDFTermFactory() {
+		this.salt = UUID.randomUUID();
+	}
+
+	public JenaRDFTermFactory(UUID salt) {
+		this.salt = salt;
+	}
+
+	@Override
+	public JenaBlankNode createBlankNode() {
+		return JenaFactory.createBlankNode(salt);
+	}
+
+	@Override
+	public JenaBlankNode createBlankNode(String name) {
+		return JenaFactory.createBlankNode(name, salt);
+	}
+
+	@Override
+	public JenaGraph createGraph() {
+		return JenaFactory.createGraph(salt);
+	}
+
+	@Override
+	public JenaIRI createIRI(String iri) {
+		validateIRI(iri);
+		return JenaFactory.createIRI(iri);
+	}
+
+	@Override
+	public JenaLiteral createLiteral(String lexicalForm) {
+		return JenaFactory.createLiteral(lexicalForm);
+	}
+
+	@Override
+	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
+		return JenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
+	}
+
+	@Override
+	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
+		validateLang(languageTag);
+		return JenaFactory.createLiteralLang(lexicalForm, languageTag);
+	}
+
+	@Override
+	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return JenaFactory.createTriple(subject, predicate, object);
+	}
+	
+	/**
+	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike} statement.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDFTermFactory} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param subject The subject of the statement
+	 *            
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(
+			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return JenaFactory.createGeneralizedTriple(subject, predicate, object);
+	}
+
+	/**
+	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
+	 * <p>
+	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
+	 * If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
+	 * the returned value is a {@link BlankNode}, which will use a {@link UUID}
+	 * salt from this {@link JenaRDFTermFactory} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @see #fromJena(Node, UUID)
+	 * @see #fromJena(RDFTermFactory, Node)
+	 * 
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @throws ConversionException
+	 *             if the node is not concrete.
+	 */
+	public JenaRDFTerm fromJena(Node node) throws ConversionException {
+		return JenaFactory.fromJena(node, salt);
+	}
+
+	/**
+	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
+	 * <p>
+	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}
+	 * . If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
+	 * the returned value is a {@link BlankNode}, which will use the provided
+	 * {@link UUID} salt in combination with {@link Node#getBlankNodeId()} for
+	 * the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @see #fromJena(Node)
+	 * @see #fromJena(RDFTermFactory, Node)
+	 * 
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @param salt
+	 *            UUID salt for the purpose of
+	 *            {@link BlankNode#uniqueReference()}
+	 * @throws ConversionException
+	 *             if the node is not concrete.
+	 */
+	public static JenaRDFTerm fromJena(Node node, UUID salt) {
+		return JenaFactory.fromJena(node, salt);
+	}
+	
+	/**
+	 * Convert from Jena {@link Node} to any RDFCommons implementation.
+	 * <p>
+	 * Note that if the {@link Node#isBlank()}, then the factory's 
+	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDFTermFactory} instance
+	 * for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(Node)
+	 * @see #fromJena(Node, UUID)
+	 * 
+	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}.
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @throws ConversionException
+	 *             if the node is not concrete.
+	 */
+	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
+		if (node == null) {
+			return null;
+		}
+		if (factory instanceof JenaRDFTermFactory) {
+			// No need to convert, just wrap
+			return ((JenaRDFTermFactory) factory).fromJena(node);
+		}
+		if (node.isURI())
+			return factory.createIRI(node.getURI());
+		if (node.isLiteral()) {
+			String lang = node.getLiteralLanguage();
+			if (lang != null && !lang.isEmpty())
+				return factory.createLiteral(node.getLiteralLexicalForm(), lang);
+			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
+				return factory.createLiteral(node.getLiteralLexicalForm());
+			IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
+			return factory.createLiteral(node.getLiteralLexicalForm(), dt);
+		}
+		if (node.isBlank())
+			// The factory
+			return factory.createBlankNode(node.getBlankNodeLabel());
+		throw new ConversionException("Node is not a concrete RDF Term: " + node);
+	}	
+	
+	/**
+	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * <p>
+	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDFTermFactory} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @return Adapted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
+	 */
+	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
+		return JenaFactory.fromJena(triple, salt);
+	}
+
+
+	/**
+	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt 
+	 * in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @param salt
+	 *            UUID salt for the purpose of
+	 *            {@link BlankNode#uniqueReference()}
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		return JenaFactory.fromJenaGeneralized(triple, salt);
+	}
+	
+	/**
+	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDFTermFactory} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
+		return JenaFactory.fromJenaGeneralized(triple, salt);
+	}
+	
+	
+	/**
+	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * <p>
+	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided a {@link UUID} salt in
+	 * combination with {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @param salt
+	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
+	 */
+	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		return JenaFactory.fromJena(triple, salt);
+	}
+
+	/**
+	 * Convert from Jena {@link org.apache.jena.graph.Triple} to any RDFCommons
+	 * implementation.
+	 * <p>
+	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
+	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDFTermFactory} instance
+	 * for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(org.apache.jena.graph.Triple)
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 *
+	 * @param factory {@link RDFTermFactory} to use for creating the {@link Triple} and its
+	 * {@link RDFTerm}s.
+	 * @param triple
+	 *            Jena triple
+	 * @return Converted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
+	 */
+	public static Triple fromJena(RDFTermFactory factory, org.apache.jena.graph.Triple triple) 
+			throws ConversionException{
+		if (factory instanceof JenaRDFTermFactory) {
+			// No need to convert, just wrap
+			return ((JenaRDFTermFactory) factory).fromJena(triple);
+		}
+		BlankNodeOrIRI subject;
+		IRI predicate;
+		try {
+			subject = (BlankNodeOrIRI) fromJena(factory, triple.getSubject());
+			predicate = (IRI) fromJena(factory, triple.getPredicate());
+		} catch (ClassCastException ex) {
+			throw new ConversionException("Can't convert generalized triple: " + triple, ex);
+		}
+		RDFTerm object = fromJena(factory, triple.getObject());
+		return factory.createTriple(subject, predicate, object);
+	}
+
+	/**
+	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * <p>
+	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @return Adapted quad
+	 */	
+	public Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
+		return JenaFactory.fromJena(quad, salt);
+	}
+	
+	/**
+	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * <p>
+	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @param salt
+	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted quad
+	 */		
+	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		return JenaFactory.fromJena(quad, salt);
+	}
+
+	/**
+	 * Adapt an existing Jena Graph to CommonsRDF {@link Graph}. This does not
+	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
+	 * graph.
+	 */
+	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
+		// NOTE: This generates a new UUID salt per graph
+		return JenaFactory.fromJena(graph);
+	}
+	
+
+
+	/**
+	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
+	 * if the factory is a RDFTermFactoryJena. Use
+	 * {@link #fromJena(org.apache.jena.graph.Graph)} for a wrapper.
+	 */
+	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
+		if (factory instanceof JenaRDFTermFactory) {
+			// No need to convert, just wrap
+			return fromJena(graph);
+		}
+
+		Graph g = factory.createGraph();
+		graph.find(Node.ANY, Node.ANY, Node.ANY).forEachRemaining(t -> {
+			g.add(fromJena(factory, t));
+		});
+		return g;
+	}
+
+
+	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
+		if (factory instanceof JenaRDFTermFactory) {
+			// No need to convert, just wrap
+			return ((JenaRDFTermFactory) factory).fromJena(quad);
+		}
+		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
+		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));
+		IRI predicate = (IRI) (fromJena(factory, quad.getPredicate()));
+		RDFTerm object = fromJena(factory, quad.getObject());
+		return factory.createQuad(graphName, subject, predicate, object);
+	}
+
+	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
+		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
+	}
+
+	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
+		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
+	}
+
+	/**
+	 * Create a {@link StreamRDF} that inserts into any RDFCommons
+	 * implementation of Graph
+	 */
+	public static StreamRDF streamJenaToCommonsRDF(RDFTermFactory factory, Consumer<Quad> consumer) {
+		return new StreamRDFBase() {
+			@Override
+			public void quad(org.apache.jena.sparql.core.Quad quad) {
+				consumer.accept(fromJena(factory, quad));
+			}
+		};
+	}
+
+	/**
+	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
+	 * originally, return that original object else create a copy using Jena
+	 * objects.
+	 */
+	public static org.apache.jena.graph.Graph toJena(Graph graph) {
+		if (graph instanceof JenaGraph)
+			return ((JenaGraph) graph).asJenaGraph();
+		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
+		graph.stream().forEach(t -> g.add(toJena(t)));
+		return g;
+	}
+
+	/**
+	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
+	 * originally, return that original object, else create a copy using Jena
+	 * objects.
+	 */
+	public static Node toJena(RDFTerm term) {
+		if (term == null) {
+			return null;
+		}
+		if (term instanceof JenaRDFTerm)
+			// TODO: What if it's a BlankNodeImpl with
+			// a different salt? Do we need to rewrite the
+			// jena blanknode identifier?
+			return ((JenaRDFTerm) term).asJenaNode();
+
+		if (term instanceof IRI)
+			return NodeFactory.createURI(((IRI) term).getIRIString());
+
+		if (term instanceof Literal) {
+			Literal lit = (Literal) term;
+			RDFDatatype dt = NodeFactory.getType(lit.getDatatype().getIRIString());
+			String lang = lit.getLanguageTag().orElse("");
+			return NodeFactory.createLiteral(lit.getLexicalForm(), lang, dt);
+		}
+
+		if (term instanceof BlankNode) {
+			String id = ((BlankNode) term).uniqueReference();
+			return NodeFactory.createBlankNode(id);
+		}
+		throw new ConversionException("Not a concrete RDF Term: " + term);
+	}
+
+	/**
+	 * Convert a CommonsRDF Triple to a Jena Triple. If the Triple was from Jena
+	 * originally, return that original object else create a copy using Jena
+	 * objects.
+	 */
+	public static org.apache.jena.graph.Triple toJena(Triple triple) {
+		if (triple instanceof JenaTriple)
+			return ((JenaTriple) triple).asJenaTriple();
+		return new org.apache.jena.graph.Triple(
+				toJena(triple.getSubject()), 
+				toJena(triple.getPredicate()),
+				toJena(triple.getObject()));
+	}
+
+	// Some simple validations - full IRI parsing is not cheap.
+	private static void validateIRI(String iri) {
+		if (iri.contains(" "))
+			throw new IllegalArgumentException();
+		if (iri.contains("<"))
+			throw new IllegalArgumentException();
+		if (iri.contains(">"))
+			throw new IllegalArgumentException();
+	}
+
+	private static void validateLang(String languageTag) {
+		if (languageTag.contains(" "))
+			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
deleted file mode 100644
index 760d911..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
+++ /dev/null
@@ -1,543 +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.commons.rdf.jena;
-
-import java.util.Optional;
-import java.util.UUID;
-import java.util.function.Consumer;
-
-import org.apache.commons.rdf.api.BlankNode;
-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.RDFSyntax;
-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.jena.impl.JenaFactory;
-import org.apache.jena.datatypes.RDFDatatype;
-import org.apache.jena.datatypes.xsd.XSDDatatype;
-import org.apache.jena.graph.Node;
-import org.apache.jena.graph.NodeFactory;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFLanguages;
-import org.apache.jena.riot.system.StreamRDF;
-import org.apache.jena.riot.system.StreamRDFBase;
-import org.apache.jena.sparql.graph.GraphFactory;
-
-/**
- * RDFTermFactory with Jena-backed objects.
- * <p>
- * This factory can also convert existing objects from/to Jena with methods like
- * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
- * 
- * @see RDFTermFactory
- */
-public final class RDFTermFactoryJena implements RDFTermFactory {
-
-	private UUID salt;
-
-	public RDFTermFactoryJena() {
-		this.salt = UUID.randomUUID();
-	}
-
-	public RDFTermFactoryJena(UUID salt) {
-		this.salt = salt;
-	}
-
-	@Override
-	public JenaBlankNode createBlankNode() {
-		return JenaFactory.createBlankNode(salt);
-	}
-
-	@Override
-	public JenaBlankNode createBlankNode(String name) {
-		return JenaFactory.createBlankNode(name, salt);
-	}
-
-	@Override
-	public JenaGraph createGraph() {
-		return JenaFactory.createGraph(salt);
-	}
-
-	@Override
-	public JenaIRI createIRI(String iri) {
-		validateIRI(iri);
-		return JenaFactory.createIRI(iri);
-	}
-
-	@Override
-	public JenaLiteral createLiteral(String lexicalForm) {
-		return JenaFactory.createLiteral(lexicalForm);
-	}
-
-	@Override
-	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
-		return JenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
-	}
-
-	@Override
-	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
-		validateLang(languageTag);
-		return JenaFactory.createLiteralLang(lexicalForm, languageTag);
-	}
-
-	@Override
-	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return JenaFactory.createTriple(subject, predicate, object);
-	}
-	
-	/**
-	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike} statement.
-	 * <p>
-	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
-	 * <p>
-	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link RDFTermFactoryJena} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
-	 * 
-	 * @param subject The subject of the statement
-	 *            
-	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
-	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
-	 *         {@link Triple#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete
-	 */
-	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(
-			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return JenaFactory.createGeneralizedTriple(subject, predicate, object);
-	}
-
-	/**
-	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
-	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
-	 * If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
-	 * the returned value is a {@link BlankNode}, which will use a {@link UUID}
-	 * salt from this {@link RDFTermFactoryJena} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @see #fromJena(Node, UUID)
-	 * @see #fromJena(RDFTermFactory, Node)
-	 * 
-	 * @param node
-	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
-	 *            <code>true</code>.
-	 * @throws ConversionException
-	 *             if the node is not concrete.
-	 */
-	public JenaRDFTerm fromJena(Node node) throws ConversionException {
-		return JenaFactory.fromJena(node, salt);
-	}
-
-	/**
-	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
-	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}
-	 * . If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
-	 * the returned value is a {@link BlankNode}, which will use the provided
-	 * {@link UUID} salt in combination with {@link Node#getBlankNodeId()} for
-	 * the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @see #fromJena(Node)
-	 * @see #fromJena(RDFTermFactory, Node)
-	 * 
-	 * @param node
-	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
-	 *            <code>true</code>.
-	 * @param salt
-	 *            UUID salt for the purpose of
-	 *            {@link BlankNode#uniqueReference()}
-	 * @throws ConversionException
-	 *             if the node is not concrete.
-	 */
-	public static JenaRDFTerm fromJena(Node node, UUID salt) {
-		return JenaFactory.fromJena(node, salt);
-	}
-	
-	/**
-	 * Convert from Jena {@link Node} to any RDFCommons implementation.
-	 * <p>
-	 * Note that if the {@link Node#isBlank()}, then the factory's 
-	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDFTermFactory} instance
-	 * for multiple conversion sessions.
-	 * 
-	 * @see #fromJena(Node)
-	 * @see #fromJena(Node, UUID)
-	 * 
-	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}.
-	 * @param node
-	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
-	 *            <code>true</code>.
-	 * @throws ConversionException
-	 *             if the node is not concrete.
-	 */
-	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
-		if (node == null) {
-			return null;
-		}
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return ((RDFTermFactoryJena) factory).fromJena(node);
-		}
-		if (node.isURI())
-			return factory.createIRI(node.getURI());
-		if (node.isLiteral()) {
-			String lang = node.getLiteralLanguage();
-			if (lang != null && !lang.isEmpty())
-				return factory.createLiteral(node.getLiteralLexicalForm(), lang);
-			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
-				return factory.createLiteral(node.getLiteralLexicalForm());
-			IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
-			return factory.createLiteral(node.getLiteralLexicalForm(), dt);
-		}
-		if (node.isBlank())
-			// The factory
-			return factory.createBlankNode(node.getBlankNodeLabel());
-		throw new ConversionException("Node is not a concrete RDF Term: " + node);
-	}	
-	
-	/**
-	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
-	 * <p>
-	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link RDFTermFactoryJena} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @return Adapted triple
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete or the triple
-	 *             is a generalized triple
-	 */
-	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return JenaFactory.fromJena(triple, salt);
-	}
-
-
-	/**
-	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
-	 * <p>
-	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
-	 * <p>
-	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt 
-	 * in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @param salt
-	 *            UUID salt for the purpose of
-	 *            {@link BlankNode#uniqueReference()}
-	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
-	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
-	 *         {@link Triple#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete
-	 */
-	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(triple, salt);
-	}
-	
-	/**
-	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
-	 * <p>
-	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
-	 * <p>
-	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link RDFTermFactoryJena} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
-	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
-	 *         {@link Triple#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete
-	 */
-	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(triple, salt);
-	}
-	
-	
-	/**
-	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
-	 * <p>
-	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided a {@link UUID} salt in
-	 * combination with {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @param salt
-	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted triple
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete or the triple
-	 *             is a generalized triple
-	 */
-	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		return JenaFactory.fromJena(triple, salt);
-	}
-
-	/**
-	 * Convert from Jena {@link org.apache.jena.graph.Triple} to any RDFCommons
-	 * implementation.
-	 * <p>
-	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
-	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDFTermFactory} instance
-	 * for multiple conversion sessions.
-	 * 
-	 * @see #fromJena(org.apache.jena.graph.Triple)
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 *
-	 * @param factory {@link RDFTermFactory} to use for creating the {@link Triple} and its
-	 * {@link RDFTerm}s.
-	 * @param triple
-	 *            Jena triple
-	 * @return Converted triple
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete or the triple
-	 *             is a generalized triple
-	 */
-	public static Triple fromJena(RDFTermFactory factory, org.apache.jena.graph.Triple triple) 
-			throws ConversionException{
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return ((RDFTermFactoryJena) factory).fromJena(triple);
-		}
-		BlankNodeOrIRI subject;
-		IRI predicate;
-		try {
-			subject = (BlankNodeOrIRI) fromJena(factory, triple.getSubject());
-			predicate = (IRI) fromJena(factory, triple.getPredicate());
-		} catch (ClassCastException ex) {
-			throw new ConversionException("Can't convert generalized triple: " + triple, ex);
-		}
-		RDFTerm object = fromJena(factory, triple.getObject());
-		return factory.createTriple(subject, predicate, object);
-	}
-
-	/**
-	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
-	 * <p>
-	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link RDFTermFactoryJena} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param quad
-	 *            Jena quad
-	 * @return Adapted quad
-	 */	
-	public Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		return JenaFactory.fromJena(quad, salt);
-	}
-	
-	/**
-	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
-	 * <p>
-	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param quad
-	 *            Jena quad
-	 * @param salt
-	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted quad
-	 */		
-	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return JenaFactory.fromJena(quad, salt);
-	}
-
-	/**
-	 * Adapt an existing Jena Graph to CommonsRDF {@link Graph}. This does not
-	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
-	 * graph.
-	 */
-	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-		// NOTE: This generates a new UUID salt per graph
-		return JenaFactory.fromJena(graph);
-	}
-	
-
-
-	/**
-	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
-	 * if the factory is a RDFTermFactoryJena. Use
-	 * {@link #fromJena(org.apache.jena.graph.Graph)} for a wrapper.
-	 */
-	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return fromJena(graph);
-		}
-
-		Graph g = factory.createGraph();
-		graph.find(Node.ANY, Node.ANY, Node.ANY).forEachRemaining(t -> {
-			g.add(fromJena(factory, t));
-		});
-		return g;
-	}
-
-
-	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return ((RDFTermFactoryJena) factory).fromJena(quad);
-		}
-		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
-		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));
-		IRI predicate = (IRI) (fromJena(factory, quad.getPredicate()));
-		RDFTerm object = fromJena(factory, quad.getObject());
-		return factory.createQuad(graphName, subject, predicate, object);
-	}
-
-	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
-		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
-	}
-
-	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
-		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
-	}
-
-	/**
-	 * Create a {@link StreamRDF} that inserts into any RDFCommons
-	 * implementation of Graph
-	 */
-	public static StreamRDF streamJenaToCommonsRDF(RDFTermFactory factory, Consumer<Quad> consumer) {
-		return new StreamRDFBase() {
-			@Override
-			public void quad(org.apache.jena.sparql.core.Quad quad) {
-				consumer.accept(fromJena(factory, quad));
-			}
-		};
-	}
-
-	/**
-	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
-	 */
-	public static org.apache.jena.graph.Graph toJena(Graph graph) {
-		if (graph instanceof JenaGraph)
-			return ((JenaGraph) graph).asJenaGraph();
-		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
-		graph.stream().forEach(t -> g.add(toJena(t)));
-		return g;
-	}
-
-	/**
-	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
-	 * originally, return that original object, else create a copy using Jena
-	 * objects.
-	 */
-	public static Node toJena(RDFTerm term) {
-		if (term == null) {
-			return null;
-		}
-		if (term instanceof JenaRDFTerm)
-			// TODO: What if it's a BlankNodeImpl with
-			// a different salt? Do we need to rewrite the
-			// jena blanknode identifier?
-			return ((JenaRDFTerm) term).asJenaNode();
-
-		if (term instanceof IRI)
-			return NodeFactory.createURI(((IRI) term).getIRIString());
-
-		if (term instanceof Literal) {
-			Literal lit = (Literal) term;
-			RDFDatatype dt = NodeFactory.getType(lit.getDatatype().getIRIString());
-			String lang = lit.getLanguageTag().orElse("");
-			return NodeFactory.createLiteral(lit.getLexicalForm(), lang, dt);
-		}
-
-		if (term instanceof BlankNode) {
-			String id = ((BlankNode) term).uniqueReference();
-			return NodeFactory.createBlankNode(id);
-		}
-		throw new ConversionException("Not a concrete RDF Term: " + term);
-	}
-
-	/**
-	 * Convert a CommonsRDF Triple to a Jena Triple. If the Triple was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
-	 */
-	public static org.apache.jena.graph.Triple toJena(Triple triple) {
-		if (triple instanceof JenaTriple)
-			return ((JenaTriple) triple).asJenaTriple();
-		return new org.apache.jena.graph.Triple(
-				toJena(triple.getSubject()), 
-				toJena(triple.getPredicate()),
-				toJena(triple.getObject()));
-	}
-
-	// Some simple validations - full IRI parsing is not cheap.
-	private static void validateIRI(String iri) {
-		if (iri.contains(" "))
-			throw new IllegalArgumentException();
-		if (iri.contains("<"))
-			throw new IllegalArgumentException();
-		if (iri.contains(">"))
-			throw new IllegalArgumentException();
-	}
-
-	private static void validateLang(String languageTag) {
-		if (languageTag.contains(" "))
-			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
index c36c615..97ff7c5 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
@@ -23,7 +23,7 @@ import java.util.UUID;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaTripleLike;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 
 public class GeneralizedTripleImpl implements JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> {
 	private final RDFTerm object;
@@ -47,8 +47,8 @@ public class GeneralizedTripleImpl implements JenaTripleLike<RDFTerm, RDFTerm, R
 	@Override
 	public org.apache.jena.graph.Triple asJenaTriple() {
 		if (triple == null)
-			triple = org.apache.jena.graph.Triple.create(RDFTermFactoryJena.toJena(subject),
-					RDFTermFactoryJena.toJena(predicate), RDFTermFactoryJena.toJena(object));
+			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject),
+					JenaRDFTermFactory.toJena(predicate), JenaRDFTermFactory.toJena(object));
 		return triple;
 	}
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
index 1e03b2c..02c4a25 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
@@ -27,7 +27,7 @@ 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.jena.JenaGraph;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.graph.Node;
 import org.apache.jena.riot.Lang;
@@ -46,14 +46,14 @@ public class GraphImpl implements JenaGraph {
 	@Override
 	public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		graph.add(org.apache.jena.graph.Triple.create(
-				RDFTermFactoryJena.toJena(subject),
-				RDFTermFactoryJena.toJena(predicate), 
-				RDFTermFactoryJena.toJena(object)));
+				JenaRDFTermFactory.toJena(subject),
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
 	}
 
 	@Override
 	public void add(Triple triple) {
-		graph.add(RDFTermFactoryJena.toJena(triple));
+		graph.add(JenaRDFTermFactory.toJena(triple));
 	}
 
 	@Override
@@ -74,27 +74,27 @@ public class GraphImpl implements JenaGraph {
 	@Override
 	public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return graph.contains(
-				RDFTermFactoryJena.toJena(subject), 
-				RDFTermFactoryJena.toJena(predicate),
-				RDFTermFactoryJena.toJena(object));
+				JenaRDFTermFactory.toJena(subject), 
+				JenaRDFTermFactory.toJena(predicate),
+				JenaRDFTermFactory.toJena(object));
 	}
 
 	@Override
 	public boolean contains(Triple triple) {
-		return graph.contains(RDFTermFactoryJena.toJena(triple));
+		return graph.contains(JenaRDFTermFactory.toJena(triple));
 	}
 
 	@Override
 	public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		graph.delete(org.apache.jena.graph.Triple.create(
-				RDFTermFactoryJena.toJena(subject),
-				RDFTermFactoryJena.toJena(predicate), 
-				RDFTermFactoryJena.toJena(object)));
+				JenaRDFTermFactory.toJena(subject),
+				JenaRDFTermFactory.toJena(predicate), 
+				JenaRDFTermFactory.toJena(object)));
 	}
 
 	@Override
 	public void remove(Triple triple) {
-		graph.delete(RDFTermFactoryJena.toJena(triple));
+		graph.delete(JenaRDFTermFactory.toJena(triple));
 	}
 
 	@Override
@@ -104,13 +104,13 @@ public class GraphImpl implements JenaGraph {
 
 	@Override
 	public Stream<? extends Triple> stream() {
-		RDFTermFactoryJena factory = new RDFTermFactoryJena(salt);
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
 		return Iter.asStream(graph.find(null, null, null), true).map(factory::fromJena);
 	}
 
 	@Override
 	public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
-		RDFTermFactoryJena factory = new RDFTermFactoryJena(salt);
+		JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
 		return Iter.asStream(graph.find(toJenaAny(s), toJenaAny(p), toJenaAny(o)), true)
 				.map(factory::fromJena);
 	}
@@ -118,7 +118,7 @@ public class GraphImpl implements JenaGraph {
 	private Node toJenaAny(RDFTerm term) {
 		if (term == null)
 			return Node.ANY;
-		return RDFTermFactoryJena.toJena(term);
+		return JenaRDFTermFactory.toJena(term);
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
index 16deb02..19f154c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.JenaQuad;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 
 public class QuadImpl implements JenaQuad {
 
@@ -57,10 +57,10 @@ public class QuadImpl implements JenaQuad {
 	public org.apache.jena.sparql.core.Quad asJenaQuad() {
 		if (quad == null) {
 			quad = org.apache.jena.sparql.core.Quad.create(
-					RDFTermFactoryJena.toJena(graphName.orElse(null)),
-					RDFTermFactoryJena.toJena(subject), 
-					RDFTermFactoryJena.toJena(predicate),
-					RDFTermFactoryJena.toJena(object));
+					JenaRDFTermFactory.toJena(graphName.orElse(null)),
+					JenaRDFTermFactory.toJena(subject), 
+					JenaRDFTermFactory.toJena(predicate),
+					JenaRDFTermFactory.toJena(object));
 		}
 		return quad;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
index f65fd6d..cadbdf5 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
@@ -27,7 +27,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 
 public class TripleImpl implements Triple, JenaTriple {
 	private final RDFTerm object;
@@ -55,8 +55,8 @@ public class TripleImpl implements Triple, JenaTriple {
 	@Override
 	public org.apache.jena.graph.Triple asJenaTriple() {
 		if (triple == null)
-			triple = org.apache.jena.graph.Triple.create(RDFTermFactoryJena.toJena(subject),
-					RDFTermFactoryJena.toJena(predicate), RDFTermFactoryJena.toJena(object));
+			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject),
+					JenaRDFTermFactory.toJena(predicate), JenaRDFTermFactory.toJena(object));
 		return triple;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
index 764ee70..10edd09 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
@@ -18,6 +18,8 @@
 
 package org.apache.commons.rdf.jena;
 
+import java.util.UUID;
+
 import org.apache.commons.rdf.api.AbstractBlankNodeTest ;
 import org.apache.commons.rdf.api.BlankNode ;
 import org.apache.commons.rdf.jena.impl.JenaFactory;
@@ -25,14 +27,16 @@ import org.apache.commons.rdf.jena.impl.JenaFactory;
 public class TestBlankNodeJena extends AbstractBlankNodeTest {
 
 	
-    @Override
+    private static final UUID SALT = UUID.fromString("ccfde817-55b8-4a5f-bc2d-6bfd8eaa41ce");
+
+	@Override
     protected BlankNode getBlankNode() {
         return JenaFactory.createBlankNode() ;
     }
     
     @Override
     protected BlankNode getBlankNode(String identifier) {
-        return JenaFactory.createBlankNode(identifier) ;
+        return JenaFactory.createBlankNode(identifier, SALT) ;
     }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
index 973b7b1..e2749bb 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
@@ -25,7 +25,7 @@ public class TestGraphJena extends AbstractGraphTest {
 
     @Override
     public RDFTermFactory createFactory() {
-        return new RDFTermFactoryJena() ;
+        return new JenaRDFTermFactory() ;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index cfe5642..c81a8b1 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -56,10 +56,10 @@ public class TestJenaGraphToCommonsRDFGraph {
         RDFDataMgr.read(jGraph, turtleFile.toUri().toString()) ;
         
         // "graph" is a CommonsRDF graph 
-        Graph graph = JenaCommonsRDF.fromJena(jGraph) ;
+        Graph graph = JenaRDFTermFactory.fromJena(jGraph) ;
         
         // Add to CommonsRDF Graph
-        RDFTermFactory rft = new RDFTermFactoryJena() ;
+        RDFTermFactory rft = new JenaRDFTermFactory() ;
         graph.add(rft.createIRI("http://example/s2"),
                   rft.createIRI("http://example/p2"),
                   rft.createLiteral("foo")) ;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
index f230bdd..c689d0e 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
@@ -53,7 +53,7 @@ public class TestRDFParserBuilder {
 
 	@Test
 	public void parseTurtle() throws Exception {
-		Graph g = new RDFTermFactoryJena().createGraph();
+		Graph g = new JenaRDFTermFactory().createGraph();
 		Future<ParseResult> gFuture = new JenaRDFParserBuilder().contentType(RDFSyntax.TURTLE).source(turtleFile)
 				.target(g).parse();
 		gFuture.get(5, TimeUnit.SECONDS);

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/76dbe500/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
index 6aa153f..4baec9c 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
@@ -25,7 +25,7 @@ public class TestRDFTermFactoryJena extends AbstractRDFTermFactoryTest {
 	
     @Override
     public RDFTermFactory createFactory() {
-        return new RDFTermFactoryJena() ;
+        return new JenaRDFTermFactory() ;
     }
 
 }


[17/50] incubator-commonsrdf git commit: Merge branch 'parser-with-quads' into jena

Posted by st...@apache.org.
Merge branch 'parser-with-quads' into jena


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

Branch: refs/heads/master
Commit: 387eaaed22697fae673d424c07ff74aa0d23cfb6
Parents: 4e9b11b b1b657f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 16:28:30 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 16:28:30 2016 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------



[46/50] incubator-commonsrdf git commit: Added JenaGeneralizedQuadLike and JenaGeneralizedTripleLike interfaces

Posted by st...@apache.org.
Added JenaGeneralizedQuadLike and JenaGeneralizedTripleLike interfaces

to avoid the <Generics> overload in the factory

Also made AbstractQuadLike superclass


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

Branch: refs/heads/master
Commit: 51d7b41176815c708eaaf941692c711d8f8ad903
Parents: b3baff4
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 14:47:49 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 14:47:49 2016 +0100

----------------------------------------------------------------------
 .../rdf/jena/JenaGeneralizedQuadLike.java       |  37 +++++
 .../rdf/jena/JenaGeneralizedTripleLike.java     |  38 +++++
 .../commons/rdf/jena/JenaRDFTermFactory.java    |   5 +-
 .../commons/rdf/jena/impl/AbstractQuadLike.java | 141 +++++++++++++++++++
 .../commons/rdf/jena/impl/JenaFactory.java      |  18 +--
 .../rdf/jena/impl/JenaGeneralizedQuad.java      | 141 -------------------
 .../jena/impl/JenaGeneralizedQuadLikeImpl.java  |  39 +++++
 .../impl/JenaGeneralizedTripleLikeImpl.java     |  37 +++++
 .../commons/rdf/jena/impl/JenaQuadImpl.java     |   2 +-
 .../commons/rdf/jena/impl/JenaTripleImpl.java   |   2 +-
 10 files changed, 306 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
new file mode 100644
index 0000000..272421d
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedQuadLike.java
@@ -0,0 +1,37 @@
+/**
+ * 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.jena;
+
+import org.apache.commons.rdf.api.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+
+/**
+ * A generalized quad representation.
+ * <p>
+ * A <em>generalized quad</em> is a quad-like object which allow any
+ * {@link RDFTerm} type for its {@link #getSubject()}, {@link #getPredicate()}
+ * {@link #getObject()} and {@link #getGraphName()}. This might be useful with
+ * some serializations like JSON-LD.
+ * <p>
+ * Note that unlike {@link Quad}, this type does not have fixed semantics for
+ * {@link #equals(Object)} or {@link #hashCode()} beyond object identity.
+ * 
+ */
+public interface JenaGeneralizedQuadLike extends JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
new file mode 100644
index 0000000..68e5264
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGeneralizedTripleLike.java
@@ -0,0 +1,38 @@
+/**
+ * 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.jena;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.Triple;
+
+/**
+ * A generalized triple representation.
+ * <p>
+ * A <em>generalized triple</em> is a triple-like object which allow any
+ * {@link RDFTerm} type for its {@link #getSubject()}, {@link #getPredicate()}
+ * and {@link #getObject()}. This might be useful with some serializations like
+ * JSON-LD.
+ * <p>
+ * Note that unlike {@link Triple}, this type does not have fixed semantics for
+ * {@link #equals(Object)} or {@link #hashCode()} beyond object identity.
+ * 
+ */
+public interface JenaGeneralizedTripleLike
+		extends JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> {
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 25db850..4d5c592 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.commons.rdf.jena;
 
 import java.util.Optional;
@@ -163,7 +162,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *         does <strong>not</strong> implement {@link Triple#equals(Object)}
 	 *         or {@link Triple#hashCode()}.
 	 */
-	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(
+	public JenaGeneralizedTripleLike createGeneralizedTriple(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
 		return jenaFactory.createGeneralizedTriple(subject, predicate, object);
 	}
@@ -190,7 +189,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
 	 *         {@link Quad#hashCode()}.
 	 */
-	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> createGeneralizedQuad(
+	public JenaGeneralizedQuadLike createGeneralizedQuad(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
 		return jenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
 	}	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
new file mode 100644
index 0000000..f8451ea
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
@@ -0,0 +1,141 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.QuadLike;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.JenaQuadLike;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.jena.JenaTriple;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.sparql.core.Quad;
+
+/**
+ * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
+ * <p>
+ * This class does not implement any particular {@link #equals(Object)} or
+ * {@link #hashCode()} but can otherwise be used as a base class for both
+ * a {@link JenaTriple} and a {@link JenaQuad}.
+ * 
+ * @see JenaTripleImpl
+ * @see JenaQuadImpl
+ * @see jenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+ * @see jenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+ *
+ */
+abstract class AbstractQuadLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
+
+	private static JenaFactory jenaFactory = new JenaFactory(){};
+	
+	final Optional<G> graphName;
+	final S subject;
+	final P predicate;
+	final O object;
+	org.apache.jena.sparql.core.Quad quad = null;
+	org.apache.jena.graph.Triple triple = null;
+	
+	AbstractQuadLike(S subject, P predicate, O object, Optional<G> graphName) {
+		this.subject = Objects.requireNonNull(subject);
+		this.predicate = Objects.requireNonNull(predicate);
+		this.object = Objects.requireNonNull(object);
+		this.graphName = Objects.requireNonNull(graphName);
+	}
+
+	AbstractQuadLike(S subject, P predicate, O object) {
+		this(subject, predicate, object, Optional.empty());
+	}
+	 
+	@SuppressWarnings("unchecked")
+	AbstractQuadLike(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		this.quad = Objects.requireNonNull(quad);
+		this.subject = (S) jenaFactory.fromJena(quad.getSubject(), salt);
+		this.predicate = (P) jenaFactory.fromJena(quad.getPredicate(), salt);
+		this.object = (O)jenaFactory.fromJena(quad.getObject(), salt);
+		this.graphName = Optional.of((G) jenaFactory.fromJena(quad.getGraph(), salt));		
+	}
+
+	@SuppressWarnings("unchecked")
+	AbstractQuadLike(org.apache.jena.graph.Triple triple, UUID salt) {
+		this.triple = Objects.requireNonNull(triple);		
+		this.subject = (S) jenaFactory.fromJena(triple.getSubject(), salt);
+		this.predicate = (P) jenaFactory.fromJena(triple.getPredicate(), salt);
+		this.object = (O)jenaFactory.fromJena(triple.getObject(), salt);
+		this.graphName = Optional.empty();
+	}
+
+	@Override
+	public org.apache.jena.sparql.core.Quad asJenaQuad() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory();
+		if (quad == null) {
+			quad = org.apache.jena.sparql.core.Quad.create(
+					factory.toJena(graphName.orElse(null)),
+					factory.toJena(subject), 
+					factory.toJena(predicate),
+					factory.toJena(object));
+		}
+		return quad;
+	}
+
+	@Override
+	public org.apache.jena.graph.Triple asJenaTriple() {
+		JenaRDFTermFactory factory = new JenaRDFTermFactory();
+		if (triple == null) {
+			triple = org.apache.jena.graph.Triple.create(
+				factory.toJena(subject), 
+				factory.toJena(predicate),
+				factory.toJena(object));
+		}
+		return triple;
+	}	
+	
+	@Override
+	public S getSubject() {
+		return subject;
+	}
+
+	@Override
+	public P getPredicate() {
+		return predicate;
+	}
+	
+	@Override
+	public O getObject() {
+		return object;
+	}
+
+	@Override
+	public Optional<G> getGraphName() {
+		return graphName;
+	}
+
+	@Override
+	public String toString() {
+		// kind of nquad syntax
+		return getSubject().ntriplesString() + " " + 
+				getPredicate().ntriplesString() + " "
+				+ getObject().ntriplesString() + " " + 
+				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 30b96ed..ec15d35 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -28,6 +28,8 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaBlankNode;
 import org.apache.commons.rdf.jena.JenaDataset;
+import org.apache.commons.rdf.jena.JenaGeneralizedQuadLike;
+import org.apache.commons.rdf.jena.JenaGeneralizedTripleLike;
 import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.commons.rdf.jena.JenaLiteral;
@@ -99,12 +101,12 @@ public abstract class JenaFactory {
 		return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 
-	public JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
+	public JenaGeneralizedTripleLike createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return new JenaGeneralizedTripleLikeImpl(subject, predicate, object);
 	}
 
-	public JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
-		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
+	public JenaGeneralizedQuadLike createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
+		return new JenaGeneralizedQuadLikeImpl(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 	
 	public JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
@@ -147,12 +149,12 @@ public abstract class JenaFactory {
 		return new JenaTripleImpl(triple, salt);
 	}
 
-	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
+	public JenaGeneralizedTripleLike fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
+		return new JenaGeneralizedTripleLikeImpl(triple, salt);
 	}
 
-	public JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
+	public JenaGeneralizedQuadLike fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		return new JenaGeneralizedQuadLikeImpl(quad, salt);
 	}
 	
 	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
deleted file mode 100644
index 607defd..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuad.java
+++ /dev/null
@@ -1,141 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.QuadLike;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaQuad;
-import org.apache.commons.rdf.jena.JenaQuadLike;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.jena.graph.Triple;
-import org.apache.jena.sparql.core.Quad;
-
-/**
- * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
- * <p>
- * This class does not implement any particular {@link #equals(Object)} or
- * {@link #hashCode()} but can otherwise be used as a base class for both
- * a {@link JenaTriple} and a {@link JenaQuad}.
- * 
- * @see JenaTripleImpl
- * @see JenaQuadImpl
- * @see jenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
- * @see jenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
- *
- */
-class JenaGeneralizedQuad<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
-
-	private static JenaFactory jenaFactory = new JenaFactory(){};
-	
-	final Optional<G> graphName;
-	final S subject;
-	final P predicate;
-	final O object;
-	org.apache.jena.sparql.core.Quad quad = null;
-	org.apache.jena.graph.Triple triple = null;
-	
-	JenaGeneralizedQuad(S subject, P predicate, O object, Optional<G> graphName) {
-		this.subject = Objects.requireNonNull(subject);
-		this.predicate = Objects.requireNonNull(predicate);
-		this.object = Objects.requireNonNull(object);
-		this.graphName = Objects.requireNonNull(graphName);
-	}
-
-	JenaGeneralizedQuad(S subject, P predicate, O object) {
-		this(subject, predicate, object, Optional.empty());
-	}
-	 
-	@SuppressWarnings("unchecked")
-	JenaGeneralizedQuad(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		this.quad = Objects.requireNonNull(quad);
-		this.subject = (S) jenaFactory.fromJena(quad.getSubject(), salt);
-		this.predicate = (P) jenaFactory.fromJena(quad.getPredicate(), salt);
-		this.object = (O)jenaFactory.fromJena(quad.getObject(), salt);
-		this.graphName = Optional.of((G) jenaFactory.fromJena(quad.getGraph(), salt));		
-	}
-
-	@SuppressWarnings("unchecked")
-	JenaGeneralizedQuad(org.apache.jena.graph.Triple triple, UUID salt) {
-		this.triple = Objects.requireNonNull(triple);		
-		this.subject = (S) jenaFactory.fromJena(triple.getSubject(), salt);
-		this.predicate = (P) jenaFactory.fromJena(triple.getPredicate(), salt);
-		this.object = (O)jenaFactory.fromJena(triple.getObject(), salt);
-		this.graphName = Optional.empty();
-	}
-
-	@Override
-	public org.apache.jena.sparql.core.Quad asJenaQuad() {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory();
-		if (quad == null) {
-			quad = org.apache.jena.sparql.core.Quad.create(
-					factory.toJena(graphName.orElse(null)),
-					factory.toJena(subject), 
-					factory.toJena(predicate),
-					factory.toJena(object));
-		}
-		return quad;
-	}
-
-	@Override
-	public org.apache.jena.graph.Triple asJenaTriple() {
-		JenaRDFTermFactory factory = new JenaRDFTermFactory();
-		if (triple == null) {
-			triple = org.apache.jena.graph.Triple.create(
-				factory.toJena(subject), 
-				factory.toJena(predicate),
-				factory.toJena(object));
-		}
-		return triple;
-	}	
-	
-	@Override
-	public S getSubject() {
-		return subject;
-	}
-
-	@Override
-	public P getPredicate() {
-		return predicate;
-	}
-	
-	@Override
-	public O getObject() {
-		return object;
-	}
-
-	@Override
-	public Optional<G> getGraphName() {
-		return graphName;
-	}
-
-	@Override
-	public String toString() {
-		// kind of nquad syntax
-		return getSubject().ntriplesString() + " " + 
-				getPredicate().ntriplesString() + " "
-				+ getObject().ntriplesString() + " " + 
-				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuadLikeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuadLikeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuadLikeImpl.java
new file mode 100644
index 0000000..df74900
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedQuadLikeImpl.java
@@ -0,0 +1,39 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaGeneralizedQuadLike;
+import org.apache.jena.sparql.core.Quad;
+
+class JenaGeneralizedQuadLikeImpl extends AbstractQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>
+	implements JenaGeneralizedQuadLike {
+
+	JenaGeneralizedQuadLikeImpl(RDFTerm subject, RDFTerm predicate, RDFTerm object,
+			Optional<RDFTerm> ofNullable) {
+		super(subject, predicate, object, ofNullable);
+	}
+
+	JenaGeneralizedQuadLikeImpl(Quad quad, UUID salt) {
+		super(quad, salt);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedTripleLikeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedTripleLikeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedTripleLikeImpl.java
new file mode 100644
index 0000000..ecaa46a
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGeneralizedTripleLikeImpl.java
@@ -0,0 +1,37 @@
+/**
+ * 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.jena.impl;
+
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaGeneralizedTripleLike;
+import org.apache.jena.graph.Triple;
+
+class JenaGeneralizedTripleLikeImpl extends AbstractQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>
+	implements JenaGeneralizedTripleLike {
+
+	JenaGeneralizedTripleLikeImpl(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		super(subject, predicate, object);
+	}
+
+	JenaGeneralizedTripleLikeImpl(Triple triple, UUID salt) {
+		super(triple, salt);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
index 9d65374..61ddf9b 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaQuadImpl.java
@@ -29,7 +29,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaQuad;
 
-class JenaQuadImpl	extends JenaGeneralizedQuad<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
+class JenaQuadImpl	extends AbstractQuadLike<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
 	implements JenaQuad {
 
 	JenaQuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/51d7b411/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
index 502b575..453300c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaTripleImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaTriple;
 
-class JenaTripleImpl extends JenaGeneralizedQuad<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
+class JenaTripleImpl extends AbstractQuadLike<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
 		implements JenaTriple {
 
 	JenaTripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {


[47/50] incubator-commonsrdf git commit: JenaFactory -> InternalJenaFactory

Posted by st...@apache.org.
JenaFactory -> InternalJenaFactory


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

Branch: refs/heads/master
Commit: c718800490b3cc9176239f8dab215cbebd5c3c5b
Parents: 51d7b41
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 15:13:39 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 15:14:00 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    |  46 +++---
 .../commons/rdf/jena/impl/AbstractQuadLike.java |  20 +--
 .../rdf/jena/impl/InternalJenaFactory.java      | 162 ++++++++++++++++++
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |   2 +-
 .../commons/rdf/jena/impl/JenaFactory.java      | 164 -------------------
 .../commons/rdf/jena/impl/JenaLiteralImpl.java  |   4 +-
 .../commons/rdf/jena/TestBlankNodeJena.java     |   8 +-
 7 files changed, 202 insertions(+), 204 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 4d5c592..0cc84c0 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -34,7 +34,7 @@ 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.jena.impl.JenaFactory;
+import org.apache.commons.rdf.jena.impl.InternalJenaFactory;
 import org.apache.jena.datatypes.RDFDatatype;
 import org.apache.jena.datatypes.xsd.XSDDatatype;
 import org.apache.jena.graph.Node;
@@ -60,7 +60,7 @@ import org.apache.jena.sparql.graph.GraphFactory;
  */
 public final class JenaRDFTermFactory implements RDFTermFactory {
 
-	private static JenaFactory jenaFactory = new JenaFactory(){};
+	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
 	
 	private final UUID salt;
 
@@ -91,55 +91,55 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 
 	@Override
 	public JenaBlankNode createBlankNode() {
-		return jenaFactory.createBlankNode(getSalt());
+		return internalJenaFactory.createBlankNode(getSalt());
 	}
 
 	@Override
 	public JenaBlankNode createBlankNode(String name) {
-		return jenaFactory.createBlankNode(name, getSalt());
+		return internalJenaFactory.createBlankNode(name, getSalt());
 	}
 	
 	@Override
 	public JenaDataset createDataset() {
-		return jenaFactory.createDataset(getSalt());
+		return internalJenaFactory.createDataset(getSalt());
 	}
 
 	@Override
 	public JenaGraph createGraph() {
-		return jenaFactory.createGraph(getSalt());
+		return internalJenaFactory.createGraph(getSalt());
 	}
 
 	@Override
 	public JenaIRI createIRI(String iri) {
 		validateIRI(iri);
-		return jenaFactory.createIRI(iri);
+		return internalJenaFactory.createIRI(iri);
 	}
 
 	@Override
 	public JenaLiteral createLiteral(String lexicalForm) {
-		return jenaFactory.createLiteral(lexicalForm);
+		return internalJenaFactory.createLiteral(lexicalForm);
 	}
 
 	@Override
 	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
-		return jenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
+		return internalJenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
 	}
 
 	@Override
 	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
 		validateLang(languageTag);
-		return jenaFactory.createLiteralLang(lexicalForm, languageTag);
+		return internalJenaFactory.createLiteralLang(lexicalForm, languageTag);
 	}
 
 	@Override
 	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return jenaFactory.createTriple(subject, predicate, object);
+		return internalJenaFactory.createTriple(subject, predicate, object);
 	}
 	
 	@Override
 	public JenaQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
 			throws IllegalArgumentException, UnsupportedOperationException {
-		return jenaFactory.createQuad(subject, predicate, object, graphName);
+		return internalJenaFactory.createQuad(subject, predicate, object, graphName);
 	}
 
 	/**
@@ -164,7 +164,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 */
 	public JenaGeneralizedTripleLike createGeneralizedTriple(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return jenaFactory.createGeneralizedTriple(subject, predicate, object);
+		return internalJenaFactory.createGeneralizedTriple(subject, predicate, object);
 	}
 
 	/**
@@ -191,7 +191,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 */
 	public JenaGeneralizedQuadLike createGeneralizedQuad(
 			RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
-		return jenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
+		return internalJenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
 	}	
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
@@ -213,7 +213,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if the node is not concrete or represents a variable in Jena.
 	 */
 	public JenaRDFTerm fromJena(Node node) throws ConversionException {
-		return jenaFactory.fromJena(node, getSalt());
+		return internalJenaFactory.fromJena(node, getSalt());
 	}
 
 	/**
@@ -278,7 +278,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             is a generalized triple
 	 */
 	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return jenaFactory.fromJena(triple, getSalt());
+		return internalJenaFactory.fromJena(triple, getSalt());
 	}
 
 	/**
@@ -304,7 +304,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if any of the triple's nodes are not concrete
 	 */
 	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return jenaFactory.fromJenaGeneralized(triple, getSalt());
+		return internalJenaFactory.fromJenaGeneralized(triple, getSalt());
 	}
 
 	/**
@@ -334,7 +334,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if any of the quad nodes are not concrete
 	 */
 	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad) throws ConversionException {
-		return jenaFactory.fromJenaGeneralized(quad, getSalt());
+		return internalJenaFactory.fromJenaGeneralized(quad, getSalt());
 	}
 	
 	/**
@@ -389,7 +389,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted quad
 	 */	
 	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		return jenaFactory.fromJena(quad, getSalt());
+		return internalJenaFactory.fromJena(quad, getSalt());
 	}
 
 	/**
@@ -411,7 +411,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaGraph}
 	 */
 	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
-		return jenaFactory.fromJena(graph, getSalt());
+		return internalJenaFactory.fromJena(graph, getSalt());
 	}
 
 	/**
@@ -430,7 +430,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaGraph}
 	 */
 	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
-		return jenaFactory.fromJena(model, getSalt());
+		return internalJenaFactory.fromJena(model, getSalt());
 	}	
 
 	/**
@@ -450,7 +450,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaDataset} 
 	 */
 	public JenaDataset fromJena(DatasetGraph datasetGraph) {
-		return jenaFactory.fromJena(datasetGraph, getSalt());
+		return internalJenaFactory.fromJena(datasetGraph, getSalt());
 	}	
 	
 	/**
@@ -470,7 +470,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted {@link JenaDataset} 
 	 */
 	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
-		return jenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
+		return internalJenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
 	}		
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
index f8451ea..dd0d384 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
@@ -40,13 +40,13 @@ import org.apache.jena.sparql.core.Quad;
  * 
  * @see JenaTripleImpl
  * @see JenaQuadImpl
- * @see jenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
- * @see jenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+ * @see internalJenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+ * @see internalJenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
  *
  */
 abstract class AbstractQuadLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
 
-	private static JenaFactory jenaFactory = new JenaFactory(){};
+	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
 	
 	final Optional<G> graphName;
 	final S subject;
@@ -69,18 +69,18 @@ abstract class AbstractQuadLike<S extends RDFTerm, P extends RDFTerm, O extends
 	@SuppressWarnings("unchecked")
 	AbstractQuadLike(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		this.quad = Objects.requireNonNull(quad);
-		this.subject = (S) jenaFactory.fromJena(quad.getSubject(), salt);
-		this.predicate = (P) jenaFactory.fromJena(quad.getPredicate(), salt);
-		this.object = (O)jenaFactory.fromJena(quad.getObject(), salt);
-		this.graphName = Optional.of((G) jenaFactory.fromJena(quad.getGraph(), salt));		
+		this.subject = (S) internalJenaFactory.fromJena(quad.getSubject(), salt);
+		this.predicate = (P) internalJenaFactory.fromJena(quad.getPredicate(), salt);
+		this.object = (O)internalJenaFactory.fromJena(quad.getObject(), salt);
+		this.graphName = Optional.of((G) internalJenaFactory.fromJena(quad.getGraph(), salt));		
 	}
 
 	@SuppressWarnings("unchecked")
 	AbstractQuadLike(org.apache.jena.graph.Triple triple, UUID salt) {
 		this.triple = Objects.requireNonNull(triple);		
-		this.subject = (S) jenaFactory.fromJena(triple.getSubject(), salt);
-		this.predicate = (P) jenaFactory.fromJena(triple.getPredicate(), salt);
-		this.object = (O)jenaFactory.fromJena(triple.getObject(), salt);
+		this.subject = (S) internalJenaFactory.fromJena(triple.getSubject(), salt);
+		this.predicate = (P) internalJenaFactory.fromJena(triple.getPredicate(), salt);
+		this.object = (O)internalJenaFactory.fromJena(triple.getObject(), salt);
 		this.graphName = Optional.empty();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
new file mode 100644
index 0000000..eb09d67
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
@@ -0,0 +1,162 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNode;
+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.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaBlankNode;
+import org.apache.commons.rdf.jena.JenaDataset;
+import org.apache.commons.rdf.jena.JenaGeneralizedQuadLike;
+import org.apache.commons.rdf.jena.JenaGeneralizedTripleLike;
+import org.apache.commons.rdf.jena.JenaGraph;
+import org.apache.commons.rdf.jena.JenaIRI;
+import org.apache.commons.rdf.jena.JenaLiteral;
+import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.jena.JenaTriple;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
+import org.apache.jena.sparql.graph.GraphFactory;
+
+/**
+ * Construct Jena implementations of Commons RDF.
+ * <p>
+ * This class is deliberately an abstract class, as it is an internal helper
+ * which <strong>may change</strong> in any minor version update; users should
+ * instead use {@link JenaRDFTermFactory}.
+ * <p>
+ * For the purpose of blank node identity, some of these methods require a
+ * {@link UUID} to use as a salt. See {@link BlankNode#uniqueReference()} for
+ * details.
+ * 
+ */
+public abstract class InternalJenaFactory {
+
+	public JenaBlankNode createBlankNode(String id, UUID salt) {
+		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(id), salt);
+	}
+
+	public JenaBlankNode createBlankNode(UUID salt) {
+		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(), salt);
+	}
+	public JenaDataset createDataset(UUID salt) {
+		DatasetGraph dg = DatasetGraphFactory.createGeneral();
+		// Or which createMethod() -- a bit confusing with lots of choice..
+		return new JenaDatasetImpl(dg, salt);
+	}
+
+	public JenaGraph createGraph(UUID salt) {
+		return new JenaGraphImpl(GraphFactory.createDefaultGraph(), salt);
+	}
+
+	public JenaIRI createIRI(String iriStr) {
+		return new JenaIRIImpl(iriStr);
+	}
+
+	public JenaLiteral createLiteral(String lexStr) {
+		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr));
+	}
+
+	public JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
+		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
+	}
+
+	public JenaLiteral createLiteralLang(String lexStr, String langTag) {
+		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
+	}
+
+	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return new JenaTripleImpl(subject, predicate, object);
+	}
+
+	public JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
+		return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
+	}
+
+	public JenaGeneralizedTripleLike createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return new JenaGeneralizedTripleLikeImpl(subject, predicate, object);
+	}
+
+	public JenaGeneralizedQuadLike createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
+		return new JenaGeneralizedQuadLikeImpl(subject, predicate, object, Optional.ofNullable(graphName));
+	}
+	
+	public JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
+		if (! node.isConcrete()) {
+			throw new ConversionException("Node is not a concrete RDF Term: " + node); 
+		}
+		if (node.isURI()) {
+			return new JenaIRIImpl(node);
+		}
+		if (node.isLiteral()) {
+			return new JenaLiteralImpl(node);
+		}
+		if (node.isBlank()) {
+			return new JenaBlankNodeImpl(node, salt);
+		}
+		if (node.equals(Node.ANY)) {
+			// NOTE: JenaAny no longer supported by Commons RDF
+			//return JenaAnyImpl.Singleton.instance;
+		}
+		if (node.isVariable()) {
+			// NOTE: JenaVariable no longer supported by Commons RDF
+			//return new JenaVariableImpl(node);
+		}
+		throw new ConversionException("Unrecognized node type: " + node);
+	}
+
+	public JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
+		return new JenaGraphImpl(graph, salt);
+	}
+
+	public JenaGraph fromJena(Model model, UUID salt) {
+		return new JenaGraphImpl(model, salt);
+	}
+
+	public JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
+		return new JenaDatasetImpl(datasetGraph, salt);
+	}
+	
+	public JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+		return new JenaTripleImpl(triple, salt);
+	}
+
+	public JenaGeneralizedTripleLike fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
+		return new JenaGeneralizedTripleLikeImpl(triple, salt);
+	}
+
+	public JenaGeneralizedQuadLike fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		return new JenaGeneralizedQuadLikeImpl(quad, salt);
+	}
+	
+	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		return new JenaQuadImpl(quad, salt);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
index fec063f..5c410ee 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -94,7 +94,7 @@ class JenaDatasetImpl implements JenaDataset {
 
 	private Node toJenaPattern(Optional<? extends RDFTerm> graphName) {
 		// In theory we could have done:
-		//   factory.toJena(graphName.orElse(jenaFactory::createAnyVariable))
+		//   factory.toJena(graphName.orElse(internalJenaFactory::createAnyVariable))
 		// but because of generics casting rules that doesn't work :(						
 
 		if (graphName == null) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
deleted file mode 100644
index ec15d35..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ /dev/null
@@ -1,164 +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.commons.rdf.jena.impl;
-
-import java.util.Optional;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNode;
-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.jena.ConversionException;
-import org.apache.commons.rdf.jena.JenaBlankNode;
-import org.apache.commons.rdf.jena.JenaDataset;
-import org.apache.commons.rdf.jena.JenaGeneralizedQuadLike;
-import org.apache.commons.rdf.jena.JenaGeneralizedTripleLike;
-import org.apache.commons.rdf.jena.JenaGraph;
-import org.apache.commons.rdf.jena.JenaIRI;
-import org.apache.commons.rdf.jena.JenaLiteral;
-import org.apache.commons.rdf.jena.JenaQuad;
-import org.apache.commons.rdf.jena.JenaQuadLike;
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.commons.rdf.jena.JenaTripleLike;
-import org.apache.jena.graph.Node;
-import org.apache.jena.graph.NodeFactory;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.core.DatasetGraphFactory;
-import org.apache.jena.sparql.graph.GraphFactory;
-
-/**
- * Construct Jena implementations of Commons RDF.
- * <p>
- * This class is deliberately an abstract class, as it is an internal helper
- * which <strong>may change</strong> in any minor version update; users should
- * instead use {@link JenaRDFTermFactory}.
- * <p>
- * For the purpose of blank node identity, some of these methods require a
- * {@link UUID} to use as a salt. See {@link BlankNode#uniqueReference()} for
- * details.
- * 
- */
-public abstract class JenaFactory {
-
-	public JenaBlankNode createBlankNode(String id, UUID salt) {
-		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(id), salt);
-	}
-
-	public JenaBlankNode createBlankNode(UUID salt) {
-		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(), salt);
-	}
-	public JenaDataset createDataset(UUID salt) {
-		DatasetGraph dg = DatasetGraphFactory.createGeneral();
-		// Or which createMethod() -- a bit confusing with lots of choice..
-		return new JenaDatasetImpl(dg, salt);
-	}
-
-	public JenaGraph createGraph(UUID salt) {
-		return new JenaGraphImpl(GraphFactory.createDefaultGraph(), salt);
-	}
-
-	public JenaIRI createIRI(String iriStr) {
-		return new JenaIRIImpl(iriStr);
-	}
-
-	public JenaLiteral createLiteral(String lexStr) {
-		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr));
-	}
-
-	public JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
-		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
-	}
-
-	public JenaLiteral createLiteralLang(String lexStr, String langTag) {
-		return new JenaLiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
-	}
-
-	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return new JenaTripleImpl(subject, predicate, object);
-	}
-
-	public JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
-		return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
-	}
-
-	public JenaGeneralizedTripleLike createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return new JenaGeneralizedTripleLikeImpl(subject, predicate, object);
-	}
-
-	public JenaGeneralizedQuadLike createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
-		return new JenaGeneralizedQuadLikeImpl(subject, predicate, object, Optional.ofNullable(graphName));
-	}
-	
-	public JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
-		if (! node.isConcrete()) {
-			throw new ConversionException("Node is not a concrete RDF Term: " + node); 
-		}
-		if (node.isURI()) {
-			return new JenaIRIImpl(node);
-		}
-		if (node.isLiteral()) {
-			return new JenaLiteralImpl(node);
-		}
-		if (node.isBlank()) {
-			return new JenaBlankNodeImpl(node, salt);
-		}
-		if (node.equals(Node.ANY)) {
-			// NOTE: JenaAny no longer supported by Commons RDF
-			//return JenaAnyImpl.Singleton.instance;
-		}
-		if (node.isVariable()) {
-			// NOTE: JenaVariable no longer supported by Commons RDF
-			//return new JenaVariableImpl(node);
-		}
-		throw new ConversionException("Unrecognized node type: " + node);
-	}
-
-	public JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
-		return new JenaGraphImpl(graph, salt);
-	}
-
-	public JenaGraph fromJena(Model model, UUID salt) {
-		return new JenaGraphImpl(model, salt);
-	}
-
-	public JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
-		return new JenaDatasetImpl(datasetGraph, salt);
-	}
-	
-	public JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new JenaTripleImpl(triple, salt);
-	}
-
-	public JenaGeneralizedTripleLike fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new JenaGeneralizedTripleLikeImpl(triple, salt);
-	}
-
-	public JenaGeneralizedQuadLike fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return new JenaGeneralizedQuadLikeImpl(quad, salt);
-	}
-	
-	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return new JenaQuadImpl(quad, salt);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
index 173af4c..74c6d9c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaLiteralImpl.java
@@ -28,7 +28,7 @@ import org.apache.jena.graph.Node;
 
 class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral {
 
-	private static JenaFactory jenaFactory = new JenaFactory(){};
+	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
 	
 	JenaLiteralImpl(Node node) {
 		super(node);
@@ -52,7 +52,7 @@ class JenaLiteralImpl extends AbstractJenaRDFTerm implements JenaLiteral {
 
 	@Override
 	public IRI getDatatype() {
-		return jenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
+		return internalJenaFactory.createIRI(asJenaNode().getLiteralDatatype().getURI());
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c7188004/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
index 0ac6326..a3db975 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestBlankNodeJena.java
@@ -22,11 +22,11 @@ import java.util.UUID;
 
 import org.apache.commons.rdf.api.AbstractBlankNodeTest ;
 import org.apache.commons.rdf.api.BlankNode ;
-import org.apache.commons.rdf.jena.impl.JenaFactory;
+import org.apache.commons.rdf.jena.impl.InternalJenaFactory;
 
 public class TestBlankNodeJena extends AbstractBlankNodeTest {
 
-	JenaFactory jenaFactory = new JenaFactory(){};
+	InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
 	
 	/** 
 	 * Fixed salt for the purpose of this test.
@@ -35,12 +35,12 @@ public class TestBlankNodeJena extends AbstractBlankNodeTest {
 
 	@Override
     protected BlankNode getBlankNode() {
-        return jenaFactory.createBlankNode(SALT) ;
+        return internalJenaFactory.createBlankNode(SALT) ;
     }
     
     @Override
     protected BlankNode getBlankNode(String identifier) {
-        return jenaFactory.createBlankNode(identifier, SALT) ;
+        return internalJenaFactory.createBlankNode(identifier, SALT) ;
     }
 }
 


[02/50] incubator-commonsrdf git commit: Added Jena* interfaces and GeneralizedTripleImpl

Posted by st...@apache.org.
Added Jena* interfaces and GeneralizedTripleImpl

e.g. JenaIRI, JenaBlankNode


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

Branch: refs/heads/master
Commit: 35c326166ef587adb460cfe36c23ea863b7cffba
Parents: 8a7b3ad
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 12:06:08 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 12:06:08 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaBlankNode.java  |   7 +
 .../org/apache/commons/rdf/jena/JenaIRI.java    |   7 +
 .../apache/commons/rdf/jena/JenaLiteral.java    |   7 +
 .../org/apache/commons/rdf/jena/JenaNode.java   |  27 ---
 .../apache/commons/rdf/jena/JenaRDFTerm.java    |  27 +++
 .../org/apache/commons/rdf/jena/JenaTriple.java |   7 +-
 .../apache/commons/rdf/jena/JenaTripleLike.java |  34 +++
 .../commons/rdf/jena/RDFTermFactoryJena.java    | 241 ++++++++++++-------
 .../commons/rdf/jena/impl/AbstractRDFTerm.java  |   4 +-
 .../commons/rdf/jena/impl/BlankNodeImpl.java    |   4 +-
 .../rdf/jena/impl/GeneralizedTripleImpl.java    |  74 ++++++
 .../apache/commons/rdf/jena/impl/IRIImpl.java   |   4 +-
 .../commons/rdf/jena/impl/JenaFactory.java      |  44 ++--
 .../commons/rdf/jena/impl/LiteralImpl.java      |   3 +-
 .../apache/commons/rdf/jena/impl/QuadImpl.java  |   2 +-
 .../commons/rdf/jena/impl/TripleImpl.java       |  11 +-
 16 files changed, 358 insertions(+), 145 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
new file mode 100644
index 0000000..3c7a912
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
@@ -0,0 +1,7 @@
+package org.apache.commons.rdf.jena;
+
+import org.apache.commons.rdf.api.BlankNode;
+
+public interface JenaBlankNode extends JenaRDFTerm, BlankNode {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
new file mode 100644
index 0000000..c001d74
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
@@ -0,0 +1,7 @@
+package org.apache.commons.rdf.jena;
+
+import org.apache.commons.rdf.api.IRI;
+
+public interface JenaIRI extends JenaRDFTerm, IRI {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
new file mode 100644
index 0000000..a2906ff
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
@@ -0,0 +1,7 @@
+package org.apache.commons.rdf.jena;
+
+import org.apache.commons.rdf.api.Literal;
+
+public interface JenaLiteral extends JenaRDFTerm, Literal {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaNode.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaNode.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaNode.java
deleted file mode 100644
index 4be7940..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaNode.java
+++ /dev/null
@@ -1,27 +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.commons.rdf.jena;
-
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.jena.graph.Node;
-
-/** Access the Jena node backing this object */
-public interface JenaNode extends RDFTerm {
-	public Node asJenaNode();
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
new file mode 100644
index 0000000..623f8b4
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTerm.java
@@ -0,0 +1,27 @@
+/**
+ * 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.jena;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.jena.graph.Node;
+
+/** Access the Jena node backing this object */
+public interface JenaRDFTerm extends RDFTerm {
+	public Node asJenaNode();
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
index 3735bdd..b94cc08 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTriple.java
@@ -18,9 +18,10 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.graph.Triple;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDFTerm;
 
 /** Access the Jena triple backing this object */
-public interface JenaTriple extends org.apache.commons.rdf.api.Triple {
-	public Triple asJenaTriple();
+public interface JenaTriple extends org.apache.commons.rdf.api.Triple, JenaTripleLike<BlankNodeOrIRI, IRI, RDFTerm> {
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
new file mode 100644
index 0000000..4f0deb8
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaTripleLike.java
@@ -0,0 +1,34 @@
+/**
+ * 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.jena;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.jena.graph.Triple;
+
+/** Access the Jena triple backing this object */
+public interface JenaTripleLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm> 
+	extends org.apache.commons.rdf.api.TripleLike<S,P,O> {
+
+	/**
+	 * Return the adapted Jena triple
+	 * 
+	 * @return Adapted Jena {@link Triple}.
+	 */
+	Triple asJenaTriple();
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
index 1515a78..2ffabfb 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/RDFTermFactoryJena.java
@@ -64,96 +64,158 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	}
 
 	@Override
-	public BlankNode createBlankNode() {
+	public JenaBlankNode createBlankNode() {
 		return JenaFactory.createBlankNode(salt);
 	}
 
 	@Override
-	public BlankNode createBlankNode(String name) {
+	public JenaBlankNode createBlankNode(String name) {
 		return JenaFactory.createBlankNode(name, salt);
 	}
 
 	@Override
-	public Graph createGraph() {
+	public JenaGraph createGraph() {
 		return JenaFactory.createGraph(salt);
 	}
 
 	@Override
-	public IRI createIRI(String iri) {
+	public JenaIRI createIRI(String iri) {
 		validateIRI(iri);
 		return JenaFactory.createIRI(iri);
 	}
 
 	@Override
-	public Literal createLiteral(String lexicalForm) {
+	public JenaLiteral createLiteral(String lexicalForm) {
 		return JenaFactory.createLiteral(lexicalForm);
 	}
 
 	@Override
-	public Literal createLiteral(String lexicalForm, IRI dataType) {
+	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
 		return JenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
 	}
 
 	@Override
-	public Literal createLiteral(String lexicalForm, String languageTag) {
+	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
 		validateLang(languageTag);
 		return JenaFactory.createLiteralLang(lexicalForm, languageTag);
 	}
 
 	@Override
-	public Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return JenaFactory.createTriple(subject, predicate, object);
 	}
 
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
 	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a 
-	 * {@link Literal}. If {@link Node#isURI(), the returned value is a 
-	 * IRI. If Node#isBlank(), the returned value is a {@link BlankNode}, 
-	 * which will use a {@link UUID} salt from this {@link RDFTermFactoryJena} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
+	 * If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
+	 * the returned value is a {@link BlankNode}, which will use a {@link UUID}
+	 * salt from this {@link RDFTermFactoryJena} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param node The Jena Node to adapt. It's {@link Node#isConcrete()} must be <code>true</code>.
-	 * @throws ConversionException if the node is not concrete.
+	 * @see #fromJena(Node, UUID)
+	 * @see #fromJena(RDFTermFactory, Node)
+	 * 
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @throws ConversionException
+	 *             if the node is not concrete.
 	 */
-	public RDFTerm fromJena(Node node) throws ConversionException {
+	public JenaRDFTerm fromJena(Node node) throws ConversionException {
 		return JenaFactory.fromJena(node, salt);
 	}
 
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
 	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a 
-	 * {@link Literal}. If {@link Node#isURI(), the returned value is a 
-	 * IRI. If Node#isBlank(), the returned value is a {@link BlankNode}, 
-	 * which will use the provided {@link UUID} salt 
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}
+	 * . If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
+	 * the returned value is a {@link BlankNode}, which will use the provided
+	 * {@link UUID} salt in combination with {@link Node#getBlankNodeId()} for
+	 * the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @see #fromJena(Node)
+	 * @see #fromJena(RDFTermFactory, Node)
 	 * 
-	 * @param node The Jena Node to adapt. It's {@link Node#isConcrete()} must be <code>true</code>.
-	 * @param salt UUID salt for the purpose of {@link BlankNode#uniqueReference()}
-	 * @throws ConversionException if the node is not concrete.
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @param salt
+	 *            UUID salt for the purpose of
+	 *            {@link BlankNode#uniqueReference()}
+	 * @throws ConversionException
+	 *             if the node is not concrete.
 	 */
-	public static RDFTerm fromJena(Node node, UUID salt) {
+	public static JenaRDFTerm fromJena(Node node, UUID salt) {
 		return JenaFactory.fromJena(node, salt);
 	}
 	
 	/**
+	 * Convert from Jena {@link Node} to any RDFCommons implementation.
+	 * <p>
+	 * Note that if the {@link Node#isBlank()}, then the factory's 
+	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDFTermFactory} instance
+	 * for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(Node)
+	 * @see #fromJena(Node, UUID)
+	 * 
+	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}.
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @throws ConversionException
+	 *             if the node is not concrete.
+	 */
+	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
+		if (node == null) {
+			return null;
+		}
+		if (factory instanceof RDFTermFactoryJena) {
+			// No need to convert, just wrap
+			return ((RDFTermFactoryJena) factory).fromJena(node);
+		}
+		if (node.isURI())
+			return factory.createIRI(node.getURI());
+		if (node.isLiteral()) {
+			String lang = node.getLiteralLanguage();
+			if (lang != null && !lang.isEmpty())
+				return factory.createLiteral(node.getLiteralLexicalForm(), lang);
+			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
+				return factory.createLiteral(node.getLiteralLexicalForm());
+			IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
+			return factory.createLiteral(node.getLiteralLexicalForm(), dt);
+		}
+		if (node.isBlank())
+			// The factory
+			return factory.createBlankNode(node.getBlankNodeLabel());
+		throw new ConversionException("Node is not a concrete RDF Term: " + node);
+	}	
+	
+	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * <p>
 	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link RDFTermFactoryJena} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link RDFTermFactoryJena} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
 	 *            Jena triple
-	 * @return Adapted triple          
+	 * @return Adapted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
 	 */
-	public Triple fromJena(org.apache.jena.graph.Triple triple) {
+	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
 		return JenaFactory.fromJena(triple, salt);
 	}
 
@@ -161,31 +223,62 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * <p>
 	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided a {@link UUID} salt
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * {@link BlankNode} will use the provided a {@link UUID} salt in
+	 * combination with {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
 	 * 
 	 * @param triple
 	 *            Jena triple
 	 * @param salt
 	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted triple          
+	 * @return Adapted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
 	 */
-	public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
 		return JenaFactory.fromJena(triple, salt);
 	}
-	
 
 	/**
-	 * Adapt an existring Jena Graph to CommonsRDF {@link Graph}. This does not
-	 * take a copy. Changes to the CommonsRDF Graph are reflected in the jena
-	 * graph.
+	 * Convert from Jena {@link org.apache.jena.graph.Triple} to any RDFCommons
+	 * implementation.
+	 * <p>
+	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
+	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDFTermFactory} instance
+	 * for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(org.apache.jena.graph.Triple)
+	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
+	 *
+	 * @param factory {@link RDFTermFactory} to use for creating the {@link Triple} and its
+	 * {@link RDFTerm}s.
+	 * @param triple
+	 *            Jena triple
+	 * @return Converted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
 	 */
-	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-		// NOTE: This generates a new UUID salt per graph
-		return JenaFactory.fromJena(graph);
+	public static Triple fromJena(RDFTermFactory factory, org.apache.jena.graph.Triple triple) 
+			throws ConversionException{
+		if (factory instanceof RDFTermFactoryJena) {
+			// No need to convert, just wrap
+			return ((RDFTermFactoryJena) factory).fromJena(triple);
+		}
+		BlankNodeOrIRI subject;
+		IRI predicate;
+		try {
+			subject = (BlankNodeOrIRI) (fromJena(factory, triple.getSubject()));
+			predicate = (IRI) (fromJena(factory, triple.getPredicate()));
+		} (catch ClassCastException ex) {
+			throw new ConversionException("Can't convert generalized triple: " + triple, ex);
+		}
+		RDFTerm object = fromJena(factory, triple.getObject());
+		return factory.createTriple(subject, predicate, object);
 	}
-	
+
 	/**
 	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
 	 * <p>
@@ -207,13 +300,14 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
 	 * <p>
 	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link RDFTermFactoryJena} instance
+	 * {@link BlankNode} will use the provided {@link UUID} salt
 	 * in combination with {@link Node#getBlankNodeId()} 
 	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
 	 * @param quad
 	 *            Jena quad
+	 * @param salt
+	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
 	 * @return Adapted quad
 	 */		
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
@@ -221,33 +315,16 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	}
 
 	/**
-	 * Convert from Jena {@link Node} to any RDFCommons implementation
-	 * 
-	 * @param salt
+	 * Adapt an existing Jena Graph to CommonsRDF {@link Graph}. This does not
+	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
+	 * graph.
 	 */
-	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
-		if (node == null) {
-			return null;
-		}
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return ((RDFTermFactoryJena) factory).fromJena(node);
-		}
-		if (node.isURI())
-			return factory.createIRI(node.getURI());
-		if (node.isLiteral()) {
-			String lang = node.getLiteralLanguage();
-			if (lang != null && !lang.isEmpty())
-				return factory.createLiteral(node.getLiteralLexicalForm(), lang);
-			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
-				return factory.createLiteral(node.getLiteralLexicalForm());
-			IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
-			return factory.createLiteral(node.getLiteralLexicalForm(), dt);
-		}
-		if (node.isBlank())
-			return factory.createBlankNode(node.getBlankNodeLabel());
-		throw new ConversionException("Node is not a concrete RDF Term: " + node);
+	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
+		// NOTE: This generates a new UUID salt per graph
+		return JenaFactory.fromJena(graph);
 	}
+	
+
 
 	/**
 	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
@@ -267,20 +344,6 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		return g;
 	}
 
-	/**
-	 * Convert from Jena {@link org.apache.jena.graph.Triple} to any RDFCommons
-	 * implementation
-	 */
-	public static Triple fromJena(RDFTermFactory factory, org.apache.jena.graph.Triple triple) {
-		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap
-			return ((RDFTermFactoryJena) factory).fromJena(triple);
-		}
-		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, triple.getSubject()));
-		IRI predicate = (IRI) (fromJena(factory, triple.getPredicate()));
-		RDFTerm object = fromJena(factory, triple.getObject());
-		return factory.createTriple(subject, predicate, object);
-	}
 
 	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
 		if (factory instanceof RDFTermFactoryJena) {
@@ -368,7 +431,9 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	public static org.apache.jena.graph.Triple toJena(Triple triple) {
 		if (triple instanceof JenaTriple)
 			return ((JenaTriple) triple).asJenaTriple();
-		return new org.apache.jena.graph.Triple(toJena(triple.getSubject()), toJena(triple.getPredicate()),
+		return new org.apache.jena.graph.Triple(
+				toJena(triple.getSubject()), 
+				toJena(triple.getPredicate()),
 				toJena(triple.getObject()));
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
index e7bc125..5c828ef 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractRDFTerm.java
@@ -19,11 +19,11 @@
 package org.apache.commons.rdf.jena.impl;
 
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.JenaNode;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
 import org.apache.jena.graph.Node;
 import org.apache.jena.riot.out.NodeFmtLib;
 
-class AbstractRDFTerm implements JenaNode, RDFTerm {
+class AbstractRDFTerm implements JenaRDFTerm, RDFTerm {
 	private Node node;
 	// static private PrefixMapping empty = new PrefixMappingImpl() ;
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
index fc7d1c3..928da61 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/BlankNodeImpl.java
@@ -21,10 +21,10 @@ package org.apache.commons.rdf.jena.impl;
 import java.util.UUID;
 
 import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.jena.JenaNode;
+import org.apache.commons.rdf.jena.JenaBlankNode;
 import org.apache.jena.graph.Node;
 
-public class BlankNodeImpl extends AbstractRDFTerm implements BlankNode, JenaNode {
+public class BlankNodeImpl extends AbstractRDFTerm implements JenaBlankNode {
 
 	private UUID salt;
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
new file mode 100644
index 0000000..c36c615
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
@@ -0,0 +1,74 @@
+/**
+ * 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.jena.impl;
+
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaTripleLike;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+
+public class GeneralizedTripleImpl implements JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> {
+	private final RDFTerm object;
+	private final RDFTerm predicate;
+	private final RDFTerm subject;
+	private org.apache.jena.graph.Triple triple = null;
+
+	/* package */ GeneralizedTripleImpl(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		this.subject = subject;
+		this.predicate = predicate;
+		this.object = object;
+	}
+
+	/* package */ GeneralizedTripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		this.subject = JenaFactory.fromJena(triple.getSubject(), salt);
+		this.predicate = JenaFactory.fromJena(triple.getPredicate(), salt);
+		this.object = JenaFactory.fromJena(triple.getObject(), salt);
+		this.triple = triple;
+	}
+
+	@Override
+	public org.apache.jena.graph.Triple asJenaTriple() {
+		if (triple == null)
+			triple = org.apache.jena.graph.Triple.create(RDFTermFactoryJena.toJena(subject),
+					RDFTermFactoryJena.toJena(predicate), RDFTermFactoryJena.toJena(object));
+		return triple;
+	}
+	@Override
+	public RDFTerm getObject() {
+		return object;
+	}
+
+	@Override
+	public RDFTerm getPredicate() {
+		return predicate;
+	}
+
+	@Override
+	public RDFTerm getSubject() {
+		return subject;
+	}
+
+	@Override
+	public String toString() {
+		return getSubject() + " " + getPredicate() + " " + getObject() + " .";
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
index d5373b7..9ad20d0 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/IRIImpl.java
@@ -19,11 +19,11 @@
 package org.apache.commons.rdf.jena.impl;
 
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.jena.JenaNode;
+import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 
-public class IRIImpl extends AbstractRDFTerm implements IRI, JenaNode {
+public class IRIImpl extends AbstractRDFTerm implements JenaIRI {
 
 	/* package */ IRIImpl(Node node) {
 		super(node);

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 2b4eab9..797557c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -22,13 +22,17 @@ import java.util.UUID;
 
 import org.apache.commons.rdf.api.BlankNode;
 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.RDFTerm;
-import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.ConversionException;
+import org.apache.commons.rdf.jena.JenaBlankNode;
+import org.apache.commons.rdf.jena.JenaGraph;
+import org.apache.commons.rdf.jena.JenaIRI;
+import org.apache.commons.rdf.jena.JenaLiteral;
+import org.apache.commons.rdf.jena.JenaRDFTerm;
+import org.apache.commons.rdf.jena.JenaTriple;
+import org.apache.commons.rdf.jena.JenaTripleLike;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
@@ -38,44 +42,48 @@ public class JenaFactory {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
 	}
 
-	public static BlankNode createBlankNode(String id, UUID salt) {
+	public static JenaBlankNode createBlankNode(String id, UUID salt) {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
 	}
 
-	public static BlankNode createBlankNode(UUID salt) {
+	public static JenaBlankNode createBlankNode(UUID salt) {
 		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
 
-	public static Graph createGraph() {
+	public static JenaGraph createGraph() {
 		return createGraph(UUID.randomUUID());
 	}
 
-	public static Graph createGraph(UUID salt) {
+	public static JenaGraph createGraph(UUID salt) {
 		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
 	}
 
 	// basic components to commonsrdf backed by Jena.
-	public static IRI createIRI(String iriStr) {
+	public static JenaIRI createIRI(String iriStr) {
 		return new IRIImpl(iriStr);
 	}
 
-	public static Literal createLiteral(String lexStr) {
+	public static JenaLiteral createLiteral(String lexStr) {
 		return new LiteralImpl(NodeFactory.createLiteral(lexStr));
 	}
 
-	public static Literal createLiteralDT(String lexStr, String datatypeIRI) {
+	public static JenaLiteral createLiteralDT(String lexStr, String datatypeIRI) {
 		return new LiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
 	}
 
-	public static Literal createLiteralLang(String lexStr, String langTag) {
+	public static JenaLiteral createLiteralLang(String lexStr, String langTag) {
 		return new LiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
 	}
 
-	public static Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+	public static JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return new TripleImpl(subject, predicate, object);
 	}
 
-	public static RDFTerm fromJena(Node node, UUID salt) throws ConversionException {
+	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return new GeneralizedTripleImpl(subject, predicate, object);
+	}
+	
+	public static JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
 		if (node.isURI())
 			return new IRIImpl(node);
 		if (node.isLiteral()) {
@@ -92,18 +100,22 @@ public class JenaFactory {
 		throw new ConversionException("Node is not a concrete RDF Term: " + node);
 	}
 
-	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
+	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
 		return new GraphImpl(graph, UUID.randomUUID());
 	}
 
-	public static Graph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
+	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
 		return new GraphImpl(graph, salt);
 	}
 
-	public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
 		return new TripleImpl(triple, salt);
 	}
 
+	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
+		return new GeneralizedTripleImpl(triple, salt);
+	}
+	
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return new QuadImpl(quad, salt);
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
index efcf099..0530d08 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/LiteralImpl.java
@@ -23,9 +23,10 @@ import java.util.Optional;
 
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.jena.JenaLiteral;
 import org.apache.jena.graph.Node;
 
-public class LiteralImpl extends AbstractRDFTerm implements Literal {
+public class LiteralImpl extends AbstractRDFTerm implements JenaLiteral {
 
 	/* package */ LiteralImpl(Node node) {
 		super(node);

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
index 31c96b2..16deb02 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
@@ -30,7 +30,7 @@ import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.JenaQuad;
 import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 
-public class QuadImpl implements Quad, JenaQuad {
+public class QuadImpl implements JenaQuad {
 
 	private final Optional<BlankNodeOrIRI> graphName;
 	private final RDFTerm object;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35c32616/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
index 3a0f15b..f65fd6d 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
@@ -25,6 +25,7 @@ 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.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 
@@ -40,9 +41,13 @@ public class TripleImpl implements Triple, JenaTriple {
 		this.object = object;
 	}
 
-	/* package */ TripleImpl(org.apache.jena.graph.Triple triple, UUID salt) {
-		this.subject = (BlankNodeOrIRI) JenaFactory.fromJena(triple.getSubject(), salt);
-		this.predicate = (IRI) JenaFactory.fromJena(triple.getPredicate(), salt);
+	/* package */ TripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		try {
+			this.subject = (BlankNodeOrIRI) JenaFactory.fromJena(triple.getSubject(), salt);
+			this.predicate = (IRI) JenaFactory.fromJena(triple.getPredicate(), salt);
+		} catch (ClassCastException ex) {
+			throw new ConversionException("Can't adapt generalized triple: " + triple, ex);
+		}
 		this.object = JenaFactory.fromJena(triple.getObject(), salt);
 		this.triple = triple;
 	}



[39/50] incubator-commonsrdf git commit: Removed JenaAny, JenaVariable

Posted by st...@apache.org.
Removed JenaAny, JenaVariable

throw ConversionException if node can't be converted


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

Branch: refs/heads/master
Commit: 3fdb27ff0d418f62917d8beb224a823e5d6e2068
Parents: e569efe
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 09:37:37 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 09:37:37 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/jena/JenaAny.java    | 39 ------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    |  8 ---
 .../apache/commons/rdf/jena/JenaVariable.java   | 39 ------------
 .../commons/rdf/jena/impl/JenaAnyImpl.java      | 54 -----------------
 .../commons/rdf/jena/impl/JenaFactory.java      | 18 ++----
 .../commons/rdf/jena/impl/JenaVariableImpl.java | 64 --------------------
 6 files changed, 5 insertions(+), 217 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3fdb27ff/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
deleted file mode 100644
index 5b6f398..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
+++ /dev/null
@@ -1,39 +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.commons.rdf.jena;
-
-import org.apache.jena.graph.Node;
-
-/**
- * A placeholder for "any" RDFTerm.
- * <p>
- * Equivalent to <code>[]</code> in SPARQL. This is a Jena-specific
- * RDFTerm extension used in SPARQL queries.
- * <p>
- * Note that any JenaAny is {@link Object#equals(Object)} equal to 
- * any other JenaAny - in practice there is only a singleton instance -
- * but  every ocurrance of JenaAny in a generalized statement 
- * would independently represent "any" RDFTerm.
- * 
- * @see Node#ANY
- * 
- */
-public interface JenaAny extends JenaRDFTerm {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3fdb27ff/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 6c1d9f7..6793335 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -138,14 +138,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.createQuad(subject, predicate, object, graphName);
 	}
 
-	public JenaAny createAnyVariable() {
-		return JenaFactory.createAnyVariable();
-	}
-	
-	public JenaVariable createVariable(String variableName) {
-		return JenaFactory.createVariable(variableName);
-	}
-	
 	/**
 	 * Create a generalized Jena triple.
 	 * <p>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3fdb27ff/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
deleted file mode 100644
index 099018f..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
+++ /dev/null
@@ -1,39 +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.commons.rdf.jena;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.jena.graph.Node;
-
-/**
- * A placeholder for a variable RDFTerm.
- * <p>
- * Equivalent to <code>?variable</code> in SPARQL. This is a Jena-specific
- * RDFTerm extension used in SPARQL queries.
- * <p>
- * Note that any JenaVariable is {@link Object#equals(Object)} equal to 
- * any other JenaVariable if they have the same {@link #getVariableName()}. There
- * is no equivalent of {@link BlankNode#uniqueReference()} and actual equality depend
- * on the SPARQL query using the variable.
- * 
- * @see Node#isVariable()
- */
-public interface JenaVariable extends JenaRDFTerm {
-	public String getVariableName();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3fdb27ff/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
deleted file mode 100644
index 068cbd8..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaAnyImpl.java
+++ /dev/null
@@ -1,54 +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.commons.rdf.jena.impl;
-
-import org.apache.commons.rdf.jena.JenaAny;
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.jena.graph.Node;
-
-public class JenaAnyImpl implements JenaRDFTerm, JenaAny {
-
-	static class Singleton {
-		static JenaAnyImpl instance = new JenaAnyImpl();
-	}
-	
-	/**
-	 * Private constructor
-	 * 
-	 * @see {@link Singleton#instance}
-	 */
-	private JenaAnyImpl() {
-	}
-	
-	@Override
-	public String ntriplesString() {
-		return "[]";
-	}
-
-	@Override
-	public Node asJenaNode() {
-		return Node.ANY;
-	}
-	
-	@Override
-	public boolean equals(Object obj) {
-		return obj == this || obj instanceof JenaAny;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3fdb27ff/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index eb60cc0..2f75436 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -26,7 +26,6 @@ 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.jena.ConversionException;
-import org.apache.commons.rdf.jena.JenaAny;
 import org.apache.commons.rdf.jena.JenaBlankNode;
 import org.apache.commons.rdf.jena.JenaDataset;
 import org.apache.commons.rdf.jena.JenaGraph;
@@ -38,7 +37,6 @@ import org.apache.commons.rdf.jena.JenaRDFTerm;
 import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.commons.rdf.jena.JenaTripleLike;
-import org.apache.commons.rdf.jena.JenaVariable;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.rdf.model.Model;
@@ -99,14 +97,6 @@ public class JenaFactory {
 	public static JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
 		return new JenaQuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
 	}
-	
-	public static JenaVariable createVariable(String name) {
-		return new JenaVariableImpl(NodeFactory.createVariable(name));
-	}
-	
-	public static JenaAny createAnyVariable() {
-		return JenaAnyImpl.Singleton.instance;
-	}
 
 	public static JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
 		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
@@ -134,12 +124,14 @@ public class JenaFactory {
 			return new JenaBlankNodeImpl(node, salt);
 		}
 		if (node.equals(Node.ANY)) {
-			return JenaAnyImpl.Singleton.instance;
+			// NOTE: JenaAny no longer supported by Commons RDF
+			//return JenaAnyImpl.Singleton.instance;
 		}
 		if (node.isVariable()) {
-			return new JenaVariableImpl(node);
+			// NOTE: JenaVariable no longer supported by Commons RDF
+			//return new JenaVariableImpl(node);
 		}
-		throw new IllegalArgumentException("Unrecognized node type: " + node);
+		throw new ConversionException("Unrecognized node type: " + node);
 	}
 
 	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3fdb27ff/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
deleted file mode 100644
index 8027cf2..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaVariableImpl.java
+++ /dev/null
@@ -1,64 +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.commons.rdf.jena.impl;
-
-import java.util.Objects;
-
-import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.commons.rdf.jena.JenaVariable;
-import org.apache.jena.graph.Node;
-
-public class JenaVariableImpl implements JenaRDFTerm, JenaVariable {
-
-	private Node node;
-
-	JenaVariableImpl(Node node) {	
-		if (! node.isVariable()) {
-			throw new IllegalArgumentException("Node is not a variable: " + node);
-		}
-		this.node = node;
-	}
-
-	@Override
-	public String ntriplesString() {
-		return "?" + getVariableName();
-	}
-
-	@Override
-	public String getVariableName() {
-		return node.getName();
-	}
-
-	@Override
-	public Node asJenaNode() {
-		return node;
-	}
-	
-	@Override
-	public boolean equals(Object obj) {
-		if (obj == this) { 
-			return true;
-		}
-		if (! (obj instanceof JenaVariable)) { 
-			return false;
-		}
-		return Objects.equals(getVariableName(), ((JenaVariable)obj).getVariableName());
-	}
-
-}


[04/50] incubator-commonsrdf git commit: ASF license headers

Posted by st...@apache.org.
ASF license 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/0475259b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/0475259b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/0475259b

Branch: refs/heads/master
Commit: 0475259b2eebed51fc9563fc2dbbb74c70d9d825
Parents: c38aae2
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 12:42:18 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 12:42:18 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/jena/JenaAny.java | 18 ++++++++++++++++++
 .../apache/commons/rdf/jena/JenaBlankNode.java    | 18 ++++++++++++++++++
 .../java/org/apache/commons/rdf/jena/JenaIRI.java | 18 ++++++++++++++++++
 .../org/apache/commons/rdf/jena/JenaLiteral.java  | 18 ++++++++++++++++++
 .../org/apache/commons/rdf/jena/JenaVariable.java | 18 ++++++++++++++++++
 .../org/apache/commons/rdf/jena/impl/AnyImpl.java | 18 ++++++++++++++++++
 .../apache/commons/rdf/jena/impl/GraphImpl.java   |  3 +--
 .../commons/rdf/jena/impl/VariableImpl.java       | 18 ++++++++++++++++++
 8 files changed, 127 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
index 90599a4..b6c32fd 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaAny.java
@@ -1,3 +1,21 @@
+/**
+ * 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.jena;
 
 public interface JenaAny extends JenaRDFTerm {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
index 3c7a912..099821f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaBlankNode.java
@@ -1,3 +1,21 @@
+/**
+ * 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.jena;
 
 import org.apache.commons.rdf.api.BlankNode;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
index c001d74..ee58465 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaIRI.java
@@ -1,3 +1,21 @@
+/**
+ * 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.jena;
 
 import org.apache.commons.rdf.api.IRI;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
index a2906ff..7d0757b 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaLiteral.java
@@ -1,3 +1,21 @@
+/**
+ * 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.jena;
 
 import org.apache.commons.rdf.api.Literal;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
index 55791d4..218272f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaVariable.java
@@ -1,5 +1,23 @@
+/**
+ * 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.jena;
 
+
 public interface JenaVariable extends JenaRDFTerm {
 	public String getVariableName();
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
index 956851b..a468f43 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AnyImpl.java
@@ -1,3 +1,21 @@
+/**
+ * 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.jena.impl;
 
 import org.apache.commons.rdf.jena.JenaAny;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
index 29d3a61..1e03b2c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
@@ -23,7 +23,6 @@ import java.util.UUID;
 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 org.apache.commons.rdf.api.Triple;
@@ -34,7 +33,7 @@ import org.apache.jena.graph.Node;
 import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFDataMgr;
 
-public class GraphImpl implements Graph, JenaGraph {
+public class GraphImpl implements JenaGraph {
 
 	private org.apache.jena.graph.Graph graph;
 	private UUID salt;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/0475259b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
index 13f62e9..130462a 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/VariableImpl.java
@@ -1,3 +1,21 @@
+/**
+ * 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.jena.impl;
 
 import org.apache.commons.rdf.jena.JenaRDFTerm;


[49/50] incubator-commonsrdf git commit: ConversionException is not a JenaException

Posted by st...@apache.org.
ConversionException is not a JenaException

just RuntimeException


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

Branch: refs/heads/master
Commit: 7dd08a24f18ed8e485e5f327a9be667c1700a28d
Parents: 1271ae0
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 15:19:29 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 15:19:29 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/jena/ConversionException.java    | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7dd08a24/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java b/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
index be75427..29b9060 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/ConversionException.java
@@ -18,8 +18,6 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.shared.JenaException;
-
 /**
  * Exception thrown when a problem arises across the Jena-CommonRDF boundary.
  * <p>
@@ -29,7 +27,7 @@ import org.apache.jena.shared.JenaException;
  * generalized RDF</a>.
  */
 
-public class ConversionException extends JenaException {
+public class ConversionException extends RuntimeException {
 	private static final long serialVersionUID = -898179977312382568L;
 
 	public ConversionException() {


[31/50] incubator-commonsrdf git commit: asJenaModel() might be made on demand

Posted by st...@apache.org.
asJenaModel() might be made on demand

See
https://github.com/apache/incubator-commonsrdf/pull/23#pullrequestreview-2146939


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

Branch: refs/heads/master
Commit: 2462a9540c67113c797c309d1998d5336c88c9a0
Parents: c763ffa
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 15:42:53 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 15:42:53 2016 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/commons/rdf/jena/JenaGraph.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2462a954/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
index fa8954e..2ce453f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
@@ -34,12 +34,16 @@ public interface JenaGraph extends org.apache.commons.rdf.api.Graph {
 	public Graph asJenaGraph();
 
 	/**
-	 * Return the underlying Jena {@link Model}.
+	 * Return the graph as a Jena {@link Model}.
 	 * <p>
 	 * Changes to the Jena model are reflected in the Commons RDF graph and vice
 	 * versa.
+	 * <p>
+	 * Note that in some cases there is no underlying Jena {@link Model}, in
+	 * which case this method will create one. Subsequent calls should return
+	 * the same model.
 	 * 
 	 * @return A Jena {@link Model}
-	 */	
+	 */
 	public Model asJenaModel();
 }


[27/50] incubator-commonsrdf git commit: Merge branch 'master' into jena

Posted by st...@apache.org.
Merge branch 'master' into jena


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

Branch: refs/heads/master
Commit: 70db409c0bf07376dad188b88a8ed8ce89a6b81e
Parents: a423c41 5afd0bd
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 23:59:07 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 23:59:07 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/api/Graph.java  |  5 ++
 .../java/org/apache/commons/rdf/api/Quad.java   |  4 +-
 .../commons/rdf/experimental/RDFParser.java     |  8 +--
 .../commons/rdf/experimental/package-info.java  |  1 -
 pom.xml                                         |  4 +-
 .../simple/experimental/AbstractRDFParser.java  | 54 +++++++++++++-------
 .../rdf/simple/experimental/package-info.java   | 11 ++--
 7 files changed, 53 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/70db409c/pom.xml
----------------------------------------------------------------------


[12/50] incubator-commonsrdf git commit: Merge branch 'master' into jena

Posted by st...@apache.org.
Merge branch 'master' into jena


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

Branch: refs/heads/master
Commit: bd644d3a6a7cce2705259a66d143b2fed06fa565
Parents: c6d654b 9782a58
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 8 15:00:18 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 8 15:00:18 2016 +0100

----------------------------------------------------------------------
 LICENSE-header.txt                              |  16 +
 RELEASE-PROCESS.md                              |  20 ++
 api/pom.xml                                     |   5 +-
 .../org/apache/commons/rdf/api/GraphLike.java   |  27 +-
 .../java/org/apache/commons/rdf/api/Quad.java   |  25 +-
 .../org/apache/commons/rdf/api/QuadLike.java    |  24 +-
 .../apache/commons/rdf/api/RDFTermFactory.java  |   3 +-
 .../java/org/apache/commons/rdf/api/Triple.java |   2 +
 .../org/apache/commons/rdf/api/TripleLike.java  |  20 +-
 api/src/site/resources/profile.jacoco           |   0
 api/src/site/resources/profile.japicmp          |   0
 pom.xml                                         | 307 ++++++++++++-------
 .../commons/rdf/simple/DatasetGraphView.java    |   2 +-
 simple/src/site/resources/profile.jacoco        |   0
 simple/src/site/resources/profile.japicmp       |   0
 src/conf/checkstyle-suppressions.xml            |  32 ++
 src/conf/checkstyle.xml                         | 197 ++++++++++++
 src/conf/findbugs-exclude-filter.xml            |  27 ++
 src/conf/pmd.xml                                |  25 ++
 src/site/markdown/implementations.md            |  63 +++-
 src/site/markdown/index.md                      |  58 +++-
 src/site/resources/images/class-diagram.nomnoml |  49 ++-
 src/site/resources/images/class-diagram.png     | Bin 57632 -> 56161 bytes
 src/site/site.xml                               |   3 +-
 24 files changed, 722 insertions(+), 183 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/bd644d3a/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 6dcdb54,f9b85fc..e7e009e
--- a/pom.xml
+++ b/pom.xml
@@@ -59,10 -51,9 +51,12 @@@
          <commons.site.path>rdf</commons.site.path>
          <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commonsrdf/content/</commons.scmPubUrl>
          <commons.scmPubCheckoutDirectory>${project.build.directory}/site-content</commons.scmPubCheckoutDirectory>
-         <commons.javadoc.java.link>http://docs.oracle.com/javase/8/docs/api/</commons.javadoc.java.link>
+         <commons.javadoc.java.link>https://docs.oracle.com/javase/8/docs/api/</commons.javadoc.java.link>
+         <!-- upgrade from 0.8.0 -->
+          <commons.japicmp.version>0.9.0</commons.japicmp.version>
 +        <ver.jena>3.1.0</ver.jena>
 +        <dexx.collection.version>0.6</dexx.collection.version>
 +        <servicemix.xerces.version>2.11.0_1</servicemix.xerces.version>
      </properties>
  
      <scm>


[28/50] incubator-commonsrdf git commit: COMMONSRDF-33 JavaDoc enhancement

Posted by st...@apache.org.
COMMONSRDF-33 JavaDoc enhancement


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

Branch: refs/heads/master
Commit: b0c55bda2f1381b1b245228d8310c0cf8e7b5035
Parents: 70db409
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 00:49:33 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 00:49:33 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 202 ++++++++++++++-----
 .../rdf/jena/experimental/package-info.java     |   3 +-
 2 files changed, 149 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b0c55bda/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 7359acb..bde5bc4 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -41,6 +41,7 @@ import org.apache.jena.datatypes.xsd.XSDDatatype;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
 import org.apache.jena.riot.RDFLanguages;
 import org.apache.jena.riot.system.StreamRDF;
 import org.apache.jena.riot.system.StreamRDFBase;
@@ -153,6 +154,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param subject The subject of the statement
+	 * @param predicate The predicate of the statement
+	 * @param object The object of the statement
+
 	 *            
 	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
 	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
@@ -181,6 +185,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
 	 *            <code>true</code>.
+	 * @return Adapted {@link JenaRDFTerm}
 	 * @throws ConversionException
 	 *             if the node is not concrete.
 	 */
@@ -206,6 +211,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param salt
 	 *            UUID salt for the purpose of
 	 *            {@link BlankNode#uniqueReference()}
+	 * @return Adapted {@link JenaRDFTerm}
 	 * @throws ConversionException
 	 *             if the node is not concrete.
 	 */
@@ -214,7 +220,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	/**
-	 * Convert from Jena {@link Node} to any RDFCommons implementation.
+	 * Convert from Jena {@link Node} to any Commons RDF implementation.
 	 * <p>
 	 * Note that if the {@link Node#isBlank()}, then the factory's 
 	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
@@ -228,6 +234,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
 	 *            <code>true</code>.
+	 * @return Adapted {@link RDFTerm}            
 	 * @throws ConversionException
 	 *             if the node is not concrete.
 	 */
@@ -269,8 +276,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
-	 *            Jena triple
-	 * @return Adapted triple
+	 *            Jena {@link org.apache.jena.graph.Triple} to adapt
+	 * @return Adapted {@link JenaTriple}
 	 * @throws ConversionException
 	 *             if any of the triple's nodes are not concrete or the triple
 	 *             is a generalized triple
@@ -393,8 +400,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Convert from Jena {@link org.apache.jena.graph.Triple} to any RDFCommons
-	 * implementation.
+	 * Convert from Jena {@link org.apache.jena.graph.Triple} to a Commons RDF
+	 * {@link Triple}.
 	 * <p>
 	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
 	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
@@ -467,18 +474,22 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF
+	 * {@link Graph}.
 	 * <p>
-	 * This does not
-	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
-	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * This does not take a copy, changes to the CommonsRDF Graph are reflected
+	 * in the jena graph, which is accessible from
+	 * {@link JenaGraph#asJenaGraph()}.
 	 * <p>
 	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link JenaRDFTermFactory} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDFTermFactory} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param graph
+	 *            Jena {@link org.apache.jena.graph.Graph} to adapt
+	 * @return Adapted {@link JenaGraph}
 	 */
 	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
 		return JenaFactory.fromJena(graph, getSalt());
@@ -495,27 +506,32 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link JenaRDFTermFactory} instance
 	 * in combination with {@link Node#getBlankNodeId()} 
 	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-
+	 * @param model
+	 *            Jena {@link org.apache.jena.rdf.model.Model} to adapt
+	 * @return Adapted {@link JenaGraph}
 	 */
 	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
 		return JenaFactory.fromJena(model, getSalt());
 	}	
 
 	/**
-	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF
+	 * {@link Graph}.
 	 * <p>
-	 * This does not
-	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
-	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * This does not take a copy, changes to the CommonsRDF Graph are reflected
+	 * in the jena graph, which is accessible from
+	 * {@link JenaGraph#asJenaGraph()}.
 	 * <p>
 	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * {@link BlankNode} will use the provided {@link UUID} salt in combination
+	 * with {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param graph Jena graph to adapt
-	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted graph 
+	 * @param graph
+	 *            Jena {@link org.apache.jena.graph.Graph} to adapt
+	 * @param salt
+	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted {@link JenaGraph}
 	 */
 	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
 		return JenaFactory.fromJena(graph, salt);
@@ -534,8 +550,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * in combination with {@link Node#getBlankNodeId()} 
 	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param datasetGraph Jena dataset graph to adapt
-	 * @return Adapted dataset 
+	 * @param datasetGraph Jena {@link DatasetGraph} to adapt
+	 * @return Adapted {@link JenaDataset} 
 	 */
 	public JenaDataset fromJena(DatasetGraph datasetGraph) {
 		return JenaFactory.fromJena(datasetGraph, getSalt());
@@ -554,44 +570,46 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * in combination with {@link Node#getBlankNodeId()} 
 	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param datasetGraph Jena dataset graph to adapt
-	 * @return Adapted dataset 
+	 * @param datasetGraph Jena {@link org.apache.jena.query.Dataset} to adapt
+	 * @return Adapted {@link JenaDataset} 
 	 */
 	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
 		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
 	}		
 	
 	/**
-	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
+	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF
+	 * {@link Dataset}.
 	 * <p>
-	 * This does not
-	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
-	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * This does not take a copy, changes to the CommonsRDF Dataset are
+	 * reflected in the jena dataset graph, which is accessible from
+	 * {@link JenaDataset#asJenaDatasetGraph()}.
 	 * <p>
-	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * If the dataset contains any {@link Node#isBlank()}, then any
+	 * corresponding {@link BlankNode} will use the provided {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @param datasetGraph Jena dataset graph to adapt
-	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted dataset 
+	 * @param datasetGraph
+	 *            Jena {@link DatasetGraph} to adapt
+	 * @param salt
+	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted {@link JenaDataset}
 	 */
 	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
 		return JenaFactory.fromJena(datasetGraph, salt);
 	}	
 	
 	/**
-	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
-	 * if the factory is a RDFTermFactoryJena. Use
+	 * Convert from Jena to any Commons RDF implementation. This is a copy, even
+	 * if the factory is a JenaRDFTermFactory. Use
 	 * {@link #fromJena(org.apache.jena.graph.Graph)} for a wrapper.
+	 * 
+	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}s
+	 * @param graph Jena {@link org.apache.jena.graph.Graph} to copy
+	 * @return Converted Graph 
 	 */
 	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
-		if (factory instanceof JenaRDFTermFactory) {
-			// No need to convert, just wrap
-			return ((JenaRDFTermFactory)factory).fromJena(graph);
-		}
-
 		Graph g = factory.createGraph();
 		graph.find(Node.ANY, Node.ANY, Node.ANY).forEachRemaining(t -> {
 			g.add(fromJena(factory, t));
@@ -599,6 +617,29 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return g;
 	}
 
+	/**
+	 * Convert from Jena {@link org.apache.jena.sparql.core.Quad} to a Commons
+	 * RDF {@link Quad}.
+	 * <p>
+	 * Note that if any of the quad's nodes {@link Node#isBlank()}, then the
+	 * factory's {@link RDFTermFactory#createBlankNode(String)} will be used,
+	 * meaning that care should be taken if reusing an {@link RDFTermFactory}
+	 * instance for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
+	 * @see #fromJena(org.apache.jena.sparql.core.Quad, UUID)
+	 * @see #fromJenaGeneralized(org.apache.jena.sparql.core.Quad)
+	 *
+	 * @param factory
+	 *            {@link RDFTermFactory} to use for creating the {@link Triple}
+	 *            and its {@link RDFTerm}s.
+	 * @param quad
+	 *            Jena {@link org.apache.jena.sparql.core.Quad} to adapt
+	 * @return Converted {@link Quad}
+	 * @throws ConversionException
+	 *             if any of the quad's nodes are not concrete or the quad
+	 *             is a generalized quad
+	 */
 	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
 		if (factory instanceof JenaRDFTermFactory) {
 			// No need to convert, just wrap
@@ -620,8 +661,19 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Create a {@link StreamRDF} that inserts into any RDFCommons
-	 * implementation of Graph
+	 * Create a {@link StreamRDF} instance that inserts the converted
+	 * {@link Quad}s. into a the provided {@link Consumer}.
+	 * <p>
+	 * The returned {@link StreamRDF} can be used for instance with Jena's
+	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
+	 * 
+	 * @param factory
+	 *            {@link RDFTermFactory} to use for creating {@link RDFTerm}s
+	 *            and {@link Quad}s.
+	 * @param consumer
+	 *            A {@link Consumer} of {@link Quad}s
+	 * @return A {@link StreamRDF} that will stream converted quads to the
+	 *         consumer
 	 */
 	public static StreamRDF streamJenaToCommonsRDF(RDFTermFactory factory, Consumer<Quad> consumer) {
 		return new StreamRDFBase() {
@@ -633,8 +685,20 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	/**
-	 * Create a {@link StreamRDF} that inserts into any RDFCommons
-	 * implementation of Graph
+	 * Create a {@link StreamRDF} instance that inserts generalized
+	 * {@link TripleLike}s. into a the provided {@link Consumer}.
+	 * <p>
+	 * A generalized triple allows any {@link RDFTerm} for
+	 * {@link TripleLike#getSubject()}, {@link TripleLike#getPredicate()} and
+	 * {@link TripleLike#getObject()}.
+	 * <p>
+	 * The returned {@link StreamRDF} can be used for instance with Jena's
+	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
+	 * 
+	 * @param generalizedConsumer
+	 *            A {@link Consumer} of generalized {@link TripleLike}s
+	 * @return A {@link StreamRDF} that will stream generalized triples to the
+	 *         consumer
 	 */
 	public StreamRDF streamJenaToGeneralizedTriple(Consumer<TripleLike<RDFTerm, RDFTerm, RDFTerm>> generalizedConsumer) {
 		return new StreamRDFBase() {			
@@ -646,8 +710,20 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}	
 
 	/**
-	 * Create a {@link StreamRDF} that inserts into any RDFCommons
-	 * implementation of Graph
+	 * Create a {@link StreamRDF} instance that inserts generalized
+	 * {@link QuadLike}s. into a the provided {@link Consumer}.
+	 * <p>
+	 * A generalized quad allows any {@link RDFTerm} for
+	 * {@link QuadLike#getSubject()}, {@link TripleLike#getPredicate()},
+	 * {@link QuadLike#getObject()} and {@link QuadLike#getGraphName()} .
+	 * <p>
+	 * The returned {@link StreamRDF} can be used for instance with Jena's
+	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
+	 * 
+	 * @param generalizedConsumer
+	 *            A {@link Consumer} of generalized {@link QuadLike}s
+	 * @return A {@link StreamRDF} that will stream generalized quads to the
+	 *         consumer
 	 */
 	public StreamRDF streamJenaToGeneralizedQuad(Consumer<QuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>> generalizedConsumer) {
 		return new StreamRDFBase() {
@@ -662,6 +738,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
 	 * originally, return that original object else create a copy using Jena
 	 * objects.
+	 * 
+	 * @param graph Commons RDF {@link Graph} to convert
+	 * @return Converted Jena {@link org.apache.jena.graph.Graph}
 	 */
 	public static org.apache.jena.graph.Graph toJena(Graph graph) {
 		if (graph instanceof JenaGraph)
@@ -675,6 +754,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
 	 * originally, return that original object, else create a copy using Jena
 	 * objects.
+	 * 
+	 * @param term Commons RDF {@link RDFTerm} to convert
+	 * @return Converted Jena {@link Node}
 	 */
 	public static Node toJena(RDFTerm term) {
 		if (term == null) {
@@ -709,6 +791,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * <p>
 	 * If the triple was from Jena originally, return that original object, else
 	 * create a copy using Jena objects.
+	 * 
+	 * @param triple Commons RDF {@link Triple} to convert
+	 * @return Converted Jena {@link org.apache.jena.graph.Triple}
 	 */
 	public static org.apache.jena.graph.Triple toJena(Triple triple) {
 		if (triple instanceof JenaTriple)
@@ -726,6 +811,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * <p>
 	 * If the quad was from Jena originally, return that original object,
 	 * otherwise create a copy using Jena objects.
+	 *
+	 * @param quad Commons RDF {@link Quad} to convert
+	 * @return Converted Jena {@link org.apache.jena.sparql.core.Quad}
 	 */
 	public static org.apache.jena.sparql.core.Quad toJena(Quad quad) {
 		if (quad instanceof JenaQuad) {
@@ -754,10 +842,16 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Return the {@link UUID} salt.
+	 * Return the {@link UUID} salt used by this factory.
 	 * <p>
 	 * The salt is used for the purposes of {@link BlankNode} identity, see
 	 * {@link BlankNode#uniqueReference()} for details.
+	 * <p>
+	 * This salt can be used with the constructor 
+	 * {@link JenaRDFTermFactory#JenaRDFTermFactory(UUID)} or
+	 * methods like {@link #fromJena(Node, UUID)} and 
+	 * {@link #fromJena(org.apache.jena.graph.Triple, UUID)}
+	 * to ensure consistent {@link BlankNode}s. 
 	 * 
 	 * @return The {@link UUID} used as salt
 	 */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b0c55bda/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
index 9fe39f4..aa2201d 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
@@ -24,11 +24,10 @@
  * <p>
  * When a class has stabilized, it will move to the
  * {@link org.apache.commons.rdf.jena} package.
- * <p>
  * <ul>
  * <li>{@link JenaRDFParser} - a Jena-backed
  * implementations of 
- * {@link org.apache.commons.rdf.api.experimental.RDFParser}.</li>
+ * {@link org.apache.commons.rdf.experimental.RDFParser}.</li>
  * </ul>
  */
 package org.apache.commons.rdf.jena.experimental;
\ No newline at end of file


[10/50] incubator-commonsrdf git commit: Added fromJena(DatasetGraph)

Posted by st...@apache.org.
Added fromJena(DatasetGraph)


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

Branch: refs/heads/master
Commit: d912b6bf0d81a190bcb4eb3792c08750f39b95dc
Parents: 20c7ad3
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 16:49:06 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 16:49:06 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 43 +++++++++++++++++++-
 .../commons/rdf/jena/impl/JenaFactory.java      |  9 ++++
 2 files changed, 50 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/d912b6bf/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 6560894..d8e41b1 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -44,6 +44,7 @@ import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFLanguages;
 import org.apache.jena.riot.system.StreamRDF;
 import org.apache.jena.riot.system.StreamRDFBase;
+import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
@@ -462,11 +463,10 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * for the purpose of its {@link BlankNode#uniqueReference()}.
 
 	 */
-	public Graph fromJena(org.apache.jena.graph.Graph graph) {
+	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
 		return JenaFactory.fromJena(graph, salt);
 	}
 
-	
 
 	/**
 	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
@@ -488,6 +488,45 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.fromJena(graph, salt);
 	}
 
+	/**
+	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena dataset graph to adapt
+	 * @return Adapted dataset 
+	 */
+	public JenaDataset fromJena(DatasetGraph datasetGraph) {
+		return JenaFactory.fromJena(datasetGraph, salt);
+	}	
+	
+	/**
+	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena dataset graph to adapt
+	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted dataset 
+	 */
+	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
+		return JenaFactory.fromJena(datasetGraph, salt);
+	}	
 	
 	/**
 	 * Convert from Jena to any RDFCommons implementation. This is a copy, even

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/d912b6bf/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index da24277..1832232 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -30,6 +30,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaAny;
 import org.apache.commons.rdf.jena.JenaBlankNode;
+import org.apache.commons.rdf.jena.JenaDataset;
 import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.commons.rdf.jena.JenaLiteral;
@@ -150,6 +151,14 @@ public class JenaFactory {
 		return new GraphImpl(graph, salt);
 	}
 
+	public static JenaDataset fromJena(DatasetGraph datasetGraph) {
+		return new DatasetImpl(datasetGraph, UUID.randomUUID());
+	}
+
+	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
+		return new DatasetImpl(datasetGraph, salt);
+	}
+	
 	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
 		return new TripleImpl(triple, salt);
 	}


[07/50] incubator-commonsrdf git commit: GeneralizedQuadImpl common for QuadImpl and TripleImpl

Posted by st...@apache.org.
GeneralizedQuadImpl common for QuadImpl and TripleImpl


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

Branch: refs/heads/master
Commit: a3cb3b13a74aede64603dd651b5e549b89bc4a60
Parents: 76dbe50
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 15:16:47 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 15:18:17 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/jena/JenaQuad.java   |   8 +-
 .../apache/commons/rdf/jena/JenaQuadLike.java   |  35 +++++
 .../commons/rdf/jena/JenaRDFParserBuilder.java  |  38 ++++++
 .../commons/rdf/jena/JenaRDFTermFactory.java    |  70 +++++++++-
 .../rdf/jena/impl/GeneralizedQuadImpl.java      | 136 +++++++++++++++++++
 .../rdf/jena/impl/GeneralizedTripleImpl.java    |  74 ----------
 .../commons/rdf/jena/impl/JenaFactory.java      |  21 ++-
 .../apache/commons/rdf/jena/impl/QuadImpl.java  |  82 ++---------
 .../commons/rdf/jena/impl/TripleImpl.java       |  57 ++------
 9 files changed, 326 insertions(+), 195 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
index 7fdb658..45d9d2c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuad.java
@@ -18,9 +18,11 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.sparql.core.Quad;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDFTerm;
 
 /** Access the Jena quad backing this object */
-public interface JenaQuad extends org.apache.commons.rdf.api.Quad {
-	public Quad asJenaQuad();
+public interface JenaQuad extends org.apache.commons.rdf.api.Quad, 
+	JenaQuadLike<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI> {	
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
new file mode 100644
index 0000000..015e8c9
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaQuadLike.java
@@ -0,0 +1,35 @@
+/**
+ * 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.jena;
+
+import org.apache.commons.rdf.api.QuadLike;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.jena.sparql.core.Quad;
+
+/** Access the Jena quad backing this object */
+public interface JenaQuadLike<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> 
+	extends JenaTripleLike<S,P,O>, QuadLike<S,P,O,G> {
+
+	/**
+	 * Return the adapted Jena quad
+	 * 
+	 * @return Adapted Jena {@link Quad}.
+	 */
+	public Quad asJenaQuad();
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
index 9b5ac29..2149932 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
@@ -21,10 +21,14 @@ package org.apache.commons.rdf.jena;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.Files;
+import java.util.function.Consumer;
 
 import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFParserBuilder;
+import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.simple.AbstractRDFParserBuilder;
 import org.apache.jena.graph.Graph;
 import org.apache.jena.riot.Lang;
@@ -34,16 +38,44 @@ import org.apache.jena.riot.system.StreamRDFLib;
 
 public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParserBuilder> implements RDFParserBuilder {
 
+	private Consumer<TripleLike<RDFTerm, RDFTerm, RDFTerm>> generalizedConsumerTriple;
+	private Consumer<QuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>> generalizedConsumerQuad;
+
 	protected RDFTermFactory createRDFTermFactory() {
 		return new JenaRDFTermFactory();
 	}
 
+	public JenaRDFParserBuilder targetGeneralizedTriple(Consumer<TripleLike<RDFTerm,RDFTerm,RDFTerm>> consumer) {
+		JenaRDFParserBuilder c = this.clone();
+		c.resetTarget();		
+		c.generalizedConsumerTriple = consumer;
+		return c;
+	}
+
+	public JenaRDFParserBuilder targetGeneralizedQuad(Consumer<QuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm>> consumer) {
+		JenaRDFParserBuilder c = this.clone();
+		c.resetTarget();		
+		c.generalizedConsumerQuad = consumer;
+		return c;
+	}
+	
+	@Override
+	protected void resetTarget() {		
+		super.resetTarget();
+		this.generalizedConsumerTriple = null;
+		this.generalizedConsumerQuad = null;
+	}
+	
 	@Override
 	protected void parseSynchronusly() throws IOException {
 		StreamRDF dest;
 		if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) {
 			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
 			dest = StreamRDFLib.graph(jenaGraph);
+		} else if (generalizedConsumerQuad != null) {				
+			dest = getJenaFactory().streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
+		} else if (generalizedConsumerTriple != null) {				
+			dest = getJenaFactory().streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
 		} else {
 			dest = JenaRDFTermFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
 		}
@@ -62,4 +94,10 @@ public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParser
 		}
 	}
 
+	private JenaRDFTermFactory getJenaFactory() {
+		return (JenaRDFTermFactory) getRdfTermFactory()
+				.filter(JenaRDFTermFactory.class::isInstance)
+				.orElseGet(this::createRDFTermFactory);		
+	}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index f31173b..12b152e 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -28,6 +28,7 @@ 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.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.RDFTermFactory;
@@ -106,6 +107,12 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.createTriple(subject, predicate, object);
 	}
 	
+	@Override
+	public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+			throws IllegalArgumentException, UnsupportedOperationException {
+		return JenaFactory.createQuad(subject, predicate, object, graphName);
+	}
+	
 	/**
 	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike} statement.
 	 * <p>
@@ -280,10 +287,11 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	/**
-	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
+	 * Adapt a generalized Jena {@link org.apache.jena.graph.Triple} to a CommonsRDF {@link TripleLike}.
 	 * <p>
 	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}, including 
+	 * the extensions {@link JenaAny} and {@link JenaVariable}.
 	 * <p>
 	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use a {@link UUID} salt from this
@@ -305,6 +313,38 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
 		return JenaFactory.fromJenaGeneralized(triple, salt);
 	}
+
+	/**
+	 * Adapt a generalized Jena {@link org.apache.jena.sparql.core.Quad} to a CommonsRDF {@link QuadLike}.
+	 * <p>
+	 * The generalized quad supports any {@link RDFTerm} as its 
+	 * {@link QuadLike#getGraphName()}, 
+	 * {@link QuadLike#getSubject()}
+	 * {@link QuadLike#getPredicate()} or 
+	 * {@link QuadLike#getObject()}, including 
+	 * the extensions 
+	 * {@link JenaAny} and {@link JenaVariable}. 
+	 * <p>
+	 * If the Jena quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDFTermFactory} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.graph.Quad, UUID)
+	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Quad)
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @return Adapted {@link QuadLike}. Note that the generalized quad does
+	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
+	 *         {@link Quad#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the quad nodes are not concrete
+	 */
+	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad) throws ConversionException {
+		return JenaFactory.fromJenaGeneralized(quad, salt);
+	}
 	
 	
 	/**
@@ -465,8 +505,34 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 			}
 		};
 	}
+	
+	/**
+	 * Create a {@link StreamRDF} that inserts into any RDFCommons
+	 * implementation of Graph
+	 */
+	public StreamRDF streamJenaToGeneralizedTriple(Consumer<TripleLike<RDFTerm, RDFTerm, RDFTerm>> generalizedConsumer) {
+		return new StreamRDFBase() {			
+			@Override
+			public void triple(org.apache.jena.graph.Triple triple) {
+				generalizedConsumer.accept(fromJenaGeneralized(triple));
+			}
+		};
+	}	
 
 	/**
+	 * Create a {@link StreamRDF} that inserts into any RDFCommons
+	 * implementation of Graph
+	 */
+	public StreamRDF streamJenaToGeneralizedQuad(Consumer<QuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>> generalizedConsumer) {
+		return new StreamRDFBase() {
+			@Override
+			public void quad(org.apache.jena.sparql.core.Quad quad) {
+				generalizedConsumer.accept(fromJenaGeneralized(quad));
+			}
+		};
+	}	
+	
+	/**
 	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
 	 * originally, return that original object else create a copy using Jena
 	 * objects.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
new file mode 100644
index 0000000..25b148f
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
@@ -0,0 +1,136 @@
+/**
+ * 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.jena.impl;
+
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.QuadLike;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.JenaQuadLike;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.jena.JenaTriple;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.sparql.core.Quad;
+
+/**
+ * A generalized {@link QuadLike}, backed by a Jena {@link Quad} or {@link Triple}.
+ * <p>
+ * This class does not implement any particular {@link #equals(Object)} or
+ * {@link #hashCode()} but can otherwise be used as a base class for both
+ * a {@link JenaTriple} and a {@link JenaQuad}.
+ * 
+ * @see TripleImpl
+ * @see QuadImpl
+ * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+ * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, Optional)
+ *
+ */
+public class GeneralizedQuadImpl<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {
+
+	final Optional<G> graphName;
+	final S subject;
+	final P predicate;
+	final O object;
+	org.apache.jena.sparql.core.Quad quad = null;
+	org.apache.jena.graph.Triple triple = null;
+	
+	GeneralizedQuadImpl(S subject, P predicate, O object, Optional<G> graphName) {		
+		this.subject = Objects.requireNonNull(subject);
+		this.predicate = Objects.requireNonNull(predicate);
+		this.object = Objects.requireNonNull(object);
+		this.graphName = Objects.requireNonNull(graphName);
+	}
+
+	GeneralizedQuadImpl(S subject, P predicate, O object) {
+		this(subject, predicate, object, Optional.empty());
+	}
+	 
+	@SuppressWarnings("unchecked")
+	GeneralizedQuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		this.quad = Objects.requireNonNull(quad);
+		this.subject = (S) JenaFactory.fromJena(quad.getSubject(), salt);
+		this.predicate = (P) JenaFactory.fromJena(quad.getPredicate(), salt);
+		this.object = (O)JenaFactory.fromJena(quad.getObject(), salt);
+		this.graphName = Optional.of((G) JenaFactory.fromJena(quad.getGraph(), salt));		
+	}
+
+	@SuppressWarnings("unchecked")
+	GeneralizedQuadImpl(org.apache.jena.graph.Triple triple, UUID salt) {
+		this.triple = Objects.requireNonNull(triple);		
+		this.subject = (S) JenaFactory.fromJena(triple.getSubject(), salt);
+		this.predicate = (P) JenaFactory.fromJena(triple.getPredicate(), salt);
+		this.object = (O)JenaFactory.fromJena(triple.getObject(), salt);
+		this.graphName = Optional.empty();
+	}
+
+	@Override
+	public org.apache.jena.sparql.core.Quad asJenaQuad() {
+		if (quad == null) {
+			quad = org.apache.jena.sparql.core.Quad.create(
+					JenaRDFTermFactory.toJena(graphName.orElse(null)),
+					JenaRDFTermFactory.toJena(subject), 
+					JenaRDFTermFactory.toJena(predicate),
+					JenaRDFTermFactory.toJena(object));
+		}
+		return quad;
+	}
+
+	@Override
+	public org.apache.jena.graph.Triple asJenaTriple() {
+		if (triple == null) {
+			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject), 
+				JenaRDFTermFactory.toJena(predicate),
+				JenaRDFTermFactory.toJena(object));
+		}
+		return triple;
+	}	
+	
+	@Override
+	public S getSubject() {
+		return subject;
+	}
+
+	@Override
+	public P getPredicate() {
+		return predicate;
+	}
+	
+	@Override
+	public O getObject() {
+		return object;
+	}
+
+	@Override
+	public Optional<G> getGraphName() {
+		return graphName;
+	}
+
+	@Override
+	public String toString() {
+		// kind of nquad syntax
+		return getSubject().ntriplesString() + " " + 
+				getPredicate().ntriplesString() + " "
+				+ getObject().ntriplesString() + " " + 
+				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
deleted file mode 100644
index 97ff7c5..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedTripleImpl.java
+++ /dev/null
@@ -1,74 +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.commons.rdf.jena.impl;
-
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.jena.ConversionException;
-import org.apache.commons.rdf.jena.JenaTripleLike;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
-
-public class GeneralizedTripleImpl implements JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> {
-	private final RDFTerm object;
-	private final RDFTerm predicate;
-	private final RDFTerm subject;
-	private org.apache.jena.graph.Triple triple = null;
-
-	/* package */ GeneralizedTripleImpl(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		this.subject = subject;
-		this.predicate = predicate;
-		this.object = object;
-	}
-
-	/* package */ GeneralizedTripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		this.subject = JenaFactory.fromJena(triple.getSubject(), salt);
-		this.predicate = JenaFactory.fromJena(triple.getPredicate(), salt);
-		this.object = JenaFactory.fromJena(triple.getObject(), salt);
-		this.triple = triple;
-	}
-
-	@Override
-	public org.apache.jena.graph.Triple asJenaTriple() {
-		if (triple == null)
-			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject),
-					JenaRDFTermFactory.toJena(predicate), JenaRDFTermFactory.toJena(object));
-		return triple;
-	}
-	@Override
-	public RDFTerm getObject() {
-		return object;
-	}
-
-	@Override
-	public RDFTerm getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public RDFTerm getSubject() {
-		return subject;
-	}
-
-	@Override
-	public String toString() {
-		return getSubject() + " " + getPredicate() + " " + getObject() + " .";
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 4a6d44b..b685832 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -18,6 +18,7 @@
 
 package org.apache.commons.rdf.jena.impl;
 
+import java.util.Optional;
 import java.util.UUID;
 
 import org.apache.commons.rdf.api.BlankNode;
@@ -31,6 +32,8 @@ import org.apache.commons.rdf.jena.JenaBlankNode;
 import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.commons.rdf.jena.JenaLiteral;
+import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.JenaQuadLike;
 import org.apache.commons.rdf.jena.JenaRDFTerm;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.commons.rdf.jena.JenaTripleLike;
@@ -79,6 +82,10 @@ public class JenaFactory {
 	public static JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return new TripleImpl(subject, predicate, object);
 	}
+
+	public static JenaQuad createQuad(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, BlankNodeOrIRI graphName) {
+		return new QuadImpl(subject, predicate, object, Optional.ofNullable(graphName));
+	}
 	
 	public static JenaVariable createVariable(String name) {
 		return new VariableImpl(NodeFactory.createVariable(name));
@@ -88,8 +95,12 @@ public class JenaFactory {
 		return AnyImpl.Singleton.instance;
 	}
 
-	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return new GeneralizedTripleImpl(subject, predicate, object);
+	public static JenaTripleLike<RDFTerm,RDFTerm,RDFTerm> createGeneralizedTriple(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object);
+	}
+
+	public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> createGeneralizedQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
+		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(subject, predicate, object, Optional.ofNullable(graphName));
 	}
 	
 	public static JenaRDFTerm fromJena(Node node, UUID salt) throws ConversionException {
@@ -131,7 +142,11 @@ public class JenaFactory {
 	}
 
 	public static JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new GeneralizedTripleImpl(triple, salt);
+		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(triple, salt);
+	}
+
+	public static JenaQuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		return new GeneralizedQuadImpl<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
 	}
 	
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
index 19f154c..d68fcaf 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/QuadImpl.java
@@ -26,56 +26,31 @@ 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;
-import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaQuad;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 
-public class QuadImpl implements JenaQuad {
+public class QuadImpl	extends GeneralizedQuadImpl<BlankNodeOrIRI,IRI,RDFTerm,BlankNodeOrIRI>
+	implements JenaQuad {
 
-	private final Optional<BlankNodeOrIRI> graphName;
-	private final RDFTerm object;
-	private final IRI predicate;
-	private org.apache.jena.sparql.core.Quad quad = null;
-	private final BlankNodeOrIRI subject;
-
-	/* package */ QuadImpl(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		this.graphName = Objects.requireNonNull(graphName);
-		this.subject = Objects.requireNonNull(subject);
-		this.predicate = Objects.requireNonNull(predicate);
-		this.object = Objects.requireNonNull(object);
-	}
-
-	/* package */ QuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		this.quad = Objects.requireNonNull(quad);
-		this.graphName = Optional.of((BlankNodeOrIRI) JenaFactory.fromJena(quad.getGraph(), salt));
-		this.subject = (BlankNodeOrIRI) JenaFactory.fromJena(quad.getSubject(), salt);
-		this.predicate = (IRI) JenaFactory.fromJena(quad.getPredicate(), salt);
-		this.object = JenaFactory.fromJena(quad.getObject(), salt);
+	QuadImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object, Optional<BlankNodeOrIRI> graphName) {
+		super(subject, predicate, object, graphName);
 	}
 
-	@Override
-	public org.apache.jena.sparql.core.Quad asJenaQuad() {
-		if (quad == null) {
-			quad = org.apache.jena.sparql.core.Quad.create(
-					JenaRDFTermFactory.toJena(graphName.orElse(null)),
-					JenaRDFTermFactory.toJena(subject), 
-					JenaRDFTermFactory.toJena(predicate),
-					JenaRDFTermFactory.toJena(object));
+	QuadImpl(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+		super(quad, salt);
+		// Check the conversion
+		if ((graphName.isPresent() && ! (graphName.get() instanceof BlankNodeOrIRI)) ||
+			! (subject instanceof BlankNodeOrIRI) ||
+			! (predicate instanceof IRI) ||
+			! (object instanceof RDFTerm)) {
+			throw new ConversionException("Can't adapt generalized quad: " + quad);	
 		}
-		return quad;
-	}
-
-	@Override
-	public Triple asTriple() {
-		return new TripleImpl(getSubject(), getPredicate(), getObject());
 	}
 
 	@Override
 	public boolean equals(Object other) {
 		if (other == this)
 			return true;
-		if (other == null)
-			return false;
 		if (!(other instanceof Quad))
 			return false;
 		Quad quad = (Quad) other;
@@ -84,37 +59,8 @@ public class QuadImpl implements JenaQuad {
 	}
 
 	@Override
-	public Optional<BlankNodeOrIRI> getGraphName() {
-		return graphName;
-	}
-
-	@Override
-	public RDFTerm getObject() {
-		return object;
-	}
-
-	@Override
-	public IRI getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public BlankNodeOrIRI getSubject() {
-		return subject;
-	}
-
-	@Override
 	public int hashCode() {
 		return Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName());
 	}
-
-	@Override
-	public String toString() {
-		// kind of nquad syntax
-		return getSubject().ntriplesString() + " " + 
-				getPredicate().ntriplesString() + " "
-				+ getObject().ntriplesString() + " " + 
-				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
-	}
-
+	
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a3cb3b13/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
index cadbdf5..9207b38 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/TripleImpl.java
@@ -27,37 +27,22 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.ConversionException;
 import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 
-public class TripleImpl implements Triple, JenaTriple {
-	private final RDFTerm object;
-	private final IRI predicate;
-	private final BlankNodeOrIRI subject;
-	private org.apache.jena.graph.Triple triple = null;
+public class TripleImpl extends GeneralizedQuadImpl<BlankNodeOrIRI, IRI, RDFTerm, RDFTerm>
+		implements JenaTriple {
 
-	/* package */ TripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		this.subject = subject;
-		this.predicate = predicate;
-		this.object = object;
+	TripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		super(subject, predicate, object);
 	}
 
-	/* package */ TripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		try {
-			this.subject = (BlankNodeOrIRI) JenaFactory.fromJena(triple.getSubject(), salt);
-			this.predicate = (IRI) JenaFactory.fromJena(triple.getPredicate(), salt);
-		} catch (ClassCastException ex) {
-			throw new ConversionException("Can't adapt generalized triple: " + triple, ex);
+	TripleImpl(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
+		super(triple, salt);
+		// Check the conversion
+		if (! (subject instanceof BlankNodeOrIRI) ||
+			! (predicate instanceof IRI) ||
+			! (object instanceof RDFTerm)) {
+			throw new ConversionException("Can't adapt generalized triple: " + quad);	
 		}
-		this.object = JenaFactory.fromJena(triple.getObject(), salt);
-		this.triple = triple;
-	}
-
-	@Override
-	public org.apache.jena.graph.Triple asJenaTriple() {
-		if (triple == null)
-			triple = org.apache.jena.graph.Triple.create(JenaRDFTermFactory.toJena(subject),
-					JenaRDFTermFactory.toJena(predicate), JenaRDFTermFactory.toJena(object));
-		return triple;
 	}
 
 	@Override
@@ -74,27 +59,9 @@ public class TripleImpl implements Triple, JenaTriple {
 	}
 
 	@Override
-	public RDFTerm getObject() {
-		return object;
-	}
-
-	@Override
-	public IRI getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public BlankNodeOrIRI getSubject() {
-		return subject;
-	}
-
-	@Override
 	public int hashCode() {
 		return Objects.hash(getSubject(), getPredicate(), getObject());
 	}
 
-	@Override
-	public String toString() {
-		return getSubject() + " " + getPredicate() + " " + getObject() + " .";
-	}
+	
 }


[14/50] incubator-commonsrdf git commit: Add asJenaModel() and fromJena(Model)

Posted by st...@apache.org.
Add asJenaModel() and fromJena(Model)


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

Branch: refs/heads/master
Commit: 361aaba1c2ec3791d9dd88f18ccb4142b562fb09
Parents: c752d8c
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 8 15:18:07 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 8 15:18:07 2016 +0100

----------------------------------------------------------------------
 jena/pom.xml                                    |  3 ++-
 .../org/apache/commons/rdf/jena/JenaGraph.java  | 19 +++++++++++++++
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 18 +++++++++++++-
 .../apache/commons/rdf/jena/impl/GraphImpl.java | 25 +++++++++++++++++++-
 .../commons/rdf/jena/impl/JenaFactory.java      |  7 +++++-
 5 files changed, 68 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/361aaba1/jena/pom.xml
----------------------------------------------------------------------
diff --git a/jena/pom.xml b/jena/pom.xml
index 6bf0aeb..c06c5bf 100644
--- a/jena/pom.xml
+++ b/jena/pom.xml
@@ -48,6 +48,8 @@
 		<!-- Uncomment below and disable jena-osgi to access the regular non-osgi 
 			 Jena dependencies (e.g. for debugging) -->
 		<!-- 
+				--> 
+	
 		<dependency>
 			<groupId>org.apache.jena</groupId>
 			<artifactId>apache-jena-libs</artifactId>
@@ -55,7 +57,6 @@
 			<type>pom</type>
 			<scope>optional</scope>
 		</dependency>
-		--> 
 
 		<!-- As commons-rdf-jena is an OSGi bundle, we'll use the Jena OSGi bundle -->
 		<dependency>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/361aaba1/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
index 7596021..fa8954e 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaGraph.java
@@ -19,8 +19,27 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.jena.graph.Graph;
+import org.apache.jena.rdf.model.Model;
 
 /** Access the Jena graph backing this object */
 public interface JenaGraph extends org.apache.commons.rdf.api.Graph {
+	
+	/**
+	 * Return the underlying Jena {@link Graph}.
+	 * <p>
+	 * Changes to the Jena graph are reflected in the Commons RDF graph and vice versa.
+	 * 
+	 * @return A Jena {@link Graph}
+	 */
 	public Graph asJenaGraph();
+
+	/**
+	 * Return the underlying Jena {@link Model}.
+	 * <p>
+	 * Changes to the Jena model are reflected in the Commons RDF graph and vice
+	 * versa.
+	 * 
+	 * @return A Jena {@link Model}
+	 */	
+	public Model asJenaModel();
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/361aaba1/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 52fde28..a75b61e 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -78,7 +78,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	@Override
-	public Dataset createDataset() throws UnsupportedOperationException {
+	public Dataset createDataset() {
 		return JenaFactory.createDataset(salt);
 	}
 
@@ -467,6 +467,22 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.fromJena(graph, salt);
 	}
 
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.rdf.model.Model} to CommonsRDF {@link Graph}. 
+	 * <p>
+	 * This does not ake a copy, changes to the CommonsRDF Graph are reflected in the jena
+	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+
+	 */
+	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
+		return JenaFactory.fromJena(model, salt);
+	}	
 
 	/**
 	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/361aaba1/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
index 02c4a25..3b74ee0 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GraphImpl.java
@@ -30,6 +30,8 @@ import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.graph.Node;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
 import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFDataMgr;
 
@@ -37,12 +39,19 @@ public class GraphImpl implements JenaGraph {
 
 	private org.apache.jena.graph.Graph graph;
 	private UUID salt;
+	private Model model;
 
-	/* package */ GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
+	GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
 		this.graph = graph;
 		this.salt = salt;
 	}
 
+	GraphImpl(Model model, UUID salt) {
+		this.model = model;
+		this.graph = model.getGraph();
+		this.salt = salt;
+	}
+
 	@Override
 	public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		graph.add(org.apache.jena.graph.Triple.create(
@@ -128,4 +137,18 @@ public class GraphImpl implements JenaGraph {
 		return sw.toString();
 	}
 
+	@Override
+	public Model asJenaModel() {
+		if (model == null) {
+			synchronized(this) {
+				// As Model can be used for locks, we should make sure we don't make
+				// more than one model
+				if (model == null) {
+					model = ModelFactory.createModelForGraph(graph);
+				}
+			}
+		}
+		return model;
+	}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/361aaba1/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 1832232..bc0ae0f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -42,6 +42,7 @@ import org.apache.commons.rdf.jena.JenaTripleLike;
 import org.apache.commons.rdf.jena.JenaVariable;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.rdf.model.Model;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
@@ -142,7 +143,7 @@ public class JenaFactory {
 		}
 		throw new IllegalArgumentException("Unrecognized node type: " + node);
 	}
-	
+
 	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
 		return new GraphImpl(graph, UUID.randomUUID());
 	}
@@ -151,6 +152,10 @@ public class JenaFactory {
 		return new GraphImpl(graph, salt);
 	}
 
+	public static JenaGraph fromJena(Model model, UUID salt) {
+		return new GraphImpl(model, salt);
+	}
+
 	public static JenaDataset fromJena(DatasetGraph datasetGraph) {
 		return new DatasetImpl(datasetGraph, UUID.randomUUID());
 	}


[41/50] incubator-commonsrdf git commit: about ConversionException

Posted by st...@apache.org.
about ConversionException


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

Branch: refs/heads/master
Commit: afbcf114dbe296d7e20eec26c437a7e0a7dddbf9
Parents: fd87f5a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 09:42:26 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 09:42:26 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/jena/JenaRDFTermFactory.java   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/afbcf114/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 6793335..5b9bebc 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -212,8 +212,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
 	 *            <code>true</code>.
 	 * @return Adapted {@link JenaRDFTerm}
-	 * @throws ConversionException
-	 *             if the node is not concrete.
+	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
+	 *             if the node is not {@link Node#isConcrete()},
+	 *             is {@link Node#isVariable()}, or is {@link Node.ANY}
 	 */
 	public JenaRDFTerm fromJena(Node node) throws ConversionException {
 		return JenaFactory.fromJena(node, getSalt());
@@ -238,8 +239,9 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *            UUID salt for the purpose of
 	 *            {@link BlankNode#uniqueReference()}
 	 * @return Adapted {@link JenaRDFTerm}
-	 * @throws ConversionException
-	 *             if the node is not concrete.
+	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
+	 *             if the node is not {@link Node#isConcrete()},
+	 *             is {@link Node#isVariable()}, or is {@link Node.ANY}
 	 */
 	public static JenaRDFTerm fromJena(Node node, UUID salt) {
 		return JenaFactory.fromJena(node, salt);


[38/50] incubator-commonsrdf git commit: COMMONSRDF-33 javadoc for JenaDataset

Posted by st...@apache.org.
COMMONSRDF-33 javadoc for JenaDataset

.getUnionGraph() and .asJenaDatasetGraph()


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

Branch: refs/heads/master
Commit: e569efe0ec0f77a0a80232ebdadef6fa403dc0bf
Parents: cfbe28f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Oct 3 14:55:58 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Oct 3 14:55:58 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaDataset.java    | 21 +++++++++++++++++++-
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |  3 ++-
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e569efe0/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
index 98fb840..f312c2a 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaDataset.java
@@ -23,8 +23,27 @@ import org.apache.jena.sparql.core.DatasetGraph;
 
 /** Access the Jena graph backing this object */
 public interface JenaDataset extends org.apache.commons.rdf.api.Dataset {
+	
+
+	/**
+	 * Return the underlying Jena {@link DatasetGraph}.
+	 * <p>
+	 * Changes to the Jena <em>dataset graph</em> are reflected in the Commons
+	 * RDF dataset and vice versa.
+	 * 
+	 * @return A Jena {@link DatasetGraph}
+	 */	
 	public DatasetGraph asJenaDatasetGraph();
 	
-	public Graph getUnionGraph();
+	/**
+	 * Return a union graph view of this dataset. <p The <em>union graph</em>
+	 * contains triples in any graph (including the default graph).
+	 * <p>
+	 * Changes in the union graph are reflected in the Commons RDF dataset and
+	 * vice versa. Triples added to the graph are added to the default graph.
+	 * 
+	 * @return A union {@link Graph}
+	 */
+	public JenaGraph getUnionGraph();
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/e569efe0/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
index b756526..45d753d 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -31,6 +31,7 @@ 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.jena.JenaDataset;
+import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.JenaRDFTermFactory;
 import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.graph.Node;
@@ -159,7 +160,7 @@ public class JenaDatasetImpl implements JenaDataset {
 	}
 
 	@Override
-	public Graph getUnionGraph() {
+	public JenaGraph getUnionGraph() {
 		GraphView gv = GraphView.createUnionGraph(graph);
 		return new JenaGraphImpl(gv, salt);
 	}


[21/50] incubator-commonsrdf git commit: Only depend on jena-osgi

Posted by st...@apache.org.
Only depend on jena-osgi


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

Branch: refs/heads/master
Commit: 5e787635d7340adde5143598ba12d1d011227fcc
Parents: 47abae8
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 23 17:29:56 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 23 17:29:56 2016 +0100

----------------------------------------------------------------------
 jena/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/5e787635/jena/pom.xml
----------------------------------------------------------------------
diff --git a/jena/pom.xml b/jena/pom.xml
index c06c5bf..f8a2dc4 100644
--- a/jena/pom.xml
+++ b/jena/pom.xml
@@ -48,7 +48,6 @@
 		<!-- Uncomment below and disable jena-osgi to access the regular non-osgi 
 			 Jena dependencies (e.g. for debugging) -->
 		<!-- 
-				--> 
 	
 		<dependency>
 			<groupId>org.apache.jena</groupId>
@@ -57,6 +56,7 @@
 			<type>pom</type>
 			<scope>optional</scope>
 		</dependency>
+				--> 
 
 		<!-- As commons-rdf-jena is an OSGi bundle, we'll use the Jena OSGi bundle -->
 		<dependency>


[42/50] incubator-commonsrdf git commit: JenaRDFTermFactory - less static methods

Posted by st...@apache.org.
JenaRDFTermFactory - less static methods


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

Branch: refs/heads/master
Commit: 35e1366419486b5b929f990670cf813995453673
Parents: afbcf11
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 09:50:50 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 09:50:50 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 169 +------------------
 .../rdf/jena/experimental/JenaRDFParser.java    |  15 +-
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |   3 +-
 3 files changed, 15 insertions(+), 172 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35e13664/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 5b9bebc..10d8fa1 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -221,33 +221,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
-	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
-	 * If {@link Node#isURI()}, the returned value is a IRI. If {@link Node#isBlank()},
-	 * the returned value is a {@link BlankNode}, which will use the provided
-	 * {@link UUID} salt in combination with {@link Node#getBlankNodeId()} for
-	 * the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @see #fromJena(Node)
-	 * @see #fromJena(RDFTermFactory, Node)
-	 * 
-	 * @param node
-	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
-	 *            <code>true</code>.
-	 * @param salt
-	 *            UUID salt for the purpose of
-	 *            {@link BlankNode#uniqueReference()}
-	 * @return Adapted {@link JenaRDFTerm}
-	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
-	 *             if the node is not {@link Node#isConcrete()},
-	 *             is {@link Node#isVariable()}, or is {@link Node.ANY}
-	 */
-	public static JenaRDFTerm fromJena(Node node, UUID salt) {
-		return JenaFactory.fromJena(node, salt);
-	}
-	
-	/**
 	 * Convert from Jena {@link Node} to any Commons RDF implementation.
 	 * <p>
 	 * Note that if the {@link Node#isBlank()}, then the factory's 
@@ -314,37 +287,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.fromJena(triple, getSalt());
 	}
 
-
-	/**
-	 * Adapt a generalized Jena Triple to a CommonsRDF {@link TripleLike}.
-	 * <p>
-	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}. 
-	 * <p>
-	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt 
-	 * in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(org.apache.jena.graph.Triple, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @param salt
-	 *            UUID salt for the purpose of
-	 *            {@link BlankNode#uniqueReference()}
-	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
-	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
-	 *         {@link Triple#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete
-	 */
-	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(triple, salt);
-	}
-	
 	/**
 	 * Adapt a generalized Jena {@link org.apache.jena.graph.Triple} to a CommonsRDF {@link TripleLike}.
 	 * <p>
@@ -405,28 +347,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return JenaFactory.fromJenaGeneralized(quad, getSalt());
 	}
 	
-	
-	/**
-	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
-	 * <p>
-	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided a {@link UUID} salt in
-	 * combination with {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @param salt
-	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted triple
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete or the triple
-	 *             is a generalized triple
-	 */
-	public static JenaTriple fromJena(org.apache.jena.graph.Triple triple, UUID salt) throws ConversionException {
-		return JenaFactory.fromJena(triple, salt);
-	}
-
 	/**
 	 * Convert from Jena {@link org.apache.jena.graph.Triple} to a Commons RDF
 	 * {@link Triple}.
@@ -482,24 +402,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad) {
 		return JenaFactory.fromJena(quad, getSalt());
 	}
-	
-	/**
-	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
-	 * <p>
-	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param quad
-	 *            Jena quad
-	 * @param salt
-	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted quad
-	 */		
-	public static JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return JenaFactory.fromJena(quad, salt);
-	}
 
 	/**
 	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF
@@ -543,29 +445,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}	
 
 	/**
-	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF
-	 * {@link Graph}.
-	 * <p>
-	 * This does not take a copy, changes to the CommonsRDF Graph are reflected
-	 * in the jena graph, which is accessible from
-	 * {@link JenaGraph#asJenaGraph()}.
-	 * <p>
-	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use the provided {@link UUID} salt in combination
-	 * with {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param graph
-	 *            Jena {@link org.apache.jena.graph.Graph} to adapt
-	 * @param salt
-	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted {@link JenaGraph}
-	 */
-	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
-		return JenaFactory.fromJena(graph, salt);
-	}
-
-	/**
 	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
 	 * <p>
 	 * This does not
@@ -604,46 +483,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
 		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
 	}		
-	
-	/**
-	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF
-	 * {@link Dataset}.
-	 * <p>
-	 * This does not take a copy, changes to the CommonsRDF Dataset are
-	 * reflected in the jena dataset graph, which is accessible from
-	 * {@link JenaDataset#asJenaDatasetGraph()}.
-	 * <p>
-	 * If the dataset contains any {@link Node#isBlank()}, then any
-	 * corresponding {@link BlankNode} will use the provided {@link UUID} salt
-	 * in combination with {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param datasetGraph
-	 *            Jena {@link DatasetGraph} to adapt
-	 * @param salt
-	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
-	 * @return Adapted {@link JenaDataset}
-	 */
-	public static JenaDataset fromJena(DatasetGraph datasetGraph, UUID salt) {
-		return JenaFactory.fromJena(datasetGraph, salt);
-	}	
-	
-	/**
-	 * Convert from Jena to any Commons RDF implementation. This is a copy, even
-	 * if the factory is a JenaRDFTermFactory. Use
-	 * {@link #fromJena(org.apache.jena.graph.Graph)} for a wrapper.
-	 * 
-	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}s
-	 * @param graph Jena {@link org.apache.jena.graph.Graph} to copy
-	 * @return Converted Graph 
-	 */
-	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
-		Graph g = factory.createGraph();
-		graph.find(Node.ANY, Node.ANY, Node.ANY).forEachRemaining(t -> {
-			g.add(fromJena(factory, t));
-		});
-		return g;
-	}
 
 	/**
 	 * Convert from Jena {@link org.apache.jena.sparql.core.Quad} to a Commons
@@ -686,7 +525,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param lang {@link Lang} to convert
 	 * @return Matched {@link RDFSyntax}, otherwise {@link Optional#empty()}
 	 */
-	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
+	public Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
 		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
 	}
 
@@ -696,7 +535,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param rdfSyntax {@link RDFSyntax} to convert
 	 * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
 	 */
-	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
+	public Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
 		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
 	}
 
@@ -782,7 +621,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @param graph Commons RDF {@link Graph} to convert
 	 * @return Converted Jena {@link org.apache.jena.graph.Graph}
 	 */
-	public static org.apache.jena.graph.Graph toJena(Graph graph) {
+	public org.apache.jena.graph.Graph toJena(Graph graph) {
 		if (graph instanceof JenaGraph)
 			return ((JenaGraph) graph).asJenaGraph();
 		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
@@ -867,7 +706,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	// Some simple validations - full IRI parsing is not cheap.
-	private static void validateIRI(String iri) {
+	private void validateIRI(String iri) {
 		if (iri.contains(" "))
 			throw new IllegalArgumentException();
 		if (iri.contains("<"))

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35e13664/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
index 873f1cf..0ad12b9 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
@@ -71,18 +71,21 @@ public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements R
 	@Override
 	protected void parseSynchronusly() throws IOException {
 		StreamRDF dest;
+		JenaRDFTermFactory jenaFactory = getJenaFactory();
 		if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) {
 			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
 			dest = StreamRDFLib.graph(jenaGraph);
-		} else if (generalizedConsumerQuad != null) {				
-			dest = getJenaFactory().streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
-		} else if (generalizedConsumerTriple != null) {				
-			dest = getJenaFactory().streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
 		} else {
-			dest = JenaRDFTermFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
+			if (generalizedConsumerQuad != null) {				
+				dest = jenaFactory.streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
+			} else if (generalizedConsumerTriple != null) {				
+				dest = jenaFactory.streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
+			} else {
+				dest = JenaRDFTermFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
+			}
 		}
 
-		Lang lang = getContentTypeSyntax().flatMap(JenaRDFTermFactory::rdfSyntaxToLang).orElse(null);
+		Lang lang = getContentTypeSyntax().flatMap(jenaFactory::rdfSyntaxToLang).orElse(null);
 		String baseStr = getBase().map(IRI::getIRIString).orElse(null);
 
 		if (getSourceIri().isPresent()) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35e13664/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
index 45d753d..4cd6bd1 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -180,8 +180,9 @@ public class JenaDatasetImpl implements JenaDataset {
 
 	@Override
 	public Iterable<Quad> iterate() {
+		final JenaRDFTermFactory factory = new JenaRDFTermFactory(salt);
 		return Iter.asStream(graph.find(), false)
-				.map(q -> (Quad) JenaRDFTermFactory.fromJena(q, salt))
+				.map(q -> (Quad) factory.fromJena(q))
 				::iterator;
 	}
 


[19/50] incubator-commonsrdf git commit: Corrected javadoc links/syntax

Posted by st...@apache.org.
Corrected javadoc links/syntax


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

Branch: refs/heads/master
Commit: 7ef3f88e3bb8e2239d4394910ea98c0c7a0576f6
Parents: 77e90e3
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Sep 13 00:08:20 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Sep 13 00:10:22 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/jena/JenaRDFTermFactory.java   | 10 +++++-----
 .../apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7ef3f88e/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index f393cec..ec84c0a 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -169,7 +169,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
 	 * <p>
 	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
-	 * If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
+	 * If {@link Node#isURI()}, the returned value is a IRI. If {$@link Node#isBlank()},
 	 * the returned value is a {@link BlankNode}, which will use a {@link UUID}
 	 * salt from this {@link JenaRDFTermFactory} instance in combination with
 	 * {@link Node#getBlankNodeId()} for the purpose of its
@@ -191,8 +191,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	/**
 	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
 	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}
-	 * . If {@link Node#isURI(), the returned value is a IRI. If Node#isBlank(),
+	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
+	 * If {@link Node#isURI()}, the returned value is a IRI. If {@link Node#isBlank()},
 	 * the returned value is a {@link BlankNode}, which will use the provided
 	 * {@link UUID} salt in combination with {@link Node#getBlankNodeId()} for
 	 * the purpose of its {@link BlankNode#uniqueReference()}.
@@ -355,8 +355,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(org.apache.jena.graph.Quad, UUID)
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Quad)
+	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
+	 * @see #fromJenaGeneralized(org.apache.jena.graph.Triple)
 	 * 
 	 * @param quad
 	 *            Jena quad

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7ef3f88e/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
index 25b148f..e772bd1 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/GeneralizedQuadImpl.java
@@ -41,7 +41,7 @@ import org.apache.jena.sparql.core.Quad;
  * @see TripleImpl
  * @see QuadImpl
  * @see JenaFactory#createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
- * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, Optional)
+ * @see JenaFactory#createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
  *
  */
 public class GeneralizedQuadImpl<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JenaQuadLike<S,P,O,G> {


[29/50] incubator-commonsrdf git commit: Jena javadocs

Posted by st...@apache.org.
Jena javadocs


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

Branch: refs/heads/master
Commit: eb391f860b1aa223ae11e114d828e1f463d6fee3
Parents: b0c55bd
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 01:10:11 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 01:10:11 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 20 ++++++++++++++++----
 .../commons/rdf/jena/impl/JenaFactory.java      |  5 ++---
 pom.xml                                         |  6 ++++++
 3 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/eb391f86/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index bde5bc4..1c1be7f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -96,7 +96,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	@Override
-	public Dataset createDataset() {
+	public JenaDataset createDataset() {
 		return JenaFactory.createDataset(getSalt());
 	}
 
@@ -133,7 +133,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	@Override
-	public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+	public JenaQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
 			throws IllegalArgumentException, UnsupportedOperationException {
 		return JenaFactory.createQuad(subject, predicate, object, graphName);
 	}
@@ -451,7 +451,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *            Jena quad
 	 * @return Adapted quad
 	 */	
-	public Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
+	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad) {
 		return JenaFactory.fromJena(quad, getSalt());
 	}
 	
@@ -469,7 +469,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
 	 * @return Adapted quad
 	 */		
-	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+	public static JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return JenaFactory.fromJena(quad, salt);
 	}
 
@@ -652,10 +652,22 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return factory.createQuad(graphName, subject, predicate, object);
 	}
 
+	/**
+	 * Return {@link RDFSyntax} corresponding to a Jena {@link Lang}.
+	 * 
+	 * @param lang {@link Lang} to convert
+	 * @return Matched {@link RDFSyntax}, otherwise {@link Optional#empty()}
+	 */
 	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
 		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
 	}
 
+	/**
+	 * Return Jena {@link Lang} corresponding to a {@link RDFSyntax.
+	 * 
+	 * @param lang {@link RDFSyntax} to convert
+	 * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
+	 */
 	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
 		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/eb391f86/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
index 0551094..3fb3c3f 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
@@ -23,7 +23,6 @@ import java.util.UUID;
 
 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.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
@@ -68,7 +67,7 @@ public class JenaFactory {
 	public static JenaBlankNode createBlankNode(UUID salt) {
 		return new JenaBlankNodeImpl(NodeFactory.createBlankNode(), salt);
 	}
-	public static Dataset createDataset(UUID salt) {
+	public static JenaDataset createDataset(UUID salt) {
 		DatasetGraph dg = DatasetGraphFactory.createGeneral();
 		// Or which createMethod() -- a bit confusing with lots of choice..
 		return new JenaDatasetImpl(dg, salt);
@@ -168,7 +167,7 @@ public class JenaFactory {
 		return new JenaGeneralizedQuad<RDFTerm,RDFTerm,RDFTerm,RDFTerm>(quad, salt);
 	}
 	
-	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
+	public static JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
 		return new JenaQuadImpl(quad, salt);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/eb391f86/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0dda6a7..512946c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -286,6 +286,12 @@
                 </executions>
                 <configuration>
                     <additionalparam>-Xdoclint:all</additionalparam>
+					<links>
+					<link>${commons.javadoc.java.link}</link>
+					<link>https://jena.apache.org/documentation/javadoc/jena/</link>
+					<link>https://jena.apache.org/documentation/javadoc/arq/</link>
+					<link>http://rdf4j.org/javadoc/2.0/</link>
+					</links>                    
                 </configuration>
             </plugin>
             <!--


[13/50] incubator-commonsrdf git commit: Reformatted comments in pom

Posted by st...@apache.org.
Reformatted comments in pom


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

Branch: refs/heads/master
Commit: c752d8c448b4d91ef426a302ac11f2d9656797ab
Parents: bd644d3
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 8 15:03:18 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 8 15:03:18 2016 +0100

----------------------------------------------------------------------
 jena/pom.xml | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c752d8c4/jena/pom.xml
----------------------------------------------------------------------
diff --git a/jena/pom.xml b/jena/pom.xml
index 11b3e0e..6bf0aeb 100644
--- a/jena/pom.xml
+++ b/jena/pom.xml
@@ -45,9 +45,17 @@
 			<artifactId>commons-rdf-simple</artifactId>
 			<version>${project.version}</version>
 		</dependency>
-		<!-- Uncomment below to use instead of jena-osgi to access Jena source 
-			code <dependency> <groupId>org.apache.jena</groupId> <artifactId>apache-jena-libs</artifactId> 
-			<version>${ver.jena}</version> <type>pom</type> <scope>optional</scope> </dependency> -->
+		<!-- Uncomment below and disable jena-osgi to access the regular non-osgi 
+			 Jena dependencies (e.g. for debugging) -->
+		<!-- 
+		<dependency>
+			<groupId>org.apache.jena</groupId>
+			<artifactId>apache-jena-libs</artifactId>
+			<version>${ver.jena}</version>
+			<type>pom</type>
+			<scope>optional</scope>
+		</dependency>
+		--> 
 
 		<!-- As commons-rdf-jena is an OSGi bundle, we'll use the Jena OSGi bundle -->
 		<dependency>


[33/50] incubator-commonsrdf git commit: final to show variables are assigned once

Posted by st...@apache.org.
final to show variables are assigned once

See
https://github.com/apache/incubator-commonsrdf/pull/23#discussion_r81152333

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

Branch: refs/heads/master
Commit: 379ac0ad524d854dc19ec45d3e3e3d5549428a32
Parents: fe8104a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 29 15:57:40 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 29 15:57:40 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/379ac0ad/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 9a58ce7..6c1d9f7 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -460,8 +460,8 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 			// No need to convert, just wrap
 			return ((JenaRDFTermFactory) factory).fromJena(triple);
 		}
-		BlankNodeOrIRI subject;
-		IRI predicate;
+		final BlankNodeOrIRI subject;
+		final IRI predicate;
 		try {
 			subject = (BlankNodeOrIRI) fromJena(factory, triple.getSubject());
 			predicate = (IRI) fromJena(factory, triple.getPredicate());


[09/50] incubator-commonsrdf git commit: fromJena(Graph) now uses factory salt

Posted by st...@apache.org.
fromJena(Graph) now uses factory salt


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

Branch: refs/heads/master
Commit: 20c7ad3b391f6a0a4126e74dc3166b74de4fa0ee
Parents: 3a09004
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 16:44:36 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 16:44:36 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 45 ++++++++++++++++----
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |  2 +-
 2 files changed, 38 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/20c7ad3b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index 78dc5f7..6560894 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -414,7 +414,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
 	 * <p>
 	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use a {@link UUID} salt from this 
@@ -431,7 +431,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 	
 	/**
-	 * Adapt an existing Jena Quad to CommonsRDF {@link Quad}.
+	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
 	 * <p>
 	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
 	 * {@link BlankNode} will use the provided {@link UUID} salt
@@ -449,17 +449,46 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	}
 
 	/**
-	 * Adapt an existing Jena Graph to CommonsRDF {@link Graph}. This does not
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
+	 * <p>
+	 * This does not
 	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
-	 * graph.
+	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDFTermFactory} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+
 	 */
-	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-		// NOTE: This generates a new UUID salt per graph
-		return JenaFactory.fromJena(graph);
+	public Graph fromJena(org.apache.jena.graph.Graph graph) {
+		return JenaFactory.fromJena(graph, salt);
 	}
+
 	
 
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF {@link Graph}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Graph are reflected in the jena
+	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use the provided {@link UUID} salt
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param graph Jena graph to adapt
+	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s
+	 * @return Adapted graph 
+	 */
+	public static JenaGraph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
+		return JenaFactory.fromJena(graph, salt);
+	}
 
+	
 	/**
 	 * Convert from Jena to any RDFCommons implementation. This is a copy, even
 	 * if the factory is a RDFTermFactoryJena. Use
@@ -468,7 +497,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	public static Graph fromJena(RDFTermFactory factory, org.apache.jena.graph.Graph graph) {
 		if (factory instanceof JenaRDFTermFactory) {
 			// No need to convert, just wrap
-			return fromJena(graph);
+			return ((JenaRDFTermFactory)factory).fromJena(graph);
 		}
 
 		Graph g = factory.createGraph();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/20c7ad3b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index c81a8b1..2668343 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -56,7 +56,7 @@ public class TestJenaGraphToCommonsRDFGraph {
         RDFDataMgr.read(jGraph, turtleFile.toUri().toString()) ;
         
         // "graph" is a CommonsRDF graph 
-        Graph graph = JenaRDFTermFactory.fromJena(jGraph) ;
+        Graph graph = new JenaRDFTermFactory().fromJena(jGraph) ;
         
         // Add to CommonsRDF Graph
         RDFTermFactory rft = new JenaRDFTermFactory() ;


[15/50] incubator-commonsrdf git commit: JenaRDFTermFactory javadoc on constructors

Posted by st...@apache.org.
JenaRDFTermFactory javadoc on 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/7fb1d889
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/7fb1d889
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/7fb1d889

Branch: refs/heads/master
Commit: 7fb1d8895c5947b54fec2f23d4e3d900414dade1
Parents: 361aaba
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Sep 8 15:28:00 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Sep 8 15:28:00 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFTermFactory.java    | 58 +++++++++++++++-----
 1 file changed, 43 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7fb1d889/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
index a75b61e..f393cec 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFTermFactory.java
@@ -52,39 +52,56 @@ import org.apache.jena.sparql.graph.GraphFactory;
  * <p>
  * This factory can also convert existing objects from/to Jena with methods like
  * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
+ * <p>
+ * For the purpose of {@link BlankNode} identity, this factory will use an internal
+ * {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for details.
  * 
  * @see RDFTermFactory
  */
 public final class JenaRDFTermFactory implements RDFTermFactory {
 
-	private UUID salt;
+	private final UUID salt;
 
+	/**
+	 * Create a JenaRDFTermFactory.
+	 * <p>
+	 * This constructor will use a randomly generated {@link UUID} as a salt 
+	 * for the purposes of {@link BlankNode} identity, see {@link #getSalt()}.
+	 */
 	public JenaRDFTermFactory() {
 		this.salt = UUID.randomUUID();
 	}
 
+	/**
+	 * Create a JenaRDFTermFactory.
+	 * <p>
+	 * This constructor will use the specified {@link UUID} as a salt 
+	 * for the purposes of {@link BlankNode} identity.
+	 * 
+	 * @param salt {@link UUID} to use as salt
+	 */	
 	public JenaRDFTermFactory(UUID salt) {
 		this.salt = salt;
 	}
 
 	@Override
 	public JenaBlankNode createBlankNode() {
-		return JenaFactory.createBlankNode(salt);
+		return JenaFactory.createBlankNode(getSalt());
 	}
 
 	@Override
 	public JenaBlankNode createBlankNode(String name) {
-		return JenaFactory.createBlankNode(name, salt);
+		return JenaFactory.createBlankNode(name, getSalt());
 	}
 	
 	@Override
 	public Dataset createDataset() {
-		return JenaFactory.createDataset(salt);
+		return JenaFactory.createDataset(getSalt());
 	}
 
 	@Override
 	public JenaGraph createGraph() {
-		return JenaFactory.createGraph(salt);
+		return JenaFactory.createGraph(getSalt());
 	}
 
 	@Override
@@ -168,7 +185,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if the node is not concrete.
 	 */
 	public JenaRDFTerm fromJena(Node node) throws ConversionException {
-		return JenaFactory.fromJena(node, salt);
+		return JenaFactory.fromJena(node, getSalt());
 	}
 
 	/**
@@ -259,7 +276,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             is a generalized triple
 	 */
 	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return JenaFactory.fromJena(triple, salt);
+		return JenaFactory.fromJena(triple, getSalt());
 	}
 
 
@@ -318,7 +335,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if any of the triple's nodes are not concrete
 	 */
 	public JenaTripleLike<RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(triple, salt);
+		return JenaFactory.fromJenaGeneralized(triple, getSalt());
 	}
 
 	/**
@@ -350,7 +367,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 *             if any of the quad nodes are not concrete
 	 */
 	public JenaQuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad) throws ConversionException {
-		return JenaFactory.fromJenaGeneralized(quad, salt);
+		return JenaFactory.fromJenaGeneralized(quad, getSalt());
 	}
 	
 	
@@ -428,7 +445,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted quad
 	 */	
 	public Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		return JenaFactory.fromJena(quad, salt);
+		return JenaFactory.fromJena(quad, getSalt());
 	}
 	
 	/**
@@ -464,7 +481,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 
 	 */
 	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
-		return JenaFactory.fromJena(graph, salt);
+		return JenaFactory.fromJena(graph, getSalt());
 	}
 
 	/**
@@ -481,7 +498,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 
 	 */
 	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
-		return JenaFactory.fromJena(model, salt);
+		return JenaFactory.fromJena(model, getSalt());
 	}	
 
 	/**
@@ -521,7 +538,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted dataset 
 	 */
 	public JenaDataset fromJena(DatasetGraph datasetGraph) {
-		return JenaFactory.fromJena(datasetGraph, salt);
+		return JenaFactory.fromJena(datasetGraph, getSalt());
 	}	
 	
 	/**
@@ -541,7 +558,7 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 	 * @return Adapted dataset 
 	 */
 	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
-		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), salt);
+		return JenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
 	}		
 	
 	/**
@@ -582,7 +599,6 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 		return g;
 	}
 
-
 	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
 		if (factory instanceof JenaRDFTermFactory) {
 			// No need to convert, just wrap
@@ -737,4 +753,16 @@ public final class JenaRDFTermFactory implements RDFTermFactory {
 			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
 	}
 
+	/**
+	 * Return the {@link UUID} salt.
+	 * <p>
+	 * The salt is used for the purposes of {@link BlankNode} identity, see
+	 * {@link BlankNode#uniqueReference()} for details.
+	 * 
+	 * @return The {@link UUID} used as salt
+	 */
+	public UUID getSalt() {
+		return salt;
+	}
+
 }


[23/50] incubator-commonsrdf git commit: COMMONSRDF-39 JenaRDFParser moved to package ...jena.experimental

Posted by st...@apache.org.
COMMONSRDF-39 JenaRDFParser moved to package ...jena.experimental


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

Branch: refs/heads/master
Commit: 4416acc1bdbcb8192475c93aeaec8dae73e6f1cc
Parents: 2eb821d
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Sep 28 14:25:07 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Sep 28 14:25:07 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaRDFParserBuilder.java  | 103 ------------------
 .../rdf/jena/experimental/JenaRDFParser.java    | 105 +++++++++++++++++++
 .../rdf/jena/experimental/package-info.java     |  34 ++++++
 3 files changed, 139 insertions(+), 103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4416acc1/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
deleted file mode 100644
index 2149932..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDFParserBuilder.java
+++ /dev/null
@@ -1,103 +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.commons.rdf.jena;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.util.function.Consumer;
-
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.QuadLike;
-import org.apache.commons.rdf.api.RDFParserBuilder;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
-import org.apache.commons.rdf.api.TripleLike;
-import org.apache.commons.rdf.simple.AbstractRDFParserBuilder;
-import org.apache.jena.graph.Graph;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.riot.system.StreamRDF;
-import org.apache.jena.riot.system.StreamRDFLib;
-
-public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParserBuilder> implements RDFParserBuilder {
-
-	private Consumer<TripleLike<RDFTerm, RDFTerm, RDFTerm>> generalizedConsumerTriple;
-	private Consumer<QuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>> generalizedConsumerQuad;
-
-	protected RDFTermFactory createRDFTermFactory() {
-		return new JenaRDFTermFactory();
-	}
-
-	public JenaRDFParserBuilder targetGeneralizedTriple(Consumer<TripleLike<RDFTerm,RDFTerm,RDFTerm>> consumer) {
-		JenaRDFParserBuilder c = this.clone();
-		c.resetTarget();		
-		c.generalizedConsumerTriple = consumer;
-		return c;
-	}
-
-	public JenaRDFParserBuilder targetGeneralizedQuad(Consumer<QuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm>> consumer) {
-		JenaRDFParserBuilder c = this.clone();
-		c.resetTarget();		
-		c.generalizedConsumerQuad = consumer;
-		return c;
-	}
-	
-	@Override
-	protected void resetTarget() {		
-		super.resetTarget();
-		this.generalizedConsumerTriple = null;
-		this.generalizedConsumerQuad = null;
-	}
-	
-	@Override
-	protected void parseSynchronusly() throws IOException {
-		StreamRDF dest;
-		if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) {
-			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
-			dest = StreamRDFLib.graph(jenaGraph);
-		} else if (generalizedConsumerQuad != null) {				
-			dest = getJenaFactory().streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
-		} else if (generalizedConsumerTriple != null) {				
-			dest = getJenaFactory().streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
-		} else {
-			dest = JenaRDFTermFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
-		}
-
-		Lang lang = getContentTypeSyntax().flatMap(JenaRDFTermFactory::rdfSyntaxToLang).orElse(null);
-		String baseStr = getBase().map(IRI::getIRIString).orElse(null);
-
-		if (getSourceIri().isPresent()) {
-			RDFDataMgr.parse(dest, getSourceIri().get().toString(), baseStr, lang, null);
-		} else if (getSourceFile().isPresent()) {
-			try (InputStream s = Files.newInputStream(getSourceFile().get())) {
-				RDFDataMgr.parse(dest, s, baseStr, lang, null);
-			}
-		} else {
-			RDFDataMgr.parse(dest, getSourceInputStream().get(), baseStr, lang, null);
-		}
-	}
-
-	private JenaRDFTermFactory getJenaFactory() {
-		return (JenaRDFTermFactory) getRdfTermFactory()
-				.filter(JenaRDFTermFactory.class::isInstance)
-				.orElseGet(this::createRDFTermFactory);		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4416acc1/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
new file mode 100644
index 0000000..873f1cf
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
@@ -0,0 +1,105 @@
+/**
+ * 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.jena.experimental;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.util.function.Consumer;
+
+import org.apache.commons.rdf.api.IRI;
+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.TripleLike;
+import org.apache.commons.rdf.experimental.RDFParser;
+import org.apache.commons.rdf.jena.JenaGraph;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.simple.experimental.AbstractRDFParser;
+import org.apache.jena.graph.Graph;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.riot.system.StreamRDF;
+import org.apache.jena.riot.system.StreamRDFLib;
+
+public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements RDFParser {
+
+	private Consumer<TripleLike<RDFTerm, RDFTerm, RDFTerm>> generalizedConsumerTriple;
+	private Consumer<QuadLike<RDFTerm, RDFTerm, RDFTerm, RDFTerm>> generalizedConsumerQuad;
+
+	protected RDFTermFactory createRDFTermFactory() {
+		return new JenaRDFTermFactory();
+	}
+
+	public JenaRDFParser targetGeneralizedTriple(Consumer<TripleLike<RDFTerm,RDFTerm,RDFTerm>> consumer) {
+		JenaRDFParser c = this.clone();
+		c.resetTarget();		
+		c.generalizedConsumerTriple = consumer;
+		return c;
+	}
+
+	public JenaRDFParser targetGeneralizedQuad(Consumer<QuadLike<RDFTerm,RDFTerm,RDFTerm,RDFTerm>> consumer) {
+		JenaRDFParser c = this.clone();
+		c.resetTarget();		
+		c.generalizedConsumerQuad = consumer;
+		return c;
+	}
+	
+	@Override
+	protected void resetTarget() {		
+		super.resetTarget();
+		this.generalizedConsumerTriple = null;
+		this.generalizedConsumerQuad = null;
+	}
+	
+	@Override
+	protected void parseSynchronusly() throws IOException {
+		StreamRDF dest;
+		if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) {
+			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
+			dest = StreamRDFLib.graph(jenaGraph);
+		} else if (generalizedConsumerQuad != null) {				
+			dest = getJenaFactory().streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
+		} else if (generalizedConsumerTriple != null) {				
+			dest = getJenaFactory().streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
+		} else {
+			dest = JenaRDFTermFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
+		}
+
+		Lang lang = getContentTypeSyntax().flatMap(JenaRDFTermFactory::rdfSyntaxToLang).orElse(null);
+		String baseStr = getBase().map(IRI::getIRIString).orElse(null);
+
+		if (getSourceIri().isPresent()) {
+			RDFDataMgr.parse(dest, getSourceIri().get().toString(), baseStr, lang, null);
+		} else if (getSourceFile().isPresent()) {
+			try (InputStream s = Files.newInputStream(getSourceFile().get())) {
+				RDFDataMgr.parse(dest, s, baseStr, lang, null);
+			}
+		} else {
+			RDFDataMgr.parse(dest, getSourceInputStream().get(), baseStr, lang, null);
+		}
+	}
+
+	private JenaRDFTermFactory getJenaFactory() {
+		return (JenaRDFTermFactory) getRdfTermFactory()
+				.filter(JenaRDFTermFactory.class::isInstance)
+				.orElseGet(this::createRDFTermFactory);		
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/4416acc1/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
new file mode 100644
index 0000000..9fe39f4
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/package-info.java
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+/**
+ * Experimental Commons RDF Jena implementations.
+ * <p>
+ * Classes in this package should be considered <strong>at
+ * risk</strong>; they might change or be removed in the next minor update of
+ * Commons RDF.
+ * <p>
+ * When a class has stabilized, it will move to the
+ * {@link org.apache.commons.rdf.jena} package.
+ * <p>
+ * <ul>
+ * <li>{@link JenaRDFParser} - a Jena-backed
+ * implementations of 
+ * {@link org.apache.commons.rdf.api.experimental.RDFParser}.</li>
+ * </ul>
+ */
+package org.apache.commons.rdf.jena.experimental;
\ No newline at end of file