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/07/08 11:53:45 UTC

[1/9] incubator-commonsrdf git commit: Propagate BlankNode salt UUID -- In progress

Repository: incubator-commonsrdf
Updated Branches:
  refs/heads/jena f3b377cd9 -> 0f349723d


Propagate BlankNode salt UUID -- In progress


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

Branch: refs/heads/jena
Commit: a7c1dbefc804f927658af1269ff9a429c64f6a9c
Parents: f3b377c
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jul 7 15:29:59 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jul 7 15:29:59 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaCommonsRDF.java | 22 ++++++++++--------
 .../commons/rdf/jena/RDFTermFactoryJena.java    |  8 +++++--
 .../commons/rdf/jena/impl/AbstractRDFTerm.java  |  4 +---
 .../commons/rdf/jena/impl/BlankNodeImpl.java    | 13 +++++++++--
 .../commons/rdf/jena/impl/JenaFactory.java      | 24 ++++++++++++--------
 .../apache/commons/rdf/jena/impl/QuadImpl.java  | 11 +++++----
 .../commons/rdf/jena/impl/TripleImpl.java       |  9 ++++----
 7 files changed, 57 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a7c1dbef/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
index b3999ec..397d77c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
@@ -19,6 +19,7 @@
 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;
@@ -104,14 +105,16 @@ public class JenaCommonsRDF {
         return g ;   
     }
 
