Repository: jena
Updated Branches:
  refs/heads/master 609b56971 -> 9626099fc


Updated documentation.


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

Branch: refs/heads/master
Commit: 9626099fc7bf4aa156e89b2a888207e35974ca27
Parents: 609b569
Author: Claude Warren <[email protected]>
Authored: Sun Mar 6 16:38:54 2016 +0000
Committer: Claude Warren <[email protected]>
Committed: Sun Mar 6 16:38:54 2016 +0000

----------------------------------------------------------------------
 .../arq/querybuilder/AbstractQueryBuilder.java  |  12 ++-
 .../jena/arq/querybuilder/AskBuilder.java       |   1 -
 .../jena/arq/querybuilder/ConstructBuilder.java |   2 +-
 .../jena/arq/querybuilder/SelectBuilder.java    |   3 +-
 .../arq/querybuilder/clauses/SelectClause.java  |   1 -
 .../handlers/AggregationHandler.java            |  40 ++++---
 .../arq/querybuilder/handlers/HandlerBlock.java | 106 +++++++++++++++----
 .../querybuilder/handlers/SelectHandler.java    |  21 +---
 .../arq/querybuilder/handlers/WhereHandler.java |  14 +--
 9 files changed, 134 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/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 d8d3044..0da573f 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
@@ -164,9 +164,12 @@ public abstract class AbstractQueryBuilder<T extends 
AbstractQueryBuilder<T>>
                values = new HashMap<Var, Node>();
        }
        
+       /**
+        * Get the HandlerBlock for this query builder.
+        * @return The associated handler block.
+        */
        public abstract HandlerBlock getHandlerBlock();
        
