You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/08/03 18:12:06 UTC
svn commit: r1510023 - /jena/Scratch/AFS/Jena-Dev/trunk/src/element/
Author: andy
Date: Sat Aug 3 16:12:05 2013
New Revision: 1510023
URL: http://svn.apache.org/r1510023
Log:
javadoc + tidying up.
Added:
jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryTransformOps.java
- copied, changed from r1509984, jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryOps.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateTransformOps.java
- copied, changed from r1509984, jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateOps.java
Removed:
jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryOps.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateOps.java
Modified:
jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformSubst.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformer.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/MainElt.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/NodeTransformSubst.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestQueryOps.java
jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestSubstitution.java
Modified: jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformSubst.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformSubst.java?rev=1510023&r1=1510022&r2=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformSubst.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformSubst.java Sat Aug 3 16:12:05 2013
@@ -29,6 +29,7 @@ import com.hp.hpl.jena.sparql.syntax.Ele
import com.hp.hpl.jena.sparql.syntax.ElementPathBlock ;
import com.hp.hpl.jena.sparql.syntax.ElementTriplesBlock ;
+/** An ElementTransform which replaces occurences of a variable with a Node value.*/
public class ElementTransformSubst extends ElementTransformCopyBase {
// NodeTransform
Modified: jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformer.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformer.java?rev=1510023&r1=1510022&r2=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformer.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/ElementTransformer.java Sat Aug 3 16:12:05 2013
@@ -33,7 +33,11 @@ import com.hp.hpl.jena.sparql.expr.ExprT
import com.hp.hpl.jena.sparql.expr.ExprTransformer ;
import com.hp.hpl.jena.sparql.syntax.* ;
-/** A bottom-top application of a transformation of SPARQL syntax */
+/** A bottom-up application of a transformation of SPARQL syntax Elements.
+ * {@linkplain QueryTransformOps#transform} provides the mechanism
+ * to apply to a {@linkplain Query}.
+ * @see UpdateTransformOps#transform
+ */
public class ElementTransformer {
private static ElementTransformer singleton = new ElementTransformer() ;
@@ -284,7 +288,7 @@ public class ElementTransformer {
@Override
public void visit(ElementSubQuery el) {
- Query newQuery = QueryOps.transform(el.getQuery(), transform, exprTransform) ;
+ Query newQuery = QueryTransformOps.transform(el.getQuery(), transform, exprTransform) ;
push(new ElementSubQuery(newQuery)) ;
}
Modified: jena/Scratch/AFS/Jena-Dev/trunk/src/element/MainElt.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/MainElt.java?rev=1510023&r1=1510022&r2=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/MainElt.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/MainElt.java Sat Aug 3 16:12:05 2013
@@ -40,15 +40,16 @@ public class MainElt
String x = StrUtils.strjoinNL
( "PREFIX : <http://example/>"
//, "SELECT * { ?s :p ?x . NOT EXISTS { ?x :r ?x } FILTER NOT EXISTS { ?x :r ?x } FILTER ( ?x > ?y ) OPTIONAL { ?x :q ?y } }"
- , "SELECT ?x { ?s :p ?x . FILTER NOT EXISTS { ?x :r ?x }} GROUP BY ?x ORDER BY ?x"
+ //, "SELECT ?x { ?s :p ?x . FILTER NOT EXISTS { ?x :r ?x }} GROUP BY ?x ORDER BY ?x"
+ , "ASK { FILTER (?x = <http://example/X>) }"
);
Query q = QueryFactory.create(x, Syntax.syntaxARQ) ;
Map<Var, Node> map = new HashMap<Var, Node>() ;
- map.put(Var.alloc("x"), NodeFactory.createURI("X")) ;
+ map.put(Var.alloc("x"), NodeFactory.createURI("http://example/X")) ;
- Query q2 = QueryOps.transform(q, map) ;
+ Query q2 = QueryTransformOps.transform(q, map) ;
System.out.print(q) ;
System.out.println("-------------");
System.out.print(q2) ;
@@ -59,7 +60,7 @@ public class MainElt
, "DELETE { ?s :p ?x } WHERE {}"
);
UpdateRequest req = UpdateFactory.create(z) ;
- UpdateRequest req2 = UpdateOps.transform(req, map) ;
+ UpdateRequest req2 = UpdateTransformOps.transform(req, map) ;
System.out.print(req) ;
System.out.println("-------------");
System.out.print(req2) ;
Modified: jena/Scratch/AFS/Jena-Dev/trunk/src/element/NodeTransformSubst.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/NodeTransformSubst.java?rev=1510023&r1=1510022&r2=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/NodeTransformSubst.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/NodeTransformSubst.java Sat Aug 3 16:12:05 2013
@@ -24,6 +24,7 @@ import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.graph.NodeTransform ;
+/** Substituting variables for a Node */
public class NodeTransformSubst implements NodeTransform {
private final Map<Var, Node> map ;
Copied: jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryTransformOps.java (from r1509984, jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryOps.java)
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryTransformOps.java?p2=jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryTransformOps.java&p1=jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryOps.java&r1=1509984&r2=1510023&rev=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryOps.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/QueryTransformOps.java Sat Aug 3 16:12:05 2013
@@ -32,7 +32,9 @@ import com.hp.hpl.jena.sparql.expr.* ;
import com.hp.hpl.jena.sparql.graph.NodeTransform ;
import com.hp.hpl.jena.sparql.syntax.Element ;
-public class QueryOps {
+/** Support for transformation of query abstract syntax. */
+
+public class QueryTransformOps {
public static Query transform(Query query, Map<Var, Node> substitutions) {
ElementTransform eltrans = new ElementTransformSubst(substitutions) ;
NodeTransform nodeTransform = new NodeTransformSubst(substitutions) ;
@@ -41,7 +43,7 @@ public class QueryOps {
}
public static Query transform(Query query, ElementTransform transform, ExprTransform exprTransform) {
- Query q2 = QueryOps.shallowCopy(query) ;
+ Query q2 = QueryTransformOps.shallowCopy(query) ;
transformVarExprList(q2.getProject(), exprTransform) ;
transformVarExprList(q2.getGroupBy(), exprTransform) ;
Modified: jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestQueryOps.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestQueryOps.java?rev=1510023&r1=1510022&r2=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestQueryOps.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestQueryOps.java Sat Aug 3 16:12:05 2013
@@ -51,7 +51,7 @@ public class TestQueryOps extends BaseT
private static void testShallowCopy(String queryString)
{
Query q1 = QueryFactory.create(queryString) ;
- Query q2 = QueryOps.shallowCopy(q1) ;
+ Query q2 = QueryTransformOps.shallowCopy(q1) ;
assertEquals(q1, q2) ;
}
Modified: jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestSubstitution.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestSubstitution.java?rev=1510023&r1=1510022&r2=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestSubstitution.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/TestSubstitution.java Sat Aug 3 16:12:05 2013
@@ -29,6 +29,8 @@ import com.hp.hpl.jena.query.Query ;
import com.hp.hpl.jena.query.QueryFactory ;
import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.update.UpdateFactory ;
+import com.hp.hpl.jena.update.UpdateRequest ;
public class TestSubstitution extends BaseTest
{
@@ -46,6 +48,9 @@ public class TestSubstitution extends Ba
@Test public void subst_10() { testQuery("SELECT * { SELECT ?o {} }", "SELECT * {SELECT (1 as ?o) {}}", "o", "1") ; }
+ @Test public void subst_50() { testUpdate("DELETE { ?s <urn:p> ?x } WHERE {}",
+ "DELETE { ?s <urn:p> <urn:x> } WHERE {}", "x", "<urn:x>") ; }
+
//static final String PREFIX = "PREFIX : <http://example/>\n" ;
static final String PREFIX = "" ;
@@ -57,10 +62,26 @@ public class TestSubstitution extends Ba
Map<Var, Node> map = new HashMap<Var, Node>() ;
map.put(Var.alloc(varStr), SSE.parseNode(valStr)) ;
- Query qTrans = QueryOps.transform(q1, map) ;
+ Query qTrans = QueryTransformOps.transform(q1, map) ;
assertEquals(qExpected, qTrans) ;
}
+ private void testUpdate(String input, String output, String varStr, String valStr)
+ {
+ UpdateRequest req1 = UpdateFactory.create(PREFIX+input) ;
+ UpdateRequest reqExpected = UpdateFactory.create(PREFIX+output) ;
+
+ Map<Var, Node> map = new HashMap<Var, Node>() ;
+ map.put(Var.alloc(varStr), SSE.parseNode(valStr)) ;
+
+ UpdateRequest reqTrans = UpdateTransformOps.transform(req1, map) ;
+
+ // Crude.
+ String x1 = reqExpected.toString().replaceAll("[ \n\t]", "") ;
+ String x2 = reqTrans.toString().replaceAll("[ \n\t]", "") ;
+ //assertEquals(reqExpected, reqTrans) ;
+ assertEquals(x1, x2) ;
+ }
}
Copied: jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateTransformOps.java (from r1509984, jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateOps.java)
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateTransformOps.java?p2=jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateTransformOps.java&p1=jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateOps.java&r1=1509984&r2=1510023&rev=1510023&view=diff
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateOps.java (original)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/element/UpdateTransformOps.java Sat Aug 3 16:12:05 2013
@@ -34,7 +34,8 @@ import com.hp.hpl.jena.sparql.syntax.Ele
import com.hp.hpl.jena.update.Update ;
import com.hp.hpl.jena.update.UpdateRequest ;
-public class UpdateOps {
+/** Support for transformation of update abstract syntax. */
+public class UpdateTransformOps {
public static Update transform(Update update, Map<Var, Node> substitutions) {
ElementTransform eltrans = new ElementTransformSubst(substitutions) ;
@@ -59,6 +60,8 @@ public class UpdateOps {
public static UpdateRequest transform(UpdateRequest update, ElementTransform transform, ExprTransform exprTransform) {
UpdateRequest req = new UpdateRequest() ;
+ req.getPrefixMapping().setNsPrefixes(update.getPrefixMapping()) ;
+
for (Update up : update.getOperations()) {
up = transform(up, transform, exprTransform) ;
req.add(up) ;