-    /** Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}. */
-    public static RDFTerm fromJena( Node node) {
-        return JenaFactory.fromJena(node) ;
+    /** Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}. 
+     * @param salt */
+    public static RDFTerm fromJena( Node node, UUID salt) {
+        return JenaFactory.fromJena(node, salt) ;
     }
 
-    /** Adapt an existing Jena Triple to CommonsRDF {@link Triple}. */
-    public static Triple fromJena(org.apache.jena.graph.Triple triple) {
-        return JenaFactory.fromJena(triple) ;
+    /** Adapt an existing Jena Triple to CommonsRDF {@link Triple}. 
+     * @param salt */
+    public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+        return JenaFactory.fromJena(triple, salt) ;
     }
 
     /** Adapt an existring Jena Graph to CommonsRDF {@link Graph}.
@@ -122,14 +125,15 @@ public class JenaCommonsRDF {
         return JenaFactory.fromJena(graph) ;
     }
 
-    /** Convert from Jena {@link Node} to any RDFCommons implementation */
-    public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
+    /** Convert from Jena {@link Node} to any RDFCommons implementation 
+     * @param salt */
+    public static RDFTerm fromJena(RDFTermFactory factory, Node node, UUID salt) {
     	if (node == null) { 
     		return null;
     	}
     	if (factory instanceof RDFTermFactoryJena) {
     		// No need to convert, just wrap
-    		return fromJena(node);
+    		return fromJena(node, salt);
     	}
         if ( node.isURI() )
             return factory.createIRI(node.getURI()) ;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a7c1dbef/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 727ee1e..1284240 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
@@ -18,6 +18,8 @@
 
 package org.apache.commons.rdf.jena;
 
+import java.util.UUID;
+
 import org.apache.commons.rdf.api.* ;
 import org.apache.commons.rdf.jena.impl.JenaFactory;
 
@@ -28,14 +30,16 @@ import org.apache.commons.rdf.jena.impl.JenaFactory;
  */
 public final class RDFTermFactoryJena implements RDFTermFactory {
     
+	private UUID salt = UUID.randomUUID(); 
+	
     @Override
     public BlankNode createBlankNode() {
-        return JenaFactory.createBlankNode() ;
+        return JenaFactory.createBlankNode(salt) ;
     }
 
     @Override
     public BlankNode createBlankNode(String name) {
-        return JenaFactory.createBlankNode(name) ;
+        return JenaFactory.createBlankNode(name, salt) ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a7c1dbef/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 347ebf9..1aaa476 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
@@ -22,12 +22,10 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.JenaNode;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.riot.out.NodeFmtLib ;
-import org.apache.jena.shared.PrefixMapping ;
-import org.apache.jena.shared.impl.PrefixMappingImpl ;
 
 class AbstractRDFTerm implements JenaNode, RDFTerm {
     private Node node;
-    static private PrefixMapping empty = new PrefixMappingImpl() ; 
+    //static private PrefixMapping empty = new PrefixMappingImpl() ; 
     
     protected AbstractRDFTerm(Node node) {
         this.node = node ;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a7c1dbef/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 c443092..9a41c71 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
@@ -18,17 +18,24 @@
 
 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.jena.graph.Node ;
 
 public class BlankNodeImpl extends AbstractRDFTerm implements BlankNode, JenaNode {
 
-    /*package*/ BlankNodeImpl(Node node) { super(node) ; }
+    private UUID salt;
+
+	/* package */ BlankNodeImpl(Node node, UUID salt) {
+		super(node);
+		this.salt = salt;
+	}
 
     @Override
     public String uniqueReference() {
-        return asJenaNode().getBlankNodeLabel() ;
+        return salt + asJenaNode().getBlankNodeLabel() ;
     }
 
     @Override
@@ -44,5 +51,7 @@ public class BlankNodeImpl extends AbstractRDFTerm implements BlankNode, JenaNod
         BlankNode bNode = (BlankNode)other ;
         return  uniqueReference().equals(bNode.uniqueReference()) ;
     }
+    
+    
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a7c1dbef/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 fbd89cc..73759c9 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
@@ -19,6 +19,8 @@
 package org.apache.commons.rdf.jena.impl;
 import static org.apache.commons.rdf.jena.JenaCommonsRDF.conversionError;
 
+import java.util.UUID;
+
 import org.apache.commons.rdf.api.* ;
 import org.apache.commons.rdf.jena.JenaCommonsRDF;
 import org.apache.jena.graph.Node ;
@@ -44,11 +46,15 @@ public class JenaFactory {
     }
 
     public static BlankNode createBlankNode() {
-        return new BlankNodeImpl(NodeFactory.createBlankNode());
+        return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
+    }
+    
+    public static BlankNode createBlankNode(UUID salt) {
+        return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
     }
 
-    public static BlankNode createBlankNode(String id) {
-        return new BlankNodeImpl(NodeFactory.createBlankNode(id));
+    public static BlankNode createBlankNode(String id, UUID salt) {
+        return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
     }
     
     public static Graph createGraph() { return new GraphImpl(GraphFactory.createDefaultGraph()) ; }
@@ -57,15 +63,15 @@ public class JenaFactory {
         return new TripleImpl(subject, predicate, object) ;
     }
     
-    public static Triple fromJena(org.apache.jena.graph.Triple triple) {
-        return new TripleImpl(triple) ;
+    public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+        return new TripleImpl(triple, salt) ;
     }
 
     public static Graph fromJena(org.apache.jena.graph.Graph graph) {
         return new GraphImpl(graph) ;
     }
 
-    public static RDFTerm fromJena(Node node) {
+    public static RDFTerm fromJena(Node node, UUID salt) {
         if ( node.isURI() )
             return new IRIImpl(node) ; 
         if ( node.isLiteral() ) {
@@ -78,13 +84,13 @@ public class JenaFactory {
 //            return createLiteralDT(node.getLiteralLexicalForm(), node.getLiteralDatatype().getURI());
         }
         if ( node.isBlank() )
-            return new BlankNodeImpl(node) ; 
+            return new BlankNodeImpl(node, salt) ; 
         conversionError("Node is not a concrete RDF Term: "+node) ;
         return null ;
     }
 
-	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		 return new QuadImpl(quad) ;
+	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/a7c1dbef/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 905e47b..0ecd743 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
@@ -20,6 +20,7 @@ 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;
@@ -44,12 +45,12 @@ public class QuadImpl implements Quad, JenaQuad {
         this.object = Objects.requireNonNull(object) ;
     }
     
-    /* package */ QuadImpl(org.apache.jena.sparql.core.Quad quad) {
+    /* 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())) ;
-        this.subject = (BlankNodeOrIRI)JenaFactory.fromJena(quad.getSubject()) ;
-        this.predicate = (IRI)JenaFactory.fromJena(quad.getPredicate()) ;
-        this.object = JenaFactory.fromJena(quad.getObject()) ;
+    	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) ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a7c1dbef/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 fba7304..922d9c2 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
@@ -19,6 +19,7 @@
 package org.apache.commons.rdf.jena.impl;
 
 import java.util.Objects ;
+import java.util.UUID;
 
 import org.apache.commons.rdf.api.* ;
 import org.apache.commons.rdf.jena.JenaCommonsRDF;
@@ -36,10 +37,10 @@ public class TripleImpl implements Triple, JenaTriple {
         this.object = object ;
     }
     
-    /* package */ TripleImpl(org.apache.jena.graph.Triple triple) {
-        this.subject = (BlankNodeOrIRI)JenaFactory.fromJena(triple.getSubject()) ;
-        this.predicate = (IRI)JenaFactory.fromJena(triple.getPredicate()) ;
-        this.object = JenaFactory.fromJena(triple.getObject()) ;
+    /* 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) ;
+        this.object = JenaFactory.fromJena(triple.getObject(), salt) ;
         this.triple = triple ;
     }
 


[7/9] 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/jena
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;
+	}
+
+}


[2/9] incubator-commonsrdf git commit: Moved JenaCommonsRDF methods to RDFTermFactoryJena

Posted by st...@apache.org.
Moved JenaCommonsRDF methods to RDFTermFactoryJena


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

Branch: refs/heads/jena
Commit: 354798863f6851dae60a75289a8f0c4b2efb29b3
Parents: a7c1dbe
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 09:28:23 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 09:28:23 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaCommonsRDF.java | 222 ------------
 .../commons/rdf/jena/JenaRDFParserBuilder.java  |   4 +-
 .../commons/rdf/jena/RDFTermFactoryJena.java    | 343 +++++++++++++++----
 .../apache/commons/rdf/jena/impl/GraphImpl.java |  41 ++-
 .../commons/rdf/jena/impl/JenaFactory.java      | 148 ++++----
 .../apache/commons/rdf/jena/impl/QuadImpl.java  |  10 +-
 .../commons/rdf/jena/impl/TripleImpl.java       |   7 +-
 7 files changed, 398 insertions(+), 377 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35479886/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
deleted file mode 100644
index 397d77c..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaCommonsRDF.java
+++ /dev/null
@@ -1,222 +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.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 ;
-
-/** A set of utilities for moving between CommonsRDF and Jena
- * The {@link RDFTermFactory} for is {@link RDFTermFactoryJena} which
- * creates CommonsRDF objects backed by Jena.   
- * <p>
- * This class encapsulates moving between existing object (RDFTerms, Triples, Graphs)
- * which is usually necessary when working with existing data.   
- * 
- * @see RDFTermFactoryJena
- */
-public class JenaCommonsRDF {
-
-    /** 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 )
-            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}. 
-     * @param salt */
-    public static RDFTerm fromJena( Node node, UUID salt) {
-        return JenaFactory.fromJena(node, salt) ;
-    }
-
-    /** Adapt an existing Jena Triple to CommonsRDF {@link Triple}. 
-     * @param salt */
-    public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
-        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.
-     */    
-    public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-        return JenaFactory.fromJena(graph) ;
-    }
-
-    /** Convert from Jena {@link Node} to any RDFCommons implementation 
-     * @param salt */
-    public static RDFTerm fromJena(RDFTermFactory factory, Node node, UUID salt) {
-    	if (node == null) { 
-    		return null;
-    	}
-    	if (factory instanceof RDFTermFactoryJena) {
-    		// No need to convert, just wrap
-    		return fromJena(node, salt);
-    	}
-        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) ;
-    }
-
-    /** 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 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) ;
-    }
-
-   /** 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 ;
-   }
-   
-   /** 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(JenaCommonsRDF.fromJena(factory, quad));
-    	}
-       };
-   }
-
-
-
-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(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 Quad fromJena(org.apache.jena.sparql.core.Quad quad) {	// 
-	return JenaFactory.fromJena(quad) ;
-}
-
-public static void conversionError(String msg) {
-        throw new ConversionException(msg) ;
-    }
-
-   public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
-	   return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));	
-   }
-   public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
-	   return RDFSyntax.byMediaType(lang.getContentType().getContentType());
-   }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35479886/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 bc73e55..2349f8b 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
@@ -46,10 +46,10 @@ public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParser
 			Graph jenaGraph = ((JenaGraph)getTargetGraph().get()).asJenaGraph();
 			dest = StreamRDFLib.graph(jenaGraph);
 		} else {		
-			dest = JenaCommonsRDF.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
+			dest = RDFTermFactoryJena.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
 		}
 
-		Lang lang = getContentTypeSyntax().flatMap(JenaCommonsRDF::rdfSyntaxToLang).orElse(null);
+		Lang lang = getContentTypeSyntax().flatMap(RDFTermFactoryJena::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/35479886/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 1284240..12b0904 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
@@ -18,72 +18,295 @@
 
 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.* ;
+import org.apache.commons.rdf.api.*;
 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.
- *  See {@link JenaCommonsRDF} for other conversions of existing objects. 
- *  
- *  @see RDFTermFactory
+/**
+ * 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 = UUID.randomUUID(); 
+
+	private UUID salt = UUID.randomUUID();
+
+	@Override
+	public BlankNode createBlankNode() {
+		return JenaFactory.createBlankNode(salt);
+	}
+
+	@Override
+	public BlankNode createBlankNode(String name) {
+		return JenaFactory.createBlankNode(name, salt);
+	}
+
+	@Override
+	public Graph createGraph() {		
+		return JenaFactory.createGraph(salt);
+	}
+
+	@Override
+	public IRI createIRI(String iri) {
+		validateIRI(iri);
+		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);
+	}
+
+	@Override
+	public Literal createLiteral(String lexicalForm, IRI dataType) {
+		return JenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
+	}
+
+	@Override
+	public Literal createLiteral(String lexicalForm, String languageTag) {
+		validateLang(languageTag);
+		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}.
+	 * 
+	 * @param salt
+	 */
+	public static RDFTerm fromJena(Node node, UUID salt) {
+		return JenaFactory.fromJena(node, salt);
+	}
+
+	/**
+	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
+	 * 
+	 * @param salt
+	 */
+	public RDFTerm fromJena(Node node) {
+		return JenaFactory.fromJena(node, salt);
+	}
+
 	
-    @Override
-    public BlankNode createBlankNode() {
-        return JenaFactory.createBlankNode(salt) ;
-    }
-
-    @Override
-    public BlankNode createBlankNode(String name) {
-        return JenaFactory.createBlankNode(name, salt) ;
-    }
-
-    @Override
-    public Graph createGraph() {
-        return JenaFactory.createGraph() ;
-    }
-
-    @Override
-    public IRI createIRI(String iri) {
-        validateIRI(iri) ;
-        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) ;
-    }
-
-    @Override
-    public Literal createLiteral(String lexicalForm, IRI dataType) {
-        return JenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString()) ;
-    }
-
-    @Override
-    public Literal createLiteral(String lexicalForm, String languageTag) {
-        validateLang(languageTag) ;
-        return JenaFactory.createLiteralLang(lexicalForm, languageTag) ;
-    }
-
-    private static void validateLang(String languageTag) {
-        if ( languageTag.contains(" ") ) throw new IllegalArgumentException() ;
-    }
-
-    @Override
-    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-        return JenaFactory.createTriple(subject, predicate, object) ;
-    }
+	/**
+	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * 
+	 * @param salt
+	 */
+	public Triple fromJena(org.apache.jena.graph.Triple triple) {
+		return JenaFactory.fromJena(triple, salt);
+	}
+	
+	/**
+	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * 
+	 * @param salt
+	 */
+	public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+		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.
+	 */
+	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
+		return fromJena(new RDFTermFactoryJena(), graph);
+	}
+	
+	/**
+	 * Convert from Jena {@link Node} to any RDFCommons implementation
+	 * 
+	 * @param salt
+	 */
+	public static RDFTerm fromJena(RDFTermFactory factory, Node node, UUID salt) {
+		if (node == null) {
+			return null;
+		}
+		if (factory instanceof RDFTermFactoryJena) {
+			// No need to convert, just wrap (we'll use the parameter-provided salt)
+			return fromJena(node, salt);
+		}
+		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);
+	}
+
+	/**
+	 * 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);
+	}
 
+	/**
+	 * 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;
+	}
+
+	/**
+	 * 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));
+			}
+		};
+	}
+
+	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(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 void conversionError(String msg) {
+		throw new ConversionException(msg);
+	}
+
+	public static Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
+		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
+	}
+
+	public static Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
+		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35479886/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 ab684c5..f1243f1 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
@@ -19,6 +19,7 @@
 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;
@@ -26,8 +27,9 @@ 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;
-import org.apache.commons.rdf.jena.JenaCommonsRDF;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 import org.apache.commons.rdf.jena.JenaGraph;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.riot.Lang ;
@@ -36,9 +38,11 @@ import org.apache.jena.riot.RDFDataMgr ;
 public class GraphImpl implements Graph, JenaGraph {
 
     private org.apache.jena.graph.Graph graph;
+	private UUID salt;
 
-    /*package*/ GraphImpl(org.apache.jena.graph.Graph graph) {
-        this.graph = graph ;
+    /*package*/ GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
+        this.graph = graph ;        
+		this.salt = salt;
     }
     
     @Override
@@ -47,35 +51,35 @@ public class GraphImpl implements Graph, JenaGraph {
     }
 
     @Override
-    public void add(Triple triple) { graph.add(JenaCommonsRDF.toJena(triple)); }
+    public void add(Triple triple) { graph.add(RDFTermFactoryJena.toJena(triple)); }
 
     @Override
     public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { 
-        graph.add(org.apache.jena.graph.Triple.create(JenaCommonsRDF.toJena(subject),
-                                                      JenaCommonsRDF.toJena(predicate),
-                                                      JenaCommonsRDF.toJena(object)));
+        graph.add(org.apache.jena.graph.Triple.create(RDFTermFactoryJena.toJena(subject),
+				        		RDFTermFactoryJena.toJena(predicate),
+				        		RDFTermFactoryJena.toJena(object)));
     }
 
     @Override
     public boolean contains(Triple triple) {
-        return graph.contains(JenaCommonsRDF.toJena(triple)) ; 
+        return graph.contains(RDFTermFactoryJena.toJena(triple)) ; 
     }
 
     @Override
     public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-        return graph.contains(JenaCommonsRDF.toJena(subject),
-                              JenaCommonsRDF.toJena(predicate),
-                              JenaCommonsRDF.toJena(object) );
+        return graph.contains(RDFTermFactoryJena.toJena(subject),
+        		RDFTermFactoryJena.toJena(predicate),
+                              RDFTermFactoryJena.toJena(object) );
     }
 
     @Override
-    public void remove(Triple triple) { graph.delete(JenaCommonsRDF.toJena(triple)); }
+    public void remove(Triple triple) { graph.delete(RDFTermFactoryJena.toJena(triple)); }
 
     @Override
     public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-        graph.delete(org.apache.jena.graph.Triple.create(JenaCommonsRDF.toJena(subject),
-                                                         JenaCommonsRDF.toJena(predicate),
-                                                         JenaCommonsRDF.toJena(object)));
+        graph.delete(org.apache.jena.graph.Triple.create(RDFTermFactoryJena.toJena(subject),
+        		RDFTermFactoryJena.toJena(predicate),
+                                                         RDFTermFactoryJena.toJena(object)));
     }
 
     @Override
@@ -88,19 +92,20 @@ public class GraphImpl implements Graph, JenaGraph {
 
     @Override
     public Stream<? extends Triple> stream() {
-    	return Iter.asStream(graph.find(null, null, null), true).map(JenaCommonsRDF::fromJena);
+    	return Iter.asStream(graph.find(null, null, null), true).map(RDFTermFactoryJena::fromJena);
     }
 
     @Override
     public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
+    	RDFTermFactoryJena factory = new RDFTermFactoryJena();
         return Iter.asStream(graph.find(toJenaAny(s),toJenaAny(p),toJenaAny(o)), true).
-        		map(JenaCommonsRDF::fromJena);
+        		map(factory::fromJena);
     }
 
     private Node toJenaAny(RDFTerm term) {
         if ( term == null )
             return Node.ANY ;
-        return JenaCommonsRDF.toJena(term) ;
+        return RDFTermFactoryJena.toJena(term) ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35479886/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 73759c9..b94e3bd 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
@@ -17,80 +17,92 @@
  */
 
 package org.apache.commons.rdf.jena.impl;
-import static org.apache.commons.rdf.jena.JenaCommonsRDF.conversionError;
+
+import static org.apache.commons.rdf.jena.RDFTermFactoryJena.conversionError;
 
 import java.util.UUID;
 
-import org.apache.commons.rdf.api.* ;
-import org.apache.commons.rdf.jena.JenaCommonsRDF;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.NodeFactory ;
-import org.apache.jena.sparql.graph.GraphFactory ;
+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.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.sparql.graph.GraphFactory;
 
 public class JenaFactory {
-    // basic components to commonsrdf backed by Jena. 
-    public static IRI createIRI(String iriStr) {
-        return (IRI)JenaCommonsRDF.fromJena(NodeFactory.createURI(iriStr));
-    }
-
-    public static Literal createLiteral(String lexStr) {
-        return new LiteralImpl(NodeFactory.createLiteral(lexStr));
-    }
-
-    public static Literal createLiteralDT(String lexStr, String datatypeIRI) {
-        return new LiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI))) ;
-    }
-
-    public static Literal createLiteralLang(String lexStr, String langTag) {
-        return new LiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
-    }
-
-    public static BlankNode createBlankNode() {
-        return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
-    }
-    
-    public static BlankNode createBlankNode(UUID salt) {
-        return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
-    }
-
-    public static BlankNode createBlankNode(String id, UUID salt) {
-        return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
-    }
-    
-    public static Graph createGraph() { return new GraphImpl(GraphFactory.createDefaultGraph()) ; }
-    
-    public static Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { 
-        return new TripleImpl(subject, predicate, object) ;
-    }
-    
-    public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
-        return new TripleImpl(triple, salt) ;
-    }
-
-    public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-        return new GraphImpl(graph) ;
-    }
-
-    public static RDFTerm fromJena(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() )
-            return new BlankNodeImpl(node, salt) ; 
-        conversionError("Node is not a concrete RDF Term: "+node) ;
-        return null ;
-    }
+	// basic components to commonsrdf backed by Jena.
+	public static IRI createIRI(String iriStr) {
+		return new IRIImpl(iriStr);
+	}
+
+	public static Literal createLiteral(String lexStr) {
+		return new LiteralImpl(NodeFactory.createLiteral(lexStr));
+	}
+
+	public static Literal createLiteralDT(String lexStr, String datatypeIRI) {
+		return new LiteralImpl(NodeFactory.createLiteral(lexStr, NodeFactory.getType(datatypeIRI)));
+	}
+
+	public static Literal createLiteralLang(String lexStr, String langTag) {
+		return new LiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
+	}
+
+	public static BlankNode createBlankNode() {
+		return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
+	}
+
+	public static BlankNode createBlankNode(UUID salt) {
+		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
+	}
+
+	public static BlankNode createBlankNode(String id, UUID salt) {
+		return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
+	}
+
+	public static Graph createGraph() {
+		return createGraph(UUID.randomUUID());
+	}
+
+	public static Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return new TripleImpl(subject, predicate, object);
+	}
+
+	public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
+		return new TripleImpl(triple, salt);
+	}
+
+	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
+		return new GraphImpl(graph, UUID.randomUUID());
+	}
+
+	public static RDFTerm fromJena(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())
+			return new BlankNodeImpl(node, salt);
+		conversionError("Node is not a concrete RDF Term: " + node);
+		return null;
+	}
 
 	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		 return new QuadImpl(quad, salt) ;
