Repository: jena Updated Branches: refs/heads/master e032b4578 -> c4a6ce750
Fixes for JENA-1079 Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c4a6ce75 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c4a6ce75 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c4a6ce75 Branch: refs/heads/master Commit: c4a6ce750930e133ad1e7504e6f1b3af1d588d25 Parents: e032b45 Author: Claude Warren <[email protected]> Authored: Tue Dec 8 20:57:57 2015 +0000 Committer: Claude Warren <[email protected]> Committed: Tue Dec 8 20:57:57 2015 +0000 ---------------------------------------------------------------------- .../arq/querybuilder/AbstractQueryBuilder.java | 23 ++++++++++++++++++++ .../handlers/SelectHandlerTest.java | 3 +++ 2 files changed, 26 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/c4a6ce75/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java ---------------------------------------------------------------------- diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java index 050206e..a4f0ddb 100644 --- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java +++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java @@ -46,6 +46,7 @@ import org.apache.jena.shared.PrefixMapping; import org.apache.jena.sparql.ARQInternalErrorException ; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.expr.ExprVar ; +import org.apache.jena.sparql.syntax.ElementGroup; import org.apache.jena.sparql.util.NodeFactoryExtra ; /** @@ -76,6 +77,8 @@ public abstract class AbstractQueryBuilder<T extends AbstractQueryBuilder<T>> * any other object type.</li> * </ul> * + * Uses the internal query prefix mapping to resolve prefixes. + * * @param o * The object to convert. (may be null) * @return The Node value. @@ -84,6 +87,21 @@ public abstract class AbstractQueryBuilder<T extends AbstractQueryBuilder<T>> return makeNode( o, query.getPrefixMapping() ); } + /** + * Make a node from an object while using the associated prefix mapping. + * <ul> + * <li>Will return Node.ANY if object is null.</li> + * <li>Will return the enclosed Node from a FrontsNode</li> + * <li>Will return the object if it is a Node.</li> + * <li>Will call NodeFactoryExtra.parseNode() using the currently defined + * prefixes if the object is a String</li> + * <li>Will create a literal representation if the parseNode() fails or for + * any other object type.</li> + * </ul> + * @param o The object to convert (may be null). + * @param pMapping The prefix mapping to use for prefix resolution. + * @return The Node value. + */ public static Node makeNode(Object o, PrefixMapping pMapping) { if (o == null) { return Node.ANY; @@ -322,6 +340,11 @@ public abstract class AbstractQueryBuilder<T extends AbstractQueryBuilder<T>> handlerStack.push(wh); } + // make sure we have a query pattern before we start building. + if (q.getQueryPattern() == null) + { + q.setQueryPattern( new ElementGroup() ); + } while (!handlerStack.isEmpty()) { handlerStack.pop().build(); } http://git-wip-us.apache.org/repos/asf/jena/blob/c4a6ce75/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/handlers/SelectHandlerTest.java ---------------------------------------------------------------------- diff --git a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/handlers/SelectHandlerTest.java b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/handlers/SelectHandlerTest.java index 09cb9c8..d93848a 100644 --- a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/handlers/SelectHandlerTest.java +++ b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/handlers/SelectHandlerTest.java @@ -24,6 +24,7 @@ import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.core.VarExprList ; import org.apache.jena.sparql.expr.E_Random; import org.apache.jena.sparql.expr.Expr; +import org.apache.jena.sparql.syntax.ElementGroup; import org.junit.Before; import org.junit.Test; @@ -166,6 +167,8 @@ public class SelectHandlerTest extends AbstractHandlerTest { sh.setDistinct(true); handler.addAll(sh); + // make sure warning does not fire. + query.setQueryPattern( new ElementGroup() ); assertTrue(query.isDistinct()); assertFalse(query.isQueryResultStar()); assertEquals(1, query.getResultVars().size());