-       
        @Override
        public final PrologHandler getPrologHandler() {
                return getHandlerBlock().getPrologHandler();
@@ -274,6 +277,8 @@ public abstract class AbstractQueryBuilder<T extends 
AbstractQueryBuilder<T>>
         */
        public final Query build() {
                Query q = new Query();
+               
+               // set the query type
                switch (query.getQueryType())
                {
                case Query.QueryTypeAsk:
@@ -292,8 +297,11 @@ public abstract class AbstractQueryBuilder<T extends 
AbstractQueryBuilder<T>>
                        throw new IllegalStateException( "Internal query is not 
a known type: "+q.getQueryType());                      
                }
                
+               // use the HandlerBlock implementation to copy the data.
                HandlerBlock handlerBlock = new HandlerBlock(q);
                handlerBlock.addAll( getHandlerBlock() );
+               
+               // set the vars
                handlerBlock.setVars(values);
                
                //  make sure we have a query pattern before we start building.
@@ -320,6 +328,7 @@ public abstract class AbstractQueryBuilder<T extends 
AbstractQueryBuilder<T>>
        public static Query clone(Query q2) {
                Query retval = new Query();
                
+               // set the query type
            if (q2.isSelectType())
            {
                retval.setQuerySelectType();
@@ -333,6 +342,7 @@ public abstract class AbstractQueryBuilder<T extends 
AbstractQueryBuilder<T>>
                retval.setQueryConstructType();
            }
            
+           // use the handler block to clone the data
            HandlerBlock hb = new HandlerBlock( retval );
            HandlerBlock hb2 = new HandlerBlock( q2 );
            hb.addAll(hb2);

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AskBuilder.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AskBuilder.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AskBuilder.java
index 064a995..9ae7fa2 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AskBuilder.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AskBuilder.java
@@ -24,7 +24,6 @@ import 
org.apache.jena.arq.querybuilder.clauses.SolutionModifierClause;
 import org.apache.jena.arq.querybuilder.clauses.WhereClause;
 import org.apache.jena.arq.querybuilder.handlers.DatasetHandler;
 import org.apache.jena.arq.querybuilder.handlers.HandlerBlock;
-import org.apache.jena.arq.querybuilder.handlers.PrologHandler;
 import org.apache.jena.arq.querybuilder.handlers.SolutionModifierHandler;
 import org.apache.jena.arq.querybuilder.handlers.WhereHandler;
 import org.apache.jena.graph.FrontsTriple ;

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ConstructBuilder.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ConstructBuilder.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ConstructBuilder.java
index 51b861b..64324a4 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ConstructBuilder.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ConstructBuilder.java
@@ -26,7 +26,6 @@ import org.apache.jena.arq.querybuilder.clauses.WhereClause;
 import org.apache.jena.arq.querybuilder.handlers.ConstructHandler;
 import org.apache.jena.arq.querybuilder.handlers.DatasetHandler;
 import org.apache.jena.arq.querybuilder.handlers.HandlerBlock;
-import org.apache.jena.arq.querybuilder.handlers.PrologHandler;
 import org.apache.jena.arq.querybuilder.handlers.SolutionModifierHandler;
 import org.apache.jena.arq.querybuilder.handlers.WhereHandler;
 import org.apache.jena.graph.FrontsTriple ;
@@ -46,6 +45,7 @@ public class ConstructBuilder extends 
AbstractQueryBuilder<ConstructBuilder>
                ConstructClause<ConstructBuilder> {
 
        private final HandlerBlock handlerBlock;
+       
        /**
         * Constructor
         */

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/SelectBuilder.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/SelectBuilder.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/SelectBuilder.java
index 1c5d3ee..03796e9 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/SelectBuilder.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/SelectBuilder.java
@@ -26,7 +26,6 @@ import 
org.apache.jena.arq.querybuilder.clauses.SolutionModifierClause;
 import org.apache.jena.arq.querybuilder.clauses.WhereClause;
 import org.apache.jena.arq.querybuilder.handlers.DatasetHandler;
 import org.apache.jena.arq.querybuilder.handlers.HandlerBlock;
-import org.apache.jena.arq.querybuilder.handlers.PrologHandler;
 import org.apache.jena.arq.querybuilder.handlers.SelectHandler;
 import org.apache.jena.arq.querybuilder.handlers.SolutionModifierHandler;
 import org.apache.jena.arq.querybuilder.handlers.WhereHandler;
@@ -46,8 +45,8 @@ public class SelectBuilder extends 
AbstractQueryBuilder<SelectBuilder>
                implements DatasetClause<SelectBuilder>, 
WhereClause<SelectBuilder>,
                SolutionModifierClause<SelectBuilder>, 
SelectClause<SelectBuilder> {
 
-       // the handlers.
        private final HandlerBlock handlerBlock;
+       
        /**
         * Constructor.
         */

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/clauses/SelectClause.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/clauses/SelectClause.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/clauses/SelectClause.java
index 261db7b..dc83218 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/clauses/SelectClause.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/clauses/SelectClause.java
@@ -22,7 +22,6 @@ import java.util.List;
 import org.apache.jena.arq.querybuilder.AbstractQueryBuilder;
 import org.apache.jena.arq.querybuilder.handlers.SelectHandler;
 import org.apache.jena.sparql.core.Var;
-import org.apache.jena.sparql.core.VarExprList;
 import org.apache.jena.sparql.expr.Expr;
 import org.apache.jena.sparql.lang.sparql_11.ParseException;
 

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/AggregationHandler.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/AggregationHandler.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/AggregationHandler.java
index ec03b2f..f999ca8 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/AggregationHandler.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/AggregationHandler.java
@@ -17,27 +17,40 @@ package org.apache.jena.arq.querybuilder.handlers;
  * limitations under the License.
  */
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.jena.graph.Node;
 import org.apache.jena.query.Query;
 import org.apache.jena.sparql.core.Var;
-import org.apache.jena.sparql.core.VarExprList;
 import org.apache.jena.sparql.expr.Expr;
 import org.apache.jena.sparql.expr.ExprAggregator;
-import org.apache.jena.sparql.expr.aggregate.Aggregator;
 
+/**
+ * Class to handle manipulation the aggregation variables in the query.
+ *
+ */
 public class AggregationHandler implements Handler {
+       // the query
        private final Query query;
+       
+       // a map of variables to aggregators
        private final Map<Var,ExprAggregator> aggMap;
 
+       /**
+        * Constructor.
+        * @param query the query to handle.
+        */
        public AggregationHandler( Query query )
        {
                this.query = query;
                aggMap = new HashMap<Var,ExprAggregator>();
        }
        
+       /**
+        * Add all the aggregations from the other handler.
+        * @param handler The other handler.
+        * @return This handler for chaining.
+        */
        public AggregationHandler addAll(AggregationHandler handler)
        {
                for (ExprAggregator agg : handler.query.getAggregators())
@@ -51,20 +64,15 @@ public class AggregationHandler implements Handler {
                return this;
        }
                
+       /**
+        * Get the query we are executing against.
+        * @return the query.
+        */
        public Query getQuery()
        {
                return query;
        }
        
-       public Map<Var, ExprAggregator> getVarMap() {
-               Map<Var,ExprAggregator> retval = new 
HashMap<Var,ExprAggregator>();
-               for (ExprAggregator agg : query.getAggregators())
-               {
-                       retval.put( agg.getVar(), agg);
-               }
-               return retval;
-       }
-       
        @Override
        public void setVars(Map<Var, Node> values) {
                // nothing to do
@@ -82,6 +90,14 @@ public class AggregationHandler implements Handler {
                }
        }
        
+       /**
+        * Add and expression aggregator and variable to the mapping.
+        * 
+        * if the expr parameter is not an instance of ExprAggregator then no 
action is taken.
+        * 
+        * @param expr The expression to add.
+        * @param var The variable that it is bound to.
+        */
        public void add(Expr expr, Var var) {
                if (expr instanceof ExprAggregator)
                {

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/HandlerBlock.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/HandlerBlock.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/HandlerBlock.java
index 8a47c57..7d16dbc 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/HandlerBlock.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/HandlerBlock.java
@@ -17,18 +17,14 @@ package org.apache.jena.arq.querybuilder.handlers;
  * limitations under the License.
  */
 import java.util.Map;
-import java.util.Stack;
-
-import org.apache.jena.arq.querybuilder.AbstractQueryBuilder;
-import org.apache.jena.arq.querybuilder.clauses.ConstructClause;
-import org.apache.jena.arq.querybuilder.clauses.DatasetClause;
-import org.apache.jena.arq.querybuilder.clauses.SelectClause;
-import org.apache.jena.arq.querybuilder.clauses.SolutionModifierClause;
-import org.apache.jena.arq.querybuilder.clauses.WhereClause;
 import org.apache.jena.graph.Node;
 import org.apache.jena.query.Query;
 import org.apache.jena.sparql.core.Var;
 
+/**
+ * A class to handle all the handlers of a query builder and keep them in sync 
as needed.
+ *
+ */
 public class HandlerBlock {
        private final AggregationHandler aggHandler;
        private final ConstructHandler constructHandler;
@@ -38,17 +34,21 @@ public class HandlerBlock {
        private final SolutionModifierHandler modifierHandler;
        private final WhereHandler whereHandler;
 
+       /**
+        * Constructor.
+        * @param query The query we are working with.
+        */
        public HandlerBlock(Query query) {
                prologHandler = new PrologHandler(query);
                aggHandler = new AggregationHandler(query);
                whereHandler = new WhereHandler(query);
                datasetHandler = new DatasetHandler(query);
                modifierHandler = new SolutionModifierHandler(query);
+               /* selecthandler and constructhandler may be null so 
processthem accordingly */
                SelectHandler sTemp = null;
                ConstructHandler cTemp = null;
                if (query.isSelectType()) {
                        sTemp = new SelectHandler(aggHandler);
-
                } else if (query.isAskType()) {
                        // nochange
                } else if (query.isDescribeType()) {
@@ -60,92 +60,152 @@ public class HandlerBlock {
                constructHandler = cTemp;
        }
 
+       /**
+        * Get the aggregation handler.
+        * @return the aggregation handler.
+        */
        public AggregationHandler getAggregationHandler() {
                return aggHandler;
        }
 
+       /**
+        * Get the construct handler.
+        * @return the construct handler or null.
+        */
        public ConstructHandler getConstructHandler() {
                return constructHandler;
        }
 
+       /**
+        * Get the dataset handler.
+        * @return the dataset handler.
+        */
        public DatasetHandler getDatasetHandler() {
                return datasetHandler;
        }
 
+       /**
+        * Get the prolog handler.
+        * @return the prolog handler.
+        */
        public PrologHandler getPrologHandler() {
                return prologHandler;
        }
 
+       /**
+        * Get the select handler.
+        * @return the select handler or null.
+        */
        public SelectHandler getSelectHandler() {
                return selectHandler;
        }
 
+       /**
+        * Get the solution modifier handler.
+        * @return the solution modifier handler.
+        */
        public SolutionModifierHandler getModifierHandler() {
                return modifierHandler;
        }
 
+       /**
+        * Get the where handler.
+        * @return the where handler.
+        */
        public WhereHandler getWhereHandler() {
                return whereHandler;
        }
 
+       /**
+        * Add the prolog handler contents to this prolog handler.
+        * @param handler The prolog handler to add to this one.
+        */
        public void addAll(PrologHandler handler) {
                prologHandler.addAll(handler);
        }
 
+       /**
+        * Add the aggregation handler contents to this prolog handler.
+        * @param handler The aggregation handler to add to this one.
+        */
        public void addAll(AggregationHandler handler) {
                aggHandler.addAll(handler);
        }
 
+       /**
+        * Add the construct handler contents to this prolog handler.
+        * If this construct handler is null or the handler argument is null 
this method does nothing.
+        * @param handler The construct handler to add to this one.
+        */
        public void addAll(ConstructHandler handler) {
-               if (constructHandler != null) {
+               if (constructHandler != null && handler!=null) {
                        constructHandler.addAll(handler);
                }
        }
 
+       /**
+        * Add the dataset handler contents to this prolog handler.
+        * @param handler The dataset handler to add to this one.
+        */
        public void addAll(DatasetHandler handler) {
                datasetHandler.addAll(handler);
        }
 
+       /**
+        * Add the solution modifier handler contents to this prolog handler.
+        * @param handler The solution modifier handler to add to this one.
+        */
        public void addAll(SolutionModifierHandler handler) {
                modifierHandler.addAll(handler);
        }
 
+       /**
+        * Add the select handler contents to this prolog handler.
+        * If this select handler is null or the handler argument is null this 
method does nothing.
+        * @param handler The construct handler to add to this one.
+        */
        public void addAll(SelectHandler handler) {
-               if (selectHandler != null) {
+               if (selectHandler != null && handler!=null) {
                        selectHandler.addAll(handler);
                }
        }
 
+       /**
+        * Add the where handler contents to this prolog handler.
+        * @param handler The where handler to add to this one.
+        */
        public void addAll(WhereHandler handler) {
                whereHandler.addAll(handler);
        }
        
+       /**
+        * Add all of the handlers in the handler block to this one.
+        * Any handler that is null or is null in the handler argument are 
properly skipped. 
+        * @param handler The handler block to add to this one.
+        */
        public void addAll(HandlerBlock handler)
        {
                addAll(handler.aggHandler);
-               if (handler.constructHandler != null)
-               {
-                       addAll(handler.constructHandler);
-               }
-               if (handler.selectHandler != null)
-               {
-                       addAll(handler.selectHandler);
-               }
+               addAll(handler.constructHandler);
+               addAll(handler.selectHandler);
                addAll( handler.datasetHandler);
                addAll( handler.modifierHandler);
                addAll( handler.prologHandler);
                addAll( handler.whereHandler);
        }
 
+       /**
+        * Set the variables in all the enclosed handlers in the proper order.
+        * @param values The map of values to set.
+        */
        public void setVars(Map<Var, Node> values) {
                aggHandler.setVars(values);
 
                if (constructHandler != null) {
                        constructHandler.setVars(values);
                }
-
+               
                datasetHandler.setVars(values);
-
                prologHandler.setVars(values);
 
                if (selectHandler != null) {
@@ -154,9 +214,11 @@ public class HandlerBlock {
 
                modifierHandler.setVars(values);
                whereHandler.setVars(values);
-
        }
        
+       /**
+        * Build all the the enclosed handlers in the proper order.
+        */
        public void build() {
                prologHandler.build();
                

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/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 f9f653f..8875cd3 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
@@ -20,15 +20,12 @@ package org.apache.jena.arq.querybuilder.handlers;
 import java.io.StringReader;
 import java.util.List;
 import java.util.Map;
-import java.util.HashMap;
-
 import org.apache.jena.graph.Node;
 import org.apache.jena.query.Query;
 import org.apache.jena.query.QueryParseException;
 import org.apache.jena.sparql.core.Var;
 import org.apache.jena.sparql.core.VarExprList;
 import org.apache.jena.sparql.expr.Expr;
-import org.apache.jena.sparql.expr.ExprAggregator;
 import org.apache.jena.sparql.lang.arq.ARQParser;
 import org.apache.jena.sparql.lang.arq.ParseException;
 import org.apache.jena.sparql.lang.arq.TokenMgrError;
@@ -46,8 +43,7 @@ public class SelectHandler implements Handler {
        /**
         * Constructor.
         * 
-        * @param query
-        *            The query to manage.
+        * @param aggHandler The aggregate handler that wraps the query we want 
to handle.
         */
        public SelectHandler(AggregationHandler aggHandler) {
                this.query = aggHandler.getQuery();
@@ -149,7 +145,7 @@ public class SelectHandler implements Handler {
         * Add an Expression as variable to the select.
         * 
         * @param expr
-        *            The expresson to add.
+        *            The expression to add.
         * @param var
         *            The variable to add.
         */
@@ -177,7 +173,7 @@ public class SelectHandler implements Handler {
        /**
         * Return the projected var expression list.
         * 
-        * @return The proejct var expression list.
+        * @return The projected var expression list.
         */
        public VarExprList getProject() {
                return query.getProject();
@@ -190,7 +186,6 @@ public class SelectHandler implements Handler {
         *            The select handler to copy the variables from.
         */
        public void addAll(SelectHandler selectHandler) {
-
                setReduced(selectHandler.query.isReduced());
                setDistinct(selectHandler.query.isDistinct());
                
query.setQueryResultStar(selectHandler.query.isQueryResultStar());
@@ -216,14 +211,8 @@ public class SelectHandler implements Handler {
                        query.setQueryResultStar(true);
                }
                
-               VarExprList vel = query.getProject();
-               Map<Var, Expr> exprMap = vel.getExprs();
-
-               for (Map.Entry<Var, ExprAggregator> entry : 
aggHandler.getVarMap().entrySet()) {
-                       if (exprMap.containsKey(entry.getKey())) {
-                               exprMap.put(entry.getKey(), entry.getValue());
-                       }
-               }
+               aggHandler.build();
+               
                // handle the SELECT * case
                query.getProjectVars();
        }

http://git-wip-us.apache.org/repos/asf/jena/blob/9626099f/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
----------------------------------------------------------------------
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
index 011a8a3..83cd469 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
@@ -20,24 +20,14 @@ package org.apache.jena.arq.querybuilder.handlers;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.Stack;
-
 import org.apache.jena.arq.querybuilder.AbstractQueryBuilder;
 import org.apache.jena.arq.querybuilder.SelectBuilder;
-import org.apache.jena.arq.querybuilder.clauses.ConstructClause;
-import org.apache.jena.arq.querybuilder.clauses.DatasetClause;
-import org.apache.jena.arq.querybuilder.clauses.SelectClause;
-import org.apache.jena.arq.querybuilder.clauses.SolutionModifierClause;
-import org.apache.jena.arq.querybuilder.clauses.WhereClause;
 import org.apache.jena.arq.querybuilder.rewriters.ElementRewriter;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.graph.Triple;
 import org.apache.jena.query.Query;
-import org.apache.jena.shared.PrefixMapping;
-import org.apache.jena.shared.impl.PrefixMappingImpl;
 import org.apache.jena.sparql.core.Var;
-import org.apache.jena.sparql.core.VarExprList;
 import org.apache.jena.sparql.expr.Expr;
 import org.apache.jena.sparql.lang.sparql_11.ParseException;
 import org.apache.jena.sparql.syntax.*;
@@ -227,6 +217,10 @@ public class WhereHandler implements Handler {
                getClause().addElement(opt);
        }
 
+       /**
+        * Add the contents of a where handler as an optional statement.
+        * @param whereHandler The where handler to use as the optional 
statement.
+        */
        public void addOptional(WhereHandler whereHandler) {
                getClause().addElement(new 
ElementOptional(whereHandler.getClause()));
        }

Reply via email to