+		return new QuadImpl(quad, salt);
 	}
-}
 
+	public static Graph createGraph(UUID salt) {
+		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35479886/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 0ecd743..4a347b3 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
@@ -27,7 +27,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.api.Triple;
-import org.apache.commons.rdf.jena.JenaCommonsRDF;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 import org.apache.commons.rdf.jena.JenaQuad;
 
 public class QuadImpl implements Quad, JenaQuad {
@@ -57,10 +57,10 @@ public class QuadImpl implements Quad, JenaQuad {
     public org.apache.jena.sparql.core.Quad asJenaQuad() {
         if ( quad == null ) {
             quad = org.apache.jena.sparql.core.Quad.create(
-            		JenaCommonsRDF.toJena(graphName.orElse(null)), 
-            		JenaCommonsRDF.toJena(subject), 
-            		JenaCommonsRDF.toJena(predicate), 
-            		JenaCommonsRDF.toJena(object)) ;
+            		RDFTermFactoryJena.toJena(graphName.orElse(null)), 
+            		RDFTermFactoryJena.toJena(subject), 
+            		RDFTermFactoryJena.toJena(predicate), 
+            		RDFTermFactoryJena.toJena(object)) ;
         }
         return quad ;
     }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/35479886/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 922d9c2..a778a8e 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
@@ -22,7 +22,7 @@ import java.util.Objects ;
 import java.util.UUID;
 
 import org.apache.commons.rdf.api.* ;
-import org.apache.commons.rdf.jena.JenaCommonsRDF;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 import org.apache.commons.rdf.jena.JenaTriple;
 
 public class TripleImpl implements Triple, JenaTriple {
@@ -47,7 +47,10 @@ public class TripleImpl implements Triple, JenaTriple {
     @Override
     public org.apache.jena.graph.Triple asJenaTriple() {
         if ( triple == null )
-            triple = org.apache.jena.graph.Triple.create(JenaCommonsRDF.toJena(subject), JenaCommonsRDF.toJena(predicate), JenaCommonsRDF.toJena(object)) ;
+            triple = org.apache.jena.graph.Triple.create(
+            		RDFTermFactoryJena.toJena(subject), 
+            		RDFTermFactoryJena.toJena(predicate), 
+            		RDFTermFactoryJena.toJena(object)) ;
         return triple ;
     }
 



[5/9] incubator-commonsrdf git commit: code tidy

Posted by st...@apache.org.
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/jena
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) {


[6/9] 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/jena
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;
 	}



[8/9] 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/jena
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;


[4/9] incubator-commonsrdf git commit: code tidy

Posted by st...@apache.org.
code tidy

Eclipse reformat/organize import/member sort


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

Branch: refs/heads/jena
Commit: 7136d5579e74d3f7c66d239254a7008957efc23b
Parents: ed89a1b
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 09:42:44 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 09:42:44 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/ConversionException.java   |  28 ++-
 .../org/apache/commons/rdf/jena/JenaGraph.java  |   6 +-
 .../org/apache/commons/rdf/jena/JenaNode.java   |   6 +-
 .../org/apache/commons/rdf/jena/JenaQuad.java   |   4 +-
 .../commons/rdf/jena/JenaRDFParserBuilder.java  |   8 +-
 .../org/apache/commons/rdf/jena/JenaTriple.java |   6 +-
 .../commons/rdf/jena/RDFTermFactoryJena.java    |  42 ++---
 .../commons/rdf/jena/impl/AbstractRDFTerm.java  |  43 +++--
 .../commons/rdf/jena/impl/BlankNodeImpl.java    |  49 ++---
 .../apache/commons/rdf/jena/impl/GraphImpl.java | 181 ++++++++++---------
 .../apache/commons/rdf/jena/impl/IRIImpl.java   |  63 +++----
 .../commons/rdf/jena/impl/JenaFactory.java      |  64 +++----
 .../commons/rdf/jena/impl/LiteralImpl.java      |  81 +++++----
 .../apache/commons/rdf/jena/impl/QuadImpl.java  | 161 +++++++++--------
 .../commons/rdf/jena/impl/TripleImpl.java       | 122 +++++++------
 15 files changed, 442 insertions(+), 422 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 44953cd..990086f 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,20 +18,30 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.shared.JenaException ;
+import org.apache.jena.shared.JenaException;
 
 /**
  * Exception thrown when a problem arises across the Jena-CommonRDF boundary.
  * 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"
- * >generalized RDF</a>.
+ * allow
+ * <a href="http://www.w3.org/TR/rdf11-concepts/#section-generalized-rdf" >
+ * generalized RDF</a>.
  */
 
 public class ConversionException extends JenaException {
-    public ConversionException()                                  { super(); }
-    public ConversionException(String message)                    { super(message); }
-    public ConversionException(Throwable cause)                   { super(cause) ; }
-    public ConversionException(String message, Throwable cause)   { super(message, cause) ; }
-}
+	public ConversionException() {
+		super();
+	}
+
+	public ConversionException(String message) {
+		super(message);
+	}
 
+	public ConversionException(Throwable cause) {
+		super(cause);
+	}
+
+	public ConversionException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 a101da4..7596021 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,9 +18,9 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.graph.Graph ;
+import org.apache.jena.graph.Graph;
 
-/** Access the Jena graph backing this object */ 
+/** Access the Jena graph backing this object */
 public interface JenaGraph extends org.apache.commons.rdf.api.Graph {
-    public Graph asJenaGraph() ;
+	public Graph asJenaGraph();
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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
index 0a47d9f..4be7940 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaNode.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaNode.java
@@ -19,9 +19,9 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.Node;
 
-/** Access the Jena node backing this object */ 
+/** Access the Jena node backing this object */
 public interface JenaNode extends RDFTerm {
-    public Node asJenaNode() ;
+	public Node asJenaNode();
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 a9c4f05..7fdb658 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
@@ -20,7 +20,7 @@ package org.apache.commons.rdf.jena;
 
 import org.apache.jena.sparql.core.Quad;
 
-/** Access the Jena quad backing this object */ 
+/** Access the Jena quad backing this object */
 public interface JenaQuad extends org.apache.commons.rdf.api.Quad {
-    public Quad asJenaQuad() ;
+	public Quad asJenaQuad();
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 2349f8b..e0eb19d 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
@@ -32,8 +32,7 @@ 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 {
+public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParserBuilder> implements RDFParserBuilder {
 
 	protected RDFTermFactory createRDFTermFactory() {
 		return new RDFTermFactoryJena();
@@ -43,9 +42,9 @@ public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParser
 	protected void parseSynchronusly() throws IOException {
 		StreamRDF dest;
 		if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) {
-			Graph jenaGraph = ((JenaGraph)getTargetGraph().get()).asJenaGraph();
+			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
 			dest = StreamRDFLib.graph(jenaGraph);
-		} else {		
+		} else {
 			dest = RDFTermFactoryJena.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
 		}
 
@@ -63,5 +62,4 @@ public class JenaRDFParserBuilder extends AbstractRDFParserBuilder<JenaRDFParser
 		}
 	}
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 f8e93ed..3735bdd 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,9 @@
 
 package org.apache.commons.rdf.jena;
 
-import org.apache.jena.graph.Triple ;
+import org.apache.jena.graph.Triple;
 
-/** Access the Jena triple backing this object */ 
+/** Access the Jena triple backing this object */
 public interface JenaTriple extends org.apache.commons.rdf.api.Triple {
-    public Triple asJenaTriple() ;
+	public Triple asJenaTriple();
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 820884c..f1ac450 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
@@ -44,11 +44,10 @@ import org.apache.jena.riot.system.StreamRDFBase;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
- * RDFTermFactory with Jena-backed objects. 
+ * 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)}. 
+ * 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
  */
@@ -56,10 +55,10 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 
 	private UUID salt;
 
-	public RDFTermFactoryJena() { 
+	public RDFTermFactoryJena() {
 		this.salt = UUID.randomUUID();
 	}
-	
+
 	public RDFTermFactoryJena(UUID salt) {
 		this.salt = salt;
 	}
@@ -75,7 +74,7 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	}
 
 	@Override
-	public Graph createGraph() {		
+	public Graph createGraph() {
 		return JenaFactory.createGraph(salt);
 	}
 
@@ -162,9 +161,7 @@ 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()));
 	}
 
@@ -199,26 +196,28 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		return JenaFactory.fromJena(node, salt);
 	}
 
-	
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * 
-	 * @param triple Jena triple
+	 * @param triple
+	 *            Jena triple
 	 */
 	public Triple fromJena(org.apache.jena.graph.Triple triple) {
 		return JenaFactory.fromJena(triple, salt);
 	}
-	
+
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * 
-	 * @param triple Jena triple
-	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s 
+	 * @param triple
+	 *            Jena triple
+	 * @param salt
+	 *            A {@link UUID} salt for adapting any {@link BlankNode}s
 	 */
 	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);
 	}
@@ -226,18 +225,17 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	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
 	 * take a copy. Changes to the CommonsRDF Graph are reflected in the jena
 	 * graph.
 	 */
-	public static Graph fromJena(org.apache.jena.graph.Graph 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 {@link Node} to any RDFCommons implementation
 	 * 
@@ -249,7 +247,7 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 		}
 		if (factory instanceof RDFTermFactoryJena) {
 			// No need to convert, just wrap
-			return ((RDFTermFactoryJena)factory).fromJena(node);
+			return ((RDFTermFactoryJena) factory).fromJena(node);
 		}
 		if (node.isURI())
 			return factory.createIRI(node.getURI());
@@ -274,7 +272,7 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	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);
+			return ((RDFTermFactoryJena) factory).fromJena(triple);
 		}
 		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, triple.getSubject()));
 		IRI predicate = (IRI) (fromJena(factory, triple.getPredicate()));
