You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by an...@apache.org on 2015/06/01 10:14:22 UTC

svn commit: r1682830 - /db/jdo/trunk/api/src/java/javax/jdo/Query.java

Author: andyj
Date: Mon Jun  1 08:14:22 2015
New Revision: 1682830

URL: http://svn.apache.org/r1682830
Log:
JDO-737 Apply patch attached to issue month and half ago.

Modified:
    db/jdo/trunk/api/src/java/javax/jdo/Query.java

Modified: db/jdo/trunk/api/src/java/javax/jdo/Query.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/Query.java?rev=1682830&r1=1682829&r2=1682830&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/Query.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/Query.java Mon Jun  1 08:14:22 2015
@@ -19,22 +19,20 @@
  * Query.java
  *
  */
-
 package javax.jdo;
+
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.Map;
 
 /** The <code>Query</code> interface allows applications to obtain persistent
- * instances, values, and aggregate data
- * from the data store.
+ * instances, values, and aggregate data from the data store.
  *
  * The {@link PersistenceManager} is the factory for <code>Query</code> 
  * instances.  There may be many <code>Query</code> instances associated with a 
  * <code>PersistenceManager</code>.  Multiple queries might be executed 
  * simultaneously by different threads, but the implementation might choose to 
- * execute them serially.  In either case, the implementation must be thread 
- * safe.
+ * execute them serially.  In either case, the implementation must be thread-safe.
  *
  * <P>There are three required elements in a <code>Query</code>: the class of 
  * the results, the candidate collection of instances, and the filter.
@@ -47,15 +45,12 @@ import java.util.Map;
  * <P>The query namespace is modeled after methods in Java:
  * <ul>
  * <li><code>setClass</code> corresponds to the class definition
- * <li><code>declareParameters</code> corresponds to formal parameters of a 
- * method
+ * <li><code>declareParameters</code> corresponds to formal parameters of a method
  * <li><code>declareVariables</code> corresponds to local variables of a method
- * <li><code>setFilter</code> and <code>setOrdering</code> correspond to the 
- * method body
+ * <li><code>setFilter</code> and <code>setOrdering</code> correspond to the method body
  * </ul>
- * <P>There are two namespaces in queries. Type names have their own
- * namespace that is separate from the namespace for fields, variables
- * and parameters.
+ * <P>There are two namespaces in queries. Type names have their own namespace 
+ * that is separate from the namespace for fields, variables and parameters.
  * <P>The method <code>setClass</code> introduces the name of the candidate 
  * class in the type namespace. The method <code>declareImports</code> 
  * introduces the names of the imported class or interface types in the type 
@@ -76,10 +71,8 @@ import java.util.Map;
  * not conflict with parameter names.
  * <P>The result of the query by default is a list of result class instances,
  * but might be specified via <code>setResult</code>. The class of the result
- * by default is the candidate class, but might be specified via 
- * <code>setResultClass</code>.
- * <P>A hidden field may be accessed using the 'this' qualifier:
- * <code>this.fieldName</code>.
+ * by default is the candidate class, but might be specified via <code>setResultClass</code>.
+ * <P>A hidden field may be accessed using the 'this' qualifier: <code>this.fieldName</code>.
  * <P>The <code>Query</code> interface provides methods which execute the query
  * based on the parameters given. They return a single instance or a 
  * <code>List</code> of result class instances which the
@@ -804,4 +797,52 @@ public interface Query extends AutoClose
      * @return This query
      */
     Query saveAsNamedQuery(String name);
+
+    /**
+     * Set the filter for the query.
+     * Shortcut for the {@link setFilter(String)} method
+     * @param filter the query filter.
+     * @return This query
+     */
+    Query filter(String filter);
+
+    /**
+     * Set the ordering specification for the result <code>Collection</code>.
+     * Shortcut for the {@link setOrdering(String)} method
+     * @param ordering the ordering specification.
+     * @return This query
+     */
+    Query orderBy(String ordering);
+
+    /**
+     * Set the grouping expressions, optionally including a "having" clause.
+     * Shortcut for the {@link setGrouping(String)} method
+     * @param group a comma-delimited list of expressions, optionally followed by the "having" keyword and a boolean expression
+     * @return This query
+     */
+    Query groupBy(String group);
+
+    /**
+     * Set the having expression.
+     * @param having A boolean expression for the having expression
+     * @return This query
+     */
+    Query having(String having);
+
+    /**
+     * Set the range of results to return.
+     * Shortcut for the {@link setRange(long, long)} method
+     * @param fromIncl 0-based inclusive start index
+     * @param toExcl 0-based exclusive end index, or {@link Long#MAX_VALUE} for no limit.
+     * @return This query
+     */
+    Query range(long fromIncl, long toExcl);
+
+    /**
+     * Set the range of results to return.
+     * Shortcut for the {@link setRange(String)} method
+     * @param fromInclToExcl comma-separated fromIncl and toExcl values
+     * @return This query
+     */
+    Query range(String fromInclToExcl);
 }