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) ;