@@ -316,7 +314,7 @@ 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);
+			return ((RDFTermFactoryJena) factory).fromJena(quad);
 		}
 		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
 		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 1aaa476..e7bc125 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
@@ -20,29 +20,28 @@ package org.apache.commons.rdf.jena.impl;
 
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.JenaNode;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.riot.out.NodeFmtLib ;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.out.NodeFmtLib;
 
 class AbstractRDFTerm implements JenaNode, RDFTerm {
-    private Node node;
-    //static private PrefixMapping empty = new PrefixMappingImpl() ; 
-    
-    protected AbstractRDFTerm(Node node) {
-        this.node = node ;
-    }
-    
-    @Override
-    public Node asJenaNode() {
-        return node ;
-    }
+	private Node node;
+	// static private PrefixMapping empty = new PrefixMappingImpl() ;
 
-    public String ntriplesString() {
-        return NodeFmtLib.str(node) ;
-    }
-    
-    @Override
-    public String toString() {
-        return ntriplesString() ; 
-    }
-}
+	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/7136d557/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 9a41c71..fc7d1c3 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
@@ -20,38 +20,39 @@ package org.apache.commons.rdf.jena.impl;
 
 import java.util.UUID;
 
-import org.apache.commons.rdf.api.BlankNode ;
+import org.apache.commons.rdf.api.BlankNode;
 import org.apache.commons.rdf.jena.JenaNode;
