You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by mb...@apache.org on 2019/02/17 21:50:56 UTC

[db-jdo] 01/02: JDO-777: Adding overloaded methods to JDOQLTypedQuery: numericParameter, collectionParameter, mapParameter, and listParameter

This is an automated email from the ASF dual-hosted git repository.

mbo pushed a commit to branch JDO-777
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit 371fbdd7a77a2da8266f809b301c34992e94e77d
Author: Michael Bouschen <mb...@apache.org>
AuthorDate: Sun Feb 17 22:48:40 2019 +0100

    JDO-777: Adding overloaded methods to JDOQLTypedQuery: numericParameter, collectionParameter, mapParameter, and listParameter
---
 api/src/main/java/javax/jdo/JDOQLTypedQuery.java | 47 ++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/api/src/main/java/javax/jdo/JDOQLTypedQuery.java b/api/src/main/java/javax/jdo/JDOQLTypedQuery.java
index 95b8446..12aaec8 100644
--- a/api/src/main/java/javax/jdo/JDOQLTypedQuery.java
+++ b/api/src/main/java/javax/jdo/JDOQLTypedQuery.java
@@ -90,6 +90,17 @@ public interface JDOQLTypedQuery<T> extends Serializable, Closeable {
     NumericExpression<?> numericParameter(String name);
 
     /**
+     * Method to return a numeric parameter for the query.
+     * @param name Name of the parameter
+     * @param type Type of the numeric parameter
+     * @param <N> Type for the numeric parameter
+     * @return NumericExpression for the parameter
+     */
+    default <N> NumericExpression<N> numericParameter(String name, Class<N> type) {
+        return (NumericExpression<N>)numericParameter(name);
+    }
+
+    /**
      * Method to return a date parameter for the query.
      * @param name Name of the parameter
      * @return Expression for the parameter
@@ -118,6 +129,18 @@ public interface JDOQLTypedQuery<T> extends Serializable, Closeable {
     CollectionExpression<?, ?> collectionParameter(String name);
 
     /**
+     * Method to return a collection parameter for the query.
+     *
+     * @param name Name of the parameter
+     * @param elementType Element type of the collection parameter
+     * @param <E> Element type for the collection parameter
+     * @return Expression for the parameter
+     */
+    default <E> CollectionExpression<Collection<E>, E> collectionParameter(String name, Class<E> elementType) {
+        return (CollectionExpression<Collection<E>, E>)collectionParameter(name);
+    }
+
+    /**
      * Method to return a map parameter for the query.
      * @param name Name of the parameter
      * @return Expression for the parameter
@@ -125,6 +148,19 @@ public interface JDOQLTypedQuery<T> extends Serializable, Closeable {
     MapExpression<?, ?, ?> mapParameter(String name);
 
     /**
+     * Method to return a map parameter for the query.
+     * @param name Name of the parameter
+     * @param keyType Key type of the map parameter
+     * @param valueType Value type of the map parameter
+     * @param <K> Key type for the map parameter
+     * @param <V> Value type for the map parameter
+     * @return Expression for the parameter
+     */
+    default <K,V> MapExpression<Map<K,V>, K, V> mapParameter(String name, Class<K> keyType, Class<V> valueType) {
+        return (MapExpression<Map<K,V>, K, V>)mapParameter(name);
+    }
+
+    /**
      * Method to return a list parameter for the query.
      * @param name Name of the parameter
      * @return Expression for the parameter
@@ -132,6 +168,17 @@ public interface JDOQLTypedQuery<T> extends Serializable, Closeable {
     ListExpression<?, ?> listParameter(String name);
 
     /**
+     * Method to return a list parameter for the query.
+     * @param name Name of the parameter
+     * @param elementType Element type of the list parameter
+     * @param <E> Element type for the list parameter
+     * @return
+     */
+    default <E> ListExpression<List<E>, E> listParameter(String name, Class<E> elementType) {
+        return (ListExpression<List<E>, E>)listParameter(name);
+    }
+
+    /**
      * Method to return a variable for this query.
      * Cast the returned variable to the right type to be able to call methods on it.
      * @param name Name of the variable