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 2016/04/27 18:31:28 UTC

jena git commit: JENA-1170 : Map and allow var -> var substitution.

Repository: jena
Updated Branches:
  refs/heads/master 5f625be1c -> 8d4cb5600


JENA-1170 : Map<Var, ? extends Var> and allow var -> var substitution.

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

Branch: refs/heads/master
Commit: 8d4cb56005332638a24e13fda571680a8ed23fa0
Parents: 5f625be
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Apr 27 17:30:50 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Apr 27 17:30:50 2016 +0100

----------------------------------------------------------------------
 .../syntax/syntaxtransform/ElementTransformSubst.java       | 2 +-
 .../sparql/syntax/syntaxtransform/NodeTransformSubst.java   | 4 ++--
 .../sparql/syntax/syntaxtransform/QueryTransformOps.java    | 9 +++++----
 3 files changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8d4cb560/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/ElementTransformSubst.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/ElementTransformSubst.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/ElementTransformSubst.java
index 2ae2cad..8707f93 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/ElementTransformSubst.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/ElementTransformSubst.java
@@ -40,7 +40,7 @@ import org.apache.jena.sparql.syntax.ElementTriplesBlock ;
 public class ElementTransformSubst extends ElementTransformCopyBase {
     private final NodeTransform nodeTransform ;
 
-    public ElementTransformSubst(Map<Var, Node> mapping) {
+    public ElementTransformSubst(Map<Var, ? extends Node> mapping) {
         this.nodeTransform = new NodeTransformSubst(mapping) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/8d4cb560/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/NodeTransformSubst.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/NodeTransformSubst.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/NodeTransformSubst.java
index bdb0441..98b5905 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/NodeTransformSubst.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/NodeTransformSubst.java
@@ -26,9 +26,9 @@ import org.apache.jena.sparql.graph.NodeTransform ;
 
 /** A {@link NodeTransform} substituting variables for {@link Node}s. */
 public class NodeTransformSubst implements NodeTransform {
-    private final Map<Var, Node> map ;
+    private final Map<Var, ? extends Node> map ;
 
-    NodeTransformSubst(Map<Var, Node> map) {
+    NodeTransformSubst(Map<Var, ? extends Node> map) {
         this.map = map ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/8d4cb560/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
index c05823a..d5c33c3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
@@ -39,7 +39,7 @@ import org.apache.jena.sparql.syntax.ElementGroup ;
 /** Support for transformation of query abstract syntax. */ 
 
 public class QueryTransformOps {
-    public static Query transform(Query query, Map<Var, Node> substitutions) {
+    public static Query transform(Query query, Map<Var, ? extends Node> substitutions) {
         ElementTransform eltrans = new ElementTransformSubst(substitutions) ;
         NodeTransform nodeTransform = new NodeTransformSubst(substitutions) ;
         ExprTransform exprTrans = new ExprTransformNodeElement(nodeTransform, eltrans) ;
@@ -83,11 +83,12 @@ public class QueryTransformOps {
             if ( ev != ev2 ) {
                 if ( e != null )
                     throw new ARQException("Can't substitute " + v + " because it's used as an AS variable") ;
-                if ( ev2 instanceof NodeValue ) {
-                    // Convert to (substit value AS ?var)
+                if ( ev2.isConstant() || ev2.isVariable() ) {
+                    // Convert to (substitute value AS ?var)
                     map.put(v, ev2) ;
                     continue ;
-                } else
+                } 
+                else
                     throw new ARQException("Can't substitute " + v + " because it's not a simple value: " + ev2) ;
             }
             if ( e == null )