-import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.Node;
 
 public class BlankNodeImpl extends AbstractRDFTerm implements BlankNode, JenaNode {
 
-    private UUID salt;
+	private UUID salt;
 
 	/* package */ BlankNodeImpl(Node node, UUID salt) {
 		super(node);
 		this.salt = salt;
 	}
 
-    @Override
-    public String uniqueReference() {
-        return salt + asJenaNode().getBlankNodeLabel() ;
-    }
-
-    @Override
-    public int hashCode() {
-        return uniqueReference().hashCode() ;
-    }
-    
-    @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 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/7136d557/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 ed16b4c..29d3a61 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
@@ -18,106 +18,115 @@
 
 package org.apache.commons.rdf.jena.impl;
 
-import java.io.StringWriter ;
+import java.io.StringWriter;
 import java.util.UUID;
-import java.util.stream.Stream ;
+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;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 import org.apache.commons.rdf.jena.JenaGraph;
 import org.apache.commons.rdf.jena.RDFTermFactoryJena;
-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.atlas.iterator.Iter;
+import org.apache.jena.graph.Node;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
 
 public class GraphImpl implements Graph, JenaGraph {
 
-    private org.apache.jena.graph.Graph graph;
+	private org.apache.jena.graph.Graph graph;
 	private UUID salt;
 
-    /*package*/ GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
-        this.graph = graph ;        
+	/* package */ GraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
+		this.graph = graph;
 		this.salt = salt;
-    }
-    
-    @Override
-    public org.apache.jena.graph.Graph asJenaGraph() {
-        return graph ;
-    }
-
-    @Override
-    public void add(Triple triple) { graph.add(RDFTermFactoryJena.toJena(triple)); }
-
-    @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)));
-    }
-
-    @Override
-    public boolean contains(Triple triple) {
-        return graph.contains(RDFTermFactoryJena.toJena(triple)) ; 
-    }
-
-    @Override
-    public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-        return graph.contains(RDFTermFactoryJena.toJena(subject),
-        		RDFTermFactoryJena.toJena(predicate),
-                              RDFTermFactoryJena.toJena(object) );
-    }
-
-    @Override
-    public void remove(Triple triple) { graph.delete(RDFTermFactoryJena.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)));
-    }
-
-    @Override
-    public void clear() { graph.clear(); }
-
-    @Override
-    public long size() {
-        return graph.size() ;
-    }
-
-    @Override
-    public Stream<? extends Triple> stream() {
-    	RDFTermFactoryJena factory = new RDFTermFactoryJena(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);
-        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 RDFTermFactoryJena.toJena(term) ;
-    }
-
-    @Override
-    public void close() { graph.close(); }
-    
-    @Override
-    public String toString() {
-        StringWriter sw = new StringWriter() ;
-        RDFDataMgr.write(sw, graph, Lang.NT) ;
-        return sw.toString() ;
-    }
+	}
+
+	@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)));
+	}
+
+	@Override
+	public void add(Triple triple) {
+		graph.add(RDFTermFactoryJena.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(
+				RDFTermFactoryJena.toJena(subject), 
+				RDFTermFactoryJena.toJena(predicate),
+				RDFTermFactoryJena.toJena(object));
+	}
+
+	@Override
+	public boolean contains(Triple triple) {
+		return graph.contains(RDFTermFactoryJena.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)));
+	}
+
+	@Override
+	public void remove(Triple triple) {
+		graph.delete(RDFTermFactoryJena.toJena(triple));
+	}
+
+	@Override
+	public long size() {
+		return graph.size();
+	}
+
+	@Override
+	public Stream<? extends Triple> stream() {
+		RDFTermFactoryJena factory = new RDFTermFactoryJena(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);
+		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 RDFTermFactoryJena.toJena(term);
+	}
+
+	@Override
+	public String toString() {
+		StringWriter sw = new StringWriter();
+		RDFDataMgr.write(sw, graph, Lang.NT);
+		return sw.toString();
+	}
 
 }
