Author: mir
Date: Tue Nov 2 14:42:00 2010
New Revision: 1030067
URL: http://svn.apache.org/viewvc?rev=1030067&view=rev
Log:
CLEREZZA-348: unnecessary mappings no longer added
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Jena2TriaUtil.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Tria2JenaUtil.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.facade/src/main/java/org/apache/clerezza/rdf/jena/facade/JenaGraph.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.storage/src/main/java/org/apache/clerezza/rdf/jena/storage/JenaGraphAdaptor.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Jena2TriaUtil.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Jena2TriaUtil.java?rev=1030067&r1=1030066&r2=1030067&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Jena2TriaUtil.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Jena2TriaUtil.java
Tue Nov 2 14:42:00 2010
@@ -42,9 +42,9 @@ public class Jena2TriaUtil {
this.tria2JenaBNodes = tria2JenaBNodes;
}
- private BNode convertJenaNode2TriaBlankNode(Node node) {
+ private BNode convertJenaNode2TriaBlankNode(Node node, boolean
createBNode) {
BNode result = tria2JenaBNodes.get(node);
- if (result == null) {
+ if (result == null && createBNode) {
result = new BNode();
tria2JenaBNodes.put(node,result);
}
@@ -80,7 +80,7 @@ public class Jena2TriaUtil {
*/
public UriRef convertJenaUri2UriRef(Node node) {
if (node == null) {
- return null;
+ throw new IllegalArgumentException("null argument not
allowed");
}
return new UriRef(node.getURI());
}
@@ -91,11 +91,21 @@ public class Jena2TriaUtil {
* @return BNode if it is a Blank Node, UriRef if it is a URI and
Literal if it is a literal.
*/
public Resource convertJenaNode2Resource(Node node) {
+ return convertJenaNode2Resource(node, false);
+ }
+
+ /**
+ * Converts a jena node to a resource. If covertBNode is true, then a
new
+ * BNode is created for a blank node if no mapping already exists.
+ * @param node
+ * @return BNode if it is a Blank Node, UriRef if it is a URI and
Literal if it is a literal.
+ */
+ public Resource convertJenaNode2Resource(Node node, boolean
createBNode) {
if (node == null) {
- return null;
+ throw new IllegalArgumentException("null argument not
allowed");
}
if (node.isBlank()) {
- return convertJenaNode2TriaBlankNode(node);
+ return convertJenaNode2TriaBlankNode(node, createBNode);
}
if (node.isURI()) {
return convertJenaUri2UriRef(node);
@@ -107,16 +117,31 @@ public class Jena2TriaUtil {
}
/**
- * Converts a node to a BNode if it is a Blank Node otherwise to a
UriRef
+ * Converts a node to a BNode if it is a Blank Node otherwise to a
UriRef.
+ * If node is a BNode and no mapping to a Blank Node exists, then null
is
+ * returned, otherwise the existing mapping.
+ *
* @param node
* @return BNode if it is a Blank Node otherwise a UriRef
*/
public NonLiteral convertNonLiteral(Node node) {
+ return convertNonLiteral(node, false);
+ }
+
+ /**
+ * Converts a node to a BNode if it is a Blank Node otherwise to a
UriRef.
+ * If covertBNode is true, then a new BNode is created for a blank node
if
+ * no mapping already exists.
+ *
+ * @param node
+ * @return BNode if it is a Blank Node otherwise a UriRef
+ */
+ public NonLiteral convertNonLiteral(Node node, boolean createBNode) {
if (node == null) {
- return null;
+ throw new IllegalArgumentException("null argument not
allowed");
}
if (node.isBlank()) {
- return convertJenaNode2TriaBlankNode(node);
+ return convertJenaNode2TriaBlankNode(node, createBNode);
}
if (node.isURI()) {
return convertJenaUri2UriRef(node);
@@ -125,9 +150,16 @@ public class Jena2TriaUtil {
}
public Triple convertTriple(com.hp.hpl.jena.graph.Triple triple) {
- NonLiteral subject = convertNonLiteral(triple.getSubject());
+ return convertTriple(triple, false);
+ }
+
+ public Triple convertTriple(com.hp.hpl.jena.graph.Triple triple,
boolean createBnodes) {
+ NonLiteral subject = convertNonLiteral(triple.getSubject(),
createBnodes);
UriRef predicate = convertJenaUri2UriRef(triple.getPredicate());
- Resource object = convertJenaNode2Resource(triple.getObject());
+ Resource object = convertJenaNode2Resource(triple.getObject(),
createBnodes);
+ if (subject == null || object == null) {
+ return null;
+ }
return new TripleImpl(subject, predicate, object);
}
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Tria2JenaUtil.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Tria2JenaUtil.java?rev=1030067&r1=1030066&r2=1030067&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Tria2JenaUtil.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.commons/src/main/java/org/apache/clerezza/rdf/jena/commons/Tria2JenaUtil.java
Tue Nov 2 14:42:00 2010
@@ -41,17 +41,17 @@ public class Tria2JenaUtil {
this.tria2JenaBNodes = tria2JenaBNodes;
}
- public Node convert2JenaNode(NonLiteral nonLiteral) {
+ public Node convert2JenaNode(NonLiteral nonLiteral, boolean
createBlankNode) {
if (nonLiteral instanceof UriRef) {
return convert2JenaNode((UriRef)nonLiteral);
} else {
- return convert2JenaNode((BNode)nonLiteral);
+ return convert2JenaNode((BNode)nonLiteral,
createBlankNode);
}
}
public Node convert2JenaNode(Literal literal) {
if (literal == null) {
- return null;
+ throw new IllegalArgumentException("null argument not
allowed");
}
if (literal instanceof PlainLiteral) {
return convert2JenaNode((PlainLiteral)literal);
@@ -72,26 +72,34 @@ public class Tria2JenaUtil {
}
public Node convert2JenaNode(Resource resource) {
+ return convert2JenaNode(resource, false);
+ }
+
+ public Node convert2JenaNode(Resource resource, boolean
createBlankNode) {
if (resource instanceof NonLiteral) {
- return convert2JenaNode((NonLiteral)resource);
+ return convert2JenaNode((NonLiteral)resource,
createBlankNode);
}
return convert2JenaNode((Literal)resource);
}
public Node convert2JenaNode(UriRef uriRef) {
if (uriRef == null) {
- return null;
+ throw new IllegalArgumentException("null argument not
allowed");
}
return com.hp.hpl.jena.graph.Node.createURI(
uriRef.getUnicodeString());
}
public Node convert2JenaNode(BNode bnode) {
+ return convert2JenaNode(bnode, false);
+ }
+
+ public Node convert2JenaNode(BNode bnode, boolean createBlankNode) {
if (bnode == null) {
- return null;
+ throw new IllegalArgumentException("null argument not
allowed");
}
Node result = tria2JenaBNodes.get(bnode);
- if (result == null) {
+ if (result == null && createBlankNode) {
result = com.hp.hpl.jena.graph.Node.createAnon();
tria2JenaBNodes.put(bnode, result);
}
@@ -99,9 +107,16 @@ public class Tria2JenaUtil {
}
public com.hp.hpl.jena.graph.Triple convertTriple(Triple triple) {
- Node subject = convert2JenaNode(triple.getSubject());
+ return convertTriple(triple, false);
+ }
+
+ public com.hp.hpl.jena.graph.Triple convertTriple(Triple triple,
boolean createBlankNodes) {
+ Node subject = convert2JenaNode(triple.getSubject(),
createBlankNodes);
Node predicate = convert2JenaNode(triple.getPredicate());
- Node object = convert2JenaNode(triple.getObject());
+ Node object = convert2JenaNode(triple.getObject(),
createBlankNodes);
+ if (subject == null || object == null) {
+ return null;
+ }
return new com.hp.hpl.jena.graph.Triple(subject, predicate,
object);
}
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.facade/src/main/java/org/apache/clerezza/rdf/jena/facade/JenaGraph.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.facade/src/main/java/org/apache/clerezza/rdf/jena/facade/JenaGraph.java?rev=1030067&r1=1030066&r2=1030067&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.facade/src/main/java/org/apache/clerezza/rdf/jena/facade/JenaGraph.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.facade/src/main/java/org/apache/clerezza/rdf/jena/facade/JenaGraph.java
Tue Nov 2 14:42:00 2010
@@ -25,6 +25,7 @@ import com.hp.hpl.jena.graph.TripleMatch
import com.hp.hpl.jena.graph.impl.GraphBase;
import com.hp.hpl.jena.mem.TrackingTripleIterator;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
@@ -72,12 +73,15 @@ public class JenaGraph extends GraphBase
@Override
public void performAdd(com.hp.hpl.jena.graph.Triple triple) {
- graph.add(jena2TriaUtil.convertTriple(triple));
+ graph.add(jena2TriaUtil.convertTriple(triple, true));
}
@Override
public void performDelete(com.hp.hpl.jena.graph.Triple triple) {
- graph.remove(jena2TriaUtil.convertTriple(triple));
+ Triple clerezzaTriple = jena2TriaUtil.convertTriple(triple);
+ if (clerezzaTriple != null) {
+ graph.remove(clerezzaTriple);
+ }
}
private Iterator<com.hp.hpl.jena.graph.Triple> convert(
@@ -95,7 +99,7 @@ public class JenaGraph extends GraphBase
public com.hp.hpl.jena.graph.Triple next() {
Triple baseNext = base.next();
lastReturned = baseNext;
- return (baseNext == null) ? null :
tria2JenaUtil.convertTriple(baseNext);
+ return (baseNext == null) ? null :
tria2JenaUtil.convertTriple(baseNext, true);
}
@Override
@@ -112,9 +116,25 @@ public class JenaGraph extends GraphBase
* @return TripleCollection
*/
private Iterator<Triple> filter(TripleMatch m) {
- NonLiteral subject =
jena2TriaUtil.convertNonLiteral(m.getMatchSubject());
- UriRef predicate =
jena2TriaUtil.convertJenaUri2UriRef(m.getMatchPredicate());
- Resource object =
jena2TriaUtil.convertJenaNode2Resource(m.getMatchObject());
+ NonLiteral subject = null;
+ UriRef predicate = null;
+ Resource object = null;
+ if (m.getMatchSubject() != null) {
+ subject =
jena2TriaUtil.convertNonLiteral(m.getMatchSubject());
+ if (subject == null) {
+ return Collections.EMPTY_SET.iterator();
+ }
+ }
+ if (m.getMatchObject() != null) {
+ object =
jena2TriaUtil.convertJenaNode2Resource(m.getMatchObject());
+ if (object == null) {
+ return Collections.EMPTY_SET.iterator();
+ }
+ }
+ if (m.getMatchPredicate() != null) {
+ predicate =
jena2TriaUtil.convertJenaUri2UriRef(m.getMatchPredicate());
+ }
+
try {
return graph.filter(subject, predicate, object);
} catch (IllegalArgumentException e) {
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.storage/src/main/java/org/apache/clerezza/rdf/jena/storage/JenaGraphAdaptor.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.storage/src/main/java/org/apache/clerezza/rdf/jena/storage/JenaGraphAdaptor.java?rev=1030067&r1=1030066&r2=1030067&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.storage/src/main/java/org/apache/clerezza/rdf/jena/storage/JenaGraphAdaptor.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.jena.storage/src/main/java/org/apache/clerezza/rdf/jena/storage/JenaGraphAdaptor.java
Tue Nov 2 14:42:00 2010
@@ -22,6 +22,7 @@ import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
import org.apache.clerezza.rdf.core.BNode;
import org.apache.clerezza.rdf.core.NonLiteral;
@@ -64,9 +65,27 @@ public class JenaGraphAdaptor extends Ab
@Override
public Iterator<Triple> performFilter(NonLiteral subject, UriRef
predicate, Resource object) {
- final ExtendedIterator jenaIter =
jenaGraph.find(tria2JenaUtil.convert2JenaNode(subject),
- tria2JenaUtil.convert2JenaNode(predicate),
- tria2JenaUtil.convert2JenaNode(object));
+ Node jenaSubject = null;
+ Node jenaPredicate = null;
+ Node jenaObject = null;
+ if (subject != null) {
+ jenaSubject = tria2JenaUtil.convert2JenaNode(subject);
+ if (jenaSubject == null) {
+ return Collections.EMPTY_SET.iterator();
+ }
+ }
+ if (object != null) {
+ jenaObject = tria2JenaUtil.convert2JenaNode(object);
+ if (jenaObject == null) {
+ return Collections.EMPTY_SET.iterator();
+ }
+ }
+ if (predicate != null) {
+ jenaPredicate =
tria2JenaUtil.convert2JenaNode(predicate);
+ }
+
+ final ExtendedIterator jenaIter = jenaGraph.find(jenaSubject,
jenaPredicate,
+ jenaObject);
return new Iterator<Triple>() {
private Triple lastReturned = null;
@@ -87,7 +106,7 @@ public class JenaGraphAdaptor extends Ab
lastReturned = precached.next();
} else {
lastReturned =
jena2TriaUtil.convertTriple(
-
(com.hp.hpl.jena.graph.Triple)jenaIter.next());
+
(com.hp.hpl.jena.graph.Triple)jenaIter.next(), true);
}
return lastReturned;
}
@@ -115,7 +134,7 @@ public class JenaGraphAdaptor extends Ab
if (contains(triple)) {
return false;
}
- jenaGraph.add(tria2JenaUtil.convertTriple(triple));
+ jenaGraph.add(tria2JenaUtil.convertTriple(triple, true));
return true;
}