You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mp...@apache.org on 2006/12/13 01:26:48 UTC
svn commit: r486429 -
/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/InExpression.java
Author: mprudhom
Date: Tue Dec 12 16:26:47 2006
New Revision: 486429
URL: http://svn.apache.org/viewvc?view=rev&rev=486429
Log:
Wrap non-Collection arguments in Collections so that the query language can support having both varargs "in" clauses as well as clauses that take a Collection parameter.
Modified:
incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/InExpression.java
Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/InExpression.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/InExpression.java?view=diff&rev=486429&r1=486428&r2=486429
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/InExpression.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/InExpression.java Tue Dec 12 16:26:47 2006
@@ -17,6 +17,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
@@ -178,7 +179,14 @@
* Return the collection to test for containment with.
*/
protected Collection getCollection(ExpContext ctx, ExpState state) {
- return (Collection) _const.getValue(ctx, state);
+ Object val = _const.getValue(ctx, state);
+
+ // wrap non-Collection parameters in a Collections so the query
+ // lanuage can permit varargs "in" clauses
+ if (!(val instanceof Collection))
+ val = Collections.singleton(val);
+
+ return (Collection) val;
}
public void acceptVisit(ExpressionVisitor visitor) {