-

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 0716e8d..d5373b7 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
@@ -18,39 +18,40 @@
 
 package org.apache.commons.rdf.jena.impl;
 
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.NodeFactory ;
-
-import org.apache.commons.rdf.api.* ;
+import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.jena.JenaNode;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
 
 public class IRIImpl extends AbstractRDFTerm implements IRI, JenaNode {
 
-    /*package*/ IRIImpl(String iriStr) {
-        super(NodeFactory.createURI(iriStr)) ;
-    }
-    
-    /*package*/ IRIImpl(Node node) {
-        super(node) ;
-    }
-
-    @Override
-    public String getIRIString() {
-        return asJenaNode().getURI() ;
-    }
-    
-    @Override
-    public int hashCode() {
-        return getIRIString().hashCode() ;
-    }
-    
-    @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()) ;
-    }
-}
+	/* package */ IRIImpl(Node node) {
+		super(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/7136d557/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 a856d07..c67bb7c 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
@@ -35,6 +35,26 @@ import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 public class JenaFactory {
+	public static BlankNode createBlankNode() {
+		return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
+	}
+
+	public static BlankNode createBlankNode(String id, UUID salt) {
+		return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
+	}
+
+	public static BlankNode createBlankNode(UUID salt) {
+		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
+	}
+
+	public static Graph createGraph() {
+		return createGraph(UUID.randomUUID());
+	}
+
+	public static Graph createGraph(UUID salt) {
+		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
+	}
+
 	// basic components to commonsrdf backed by Jena.
 	public static IRI createIRI(String iriStr) {
 		return new IRIImpl(iriStr);
@@ -52,38 +72,10 @@ public class JenaFactory {
 		return new LiteralImpl(NodeFactory.createLiteral(lexStr, langTag));
 	}
 
-	public static BlankNode createBlankNode() {
-		return new BlankNodeImpl(NodeFactory.createBlankNode(), UUID.randomUUID());
-	}
-
-	public static BlankNode createBlankNode(UUID salt) {
-		return new BlankNodeImpl(NodeFactory.createBlankNode(), salt);
-	}
-
-	public static BlankNode createBlankNode(String id, UUID salt) {
-		return new BlankNodeImpl(NodeFactory.createBlankNode(id), salt);
-	}
-
-	public static Graph createGraph() {
-		return createGraph(UUID.randomUUID());
-	}
-
 	public static Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 		return new TripleImpl(subject, predicate, object);
 	}
 
-	public static Triple fromJena(org.apache.jena.graph.Triple triple, UUID salt) {
-		return new TripleImpl(triple, salt);
-	}
-
-	public static Graph 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) {
-		return new GraphImpl(graph, salt);
-	}
-	
 	public static RDFTerm fromJena(Node node, UUID salt) {
 		if (node.isURI())
 			return new IRIImpl(node);
@@ -102,11 +94,19 @@ public class JenaFactory {
 		return null;
 	}
 
-	public static Quad fromJena(org.apache.jena.sparql.core.Quad quad, UUID salt) {
-		return new QuadImpl(quad, salt);
+	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
+		return new GraphImpl(graph, UUID.randomUUID());
 	}
 
-	public static Graph createGraph(UUID salt) {
-		return new GraphImpl(GraphFactory.createDefaultGraph(), salt);
+	public static Graph 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) {
+		return new TripleImpl(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/7136d557/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 345532d..efcf099 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
@@ -18,51 +18,52 @@
 
 package org.apache.commons.rdf.jena.impl;
 
-import java.util.Objects ;
-import java.util.Optional ;
+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.jena.graph.Node ;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Literal;
+import org.apache.jena.graph.Node;
 
 public class LiteralImpl extends AbstractRDFTerm implements Literal {
 
-    /* package */ LiteralImpl(Node node) {
-        super(node) ;
-    }
+	/* package */ LiteralImpl(Node node) {
+		super(node);
+	}
 
-    @Override
-    public String getLexicalForm() {
-        return asJenaNode().getLiteralLexicalForm() ;
-    }
+	@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 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 int hashCode() {
-        return Objects.hash(getLexicalForm(), getDatatype(), getLanguageTag()) ;
-    }
-    
-    @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 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/7136d557/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 4a347b3..31c96b2 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
@@ -27,93 +27,94 @@ 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.RDFTermFactoryJena;
 import org.apache.commons.rdf.jena.JenaQuad;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 
 public class QuadImpl implements Quad, JenaQuad {
 
-	private final Optional<BlankNodeOrIRI> graphName;	
-    private final BlankNodeOrIRI subject ;
-    private final IRI predicate ;
-    private final RDFTerm object ;
-    private org.apache.jena.sparql.core.Quad quad = null ;
-
-    /* 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) ;
-    }
-
-    @Override
-    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)) ;
-        }
-        return quad ;
-    }
-
-    @Override
-    public BlankNodeOrIRI getSubject() {
-        return subject ;
-    }
-
-    @Override
-    public IRI getPredicate() {
-        return predicate ;
-    }
-
-    @Override
-    public RDFTerm getObject() {
-        return object ;
-    }
-
-    @Override
+	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);
+	}
+
+	@Override
+	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));
+		}
+		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;
+		return getGraphName().equals(quad.getGraphName()) && getSubject().equals(quad.getSubject())
+				&& getPredicate().equals(quad.getPredicate()) && getObject().equals(quad.getObject());
+	}
+
+	@Override
 	public Optional<BlankNodeOrIRI> getGraphName() {
 		return graphName;
 	}
-    
-    @Override
-    public int hashCode() {
-        return Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName()) ;
-    }
-
-    @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 ;
-        return getGraphName().equals(quad.getGraphName()) &&
-        		getSubject().equals(quad.getSubject()) &&
-        		getPredicate().equals(quad.getPredicate()) &&
-        		getObject().equals(quad.getObject()) ;
-    }
-    
-    @Override 
-    public String toString() {
-    	// kind of nquad syntax
+
+	@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("") +  ".";
-    }
-
-    @Override
-    public Triple asTriple() {
-    	return new TripleImpl(getSubject(), getPredicate(), getObject());
-    }
+				getPredicate().ntriplesString() + " "
+				+ getObject().ntriplesString() + " " + 
+				getGraphName().map(RDFTerm::ntriplesString).orElse("") + ".";
+	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7136d557/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 a778a8e..3a0f15b 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
@@ -18,76 +18,78 @@
 
 package org.apache.commons.rdf.jena.impl;
 
-import java.util.Objects ;
+import java.util.Objects;
 import java.util.UUID;
 
-import org.apache.commons.rdf.api.* ;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+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.JenaTriple;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
 
 public class TripleImpl implements Triple, JenaTriple {
-    private final BlankNodeOrIRI subject ;
-    private final IRI predicate ;
-    private final RDFTerm object ;
-    private org.apache.jena.graph.Triple triple = null ;
+	private final RDFTerm object;
+	private final IRI predicate;
+	private final BlankNodeOrIRI subject;
+	private org.apache.jena.graph.Triple triple = null;
 
-    /* package */ TripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-        this.subject = subject ;
-        this.predicate = predicate ;
-        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) ;
-        this.object = JenaFactory.fromJena(triple.getObject(), salt) ;
-        this.triple = triple ;
-    }
+	/* package */ TripleImpl(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		this.subject = subject;
+		this.predicate = predicate;
+		this.object = object;
+	}
 
-    @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 ;
-    }
+	/* 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);
+		this.object = JenaFactory.fromJena(triple.getObject(), salt);
+		this.triple = triple;
+	}
 
-    @Override
-    public BlankNodeOrIRI getSubject() {
-        return subject ;
-    }
+	@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 IRI getPredicate() {
-        return predicate ;
-    }
+	@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 RDFTerm getObject() {
-        return object ;
-    }
+	@Override
+	public RDFTerm getObject() {
+		return object;
+	}
 
-    @Override
-    public int hashCode() {
-        return Objects.hash(getSubject(), getPredicate(), getObject()) ;
-    }
+	@Override
+	public IRI getPredicate() {
+		return predicate;
+	}
 
-    @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 String toString() {
-        return getSubject()+" "+getPredicate()+" "+getObject()+" ." ;
-    }
-}
+	@Override
+	public BlankNodeOrIRI getSubject() {
+		return subject;
+	}
 
+	@Override
+	public int hashCode() {
+		return Objects.hash(getSubject(), getPredicate(), getObject());
+	}
+
+	@Override
+	public String toString() {
+		return getSubject() + " " + getPredicate() + " " + getObject() + " .";
+	}
+}



[3/9] incubator-commonsrdf git commit: non-static fromJena methods

Posted by st...@apache.org.
non-static fromJena methods

which uses the factory's 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/ed89a1b9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/ed89a1b9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/ed89a1b9

Branch: refs/heads/jena
Commit: ed89a1b9659dc62af77bc84565d2043cc30b6c2e
Parents: 3547988
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jul 8 09:39:55 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jul 8 09:39:55 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/RDFTermFactoryJena.java    | 48 ++++++++++++++++----
 .../apache/commons/rdf/jena/impl/GraphImpl.java |  5 +-
 .../commons/rdf/jena/impl/JenaFactory.java      |  4 ++
 3 files changed, 45 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ed89a1b9/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 12b0904..820884c 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
@@ -22,7 +22,16 @@ import java.util.Optional;
 import java.util.UUID;
 import java.util.function.Consumer;
 
-import org.apache.commons.rdf.api.*;
+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.jena.impl.JenaFactory;
 import org.apache.jena.datatypes.RDFDatatype;
 import org.apache.jena.datatypes.xsd.XSDDatatype;
@@ -45,7 +54,15 @@ import org.apache.jena.sparql.graph.GraphFactory;
  */
 public final class RDFTermFactoryJena implements RDFTermFactory {
 
-	private UUID salt = UUID.randomUUID();
+	private UUID salt;
+
+	public RDFTermFactoryJena() { 
+		this.salt = UUID.randomUUID();
+	}
+	
+	public RDFTermFactoryJena(UUID salt) {
+		this.salt = salt;
+	}
 
 	@Override
 	public BlankNode createBlankNode() {
@@ -186,7 +203,7 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * 
-	 * @param salt
+	 * @param triple Jena triple
 	 */
 	public Triple fromJena(org.apache.jena.graph.Triple triple) {
 		return JenaFactory.fromJena(triple, salt);
@@ -195,19 +212,30 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	/**
 	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
 	 * 
-	 * @param salt
+	 * @param triple Jena triple
+	 * @param salt A {@link UUID} salt for adapting any {@link BlankNode}s 
 	 */
 	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
 	 * take a copy. Changes to the CommonsRDF Graph are reflected in the jena
 	 * graph.
 	 */
-	public static Graph fromJena(org.apache.jena.graph.Graph graph) {
-		return fromJena(new RDFTermFactoryJena(), graph);
+	public static Graph fromJena(org.apache.jena.graph.Graph graph) {	
+		// NOTE: This generates a new UUID salt per graph
+		return JenaFactory.fromJena(graph);
 	}
 	
 	/**
@@ -215,13 +243,13 @@ public final class RDFTermFactoryJena implements RDFTermFactory {
 	 * 
 	 * @param salt
 	 */
-	public static RDFTerm fromJena(RDFTermFactory factory, Node node, UUID salt) {
+	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
 		if (node == null) {
 			return null;
 		}
 		if (factory instanceof RDFTermFactoryJena) {
-			// No need to convert, just wrap (we'll use the parameter-provided salt)
-			return fromJena(node, salt);
+			// No need to convert, just wrap
+			return ((RDFTermFactoryJena)factory).fromJena(node);
 		}
 		if (node.isURI())
 			return factory.createIRI(node.getURI());
@@ -288,7 +316,7 @@ 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 fromJena(quad);
+			return ((RDFTermFactoryJena)factory).fromJena(quad);
 		}
 		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
 		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ed89a1b9/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 f1243f1..ed16b4c 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
@@ -92,12 +92,13 @@ public class GraphImpl implements Graph, JenaGraph {
 
     @Override
     public Stream<? extends Triple> stream() {
-    	return Iter.asStream(graph.find(null, null, null), true).map(RDFTermFactoryJena::fromJena);
+    	RDFTermFactoryJena factory = new RDFTermFactoryJena(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();
+    	RDFTermFactoryJena factory = new RDFTermFactoryJena(salt);
         return Iter.asStream(graph.find(toJenaAny(s),toJenaAny(p),toJenaAny(o)), true).
         		map(factory::fromJena);
     }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ed89a1b9/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 b94e3bd..a856d07 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
@@ -80,6 +80,10 @@ public class JenaFactory {
 		return new GraphImpl(graph, UUID.randomUUID());
 	}
 
+	public static Graph fromJena(org.apache.jena.graph.Graph graph, UUID salt) {
+		return new GraphImpl(graph, salt);
+	}
+	
 	public static RDFTerm fromJena(Node node, UUID salt) {
 		if (node.isURI())
 			return new IRIImpl(node);


[9/9] 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/jena
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());
+	}
 
 }