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 17:55:16 UTC
[2/2] 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/master
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 );
}