You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2015/05/19 21:14:54 UTC

[09/11] jena git commit: Changes to remove use of reflection to modify Query objects as part of JENA-948

Changes to remove use of reflection to modify Query objects as part of JENA-948


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

Branch: refs/heads/add-contract-tests
Commit: 8d5f1cb2737d95867526f6d8b9a10c2ab1c65e1d
Parents: 716640b
Author: Claude Warren <cl...@apache.org>
Authored: Tue May 19 16:54:17 2015 +0100
Committer: Claude Warren <cl...@apache.org>
Committed: Tue May 19 16:54:17 2015 +0100

----------------------------------------------------------------------
 .../querybuilder/handlers/DatasetHandler.java   | 41 +++++++-------------
 .../querybuilder/handlers/SelectHandler.java    | 17 +++-----
 .../handlers/SolutionModifierHandler.java       | 12 +-----
 3 files changed, 20 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8d5f1cb2/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/DatasetHandler.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/DatasetHandler.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/DatasetHandler.java
index bb612d6..90869f3 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/DatasetHandler.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/DatasetHandler.java
@@ -104,41 +104,28 @@ public class DatasetHandler implements Handler {
 	 * @param values The values to set.
 	 * @param fieldName The field name in Query that contain a list of strings.
 	 */
-	private void setVars(Map<Var, Node> values, String fieldName) {
-		if (values.isEmpty()) {
+	private void setVars(Map<Var, Node> values, List<String> lst) {
+		if (values.isEmpty() || lst == null || lst.isEmpty() ) {
 			return;
 		}
-		try {
-			Field f = Query.class.getDeclaredField(fieldName);
-			f.setAccessible(true);
-			@SuppressWarnings("unchecked")
-			List<String> orig = (List<String>) f.get(query);
-			List<String> lst = null;
-			if (orig != null) {
-				lst = new ArrayList<String>();
-				for (String s : orig) {
-					Node n = null;
-					if (s.startsWith("?")) {
-						Var v = Var.alloc(s.substring(1));
-						n = values.get(v);
-					}
-					lst.add(n == null ? s : n.toString());
-				}
-				f.set(query, lst);
+		
+		for (int i =0;i<lst.size();i++)
+		{
+			String s = lst.get(i);
+			Node n = null;
+			if (s.startsWith("?")) {
+				Var v = Var.alloc(s.substring(1));
+				n = values.get(v);
+				lst.set( i , n == null ? s : n.toString());
 			}
-		} catch (NoSuchFieldException e) {
-			throw new IllegalStateException(e.getMessage(), e);
-		} catch (SecurityException e) {
-			throw new IllegalStateException(e.getMessage(), e);
-		} catch (IllegalAccessException e) {
-			throw new IllegalStateException(e.getMessage(), e);
 		}
+		
 	}
 
 	@Override
 	public void setVars(Map<Var, Node> values) {
-		setVars(values, "namedGraphURIs");
-		setVars(values, "graphURIs");
+		setVars(values, query.getNamedGraphURIs());
+		setVars(values, query.getGraphURIs());
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/jena/blob/8d5f1cb2/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SelectHandler.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SelectHandler.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SelectHandler.java
index 3edd842..518a699 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SelectHandler.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SelectHandler.java
@@ -131,18 +131,11 @@ public class SelectHandler implements Handler {
 		setReduced(selectHandler.query.isReduced());
 		setDistinct(selectHandler.query.isDistinct());
 		query.setQueryResultStar(selectHandler.query.isQueryResultStar());
-
-		try {
-			Field f = Query.class.getDeclaredField("projectVars");
-			f.setAccessible(true);
-			VarExprList projectVars = (VarExprList) f.get(selectHandler.query);
-			f.set(query, new VarExprList(projectVars));
-		} catch (NoSuchFieldException e) {
-			throw new IllegalStateException(e);
-		} catch (SecurityException e) {
-			throw new IllegalStateException(e);
-		} catch (IllegalAccessException e) {
-			throw new IllegalStateException(e);
+		VarExprList shProjectVars = selectHandler.query.getProject();
+		VarExprList qProjectVars = query.getProject();
+		for (Var var : shProjectVars.getVars())
+		{
+			qProjectVars.add( var, shProjectVars.getExpr(var));
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/jena/blob/8d5f1cb2/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SolutionModifierHandler.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SolutionModifierHandler.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SolutionModifierHandler.java
index 5b98279..261a33c 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SolutionModifierHandler.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/SolutionModifierHandler.java
@@ -248,17 +248,7 @@ public class SolutionModifierHandler implements Handler {
 			}
 		}
 
-		try {
-			Field f = Query.class.getDeclaredField("groupVars");
-			f.setAccessible(true);
-			f.set(query, groupBy);
-		} catch (NoSuchFieldException e) {
-			throw new IllegalStateException(e);
-		} catch (SecurityException e) {
-			throw new IllegalStateException(e);
-		} catch (IllegalAccessException e) {
-			throw new IllegalStateException(e);
-		}
+		query.setGroupBy( groupBy );
 
 	}