You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/04/20 09:45:44 UTC
svn commit: r1740063 - in /qpid/java/trunk:
broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/
common/src/main/java/org/apache/qpid/filter/
Author: kwall
Date: Wed Apr 20 07:45:44 2016
New Revision: 1740063
URL: http://svn.apache.org/viewvc?rev=1740063&view=rev
Log:
QPID-7206: [Java Broker] Query API - support enums on RHS of expression too
Modified:
qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java
qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java
qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java
Modified: qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java?rev=1740063&r1=1740062&r2=1740063&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectQueryTest.java Wed Apr 20 07:45:44 2016
@@ -47,6 +47,7 @@ public class ConfiguredObjectQueryTest e
private static final String NUMBER_ATTR = "numberAttr";
private static final String DATE_ATTR = "dateAttr";
private static final String ENUM_ATTR = "enumAttr";
+ private static final String ENUM2_ATTR = "enum2Attr";
enum Snakes
{
@@ -365,6 +366,7 @@ public class ConfiguredObjectQueryTest e
{{
put(ConfiguredObject.ID, objectUuid);
put(ENUM_ATTR, Snakes.PYTHON);
+ put(ENUM2_ATTR, Snakes.PYTHON);
}});
_objects.add(obj);
@@ -374,19 +376,29 @@ public class ConfiguredObjectQueryTest e
String.format("%s = '%s'", ENUM_ATTR, Snakes.PYTHON));
List<List<Object>> results = _query.getResults();
- assertEquals("Unexpected number of results", 1, results.size());
+ assertEquals("Unexpected number of results - enumAttr equality with enum constant", 1, results.size());
List<Object> row = _query.getResults().iterator().next();
assertEquals("Unexpected row", objectUuid, row.get(0));
_query = new ConfiguredObjectQuery(_objects,
String.format("%s", ConfiguredObject.ID),
+ String.format("'%s' = %s", Snakes.PYTHON, ENUM_ATTR));
+
+ results = _query.getResults();
+ assertEquals("Unexpected number of results - enum constant equality with enumAttr", 1, results.size());
+
+ row = _query.getResults().iterator().next();
+ assertEquals("Unexpected row", objectUuid, row.get(0));
+
+ _query = new ConfiguredObjectQuery(_objects,
+ String.format("%s", ConfiguredObject.ID),
String.format("%s in ('%s', '%s', '%s')",
ENUM_ATTR,
"toad", Snakes.VIPER, Snakes.PYTHON));
results = _query.getResults();
- assertEquals("Unexpected number of results", 1, results.size());
+ assertEquals("Unexpected number of results - emumAttr with set", 1, results.size());
row = _query.getResults().iterator().next();
assertEquals("Unexpected row", objectUuid, row.get(0));
@@ -396,7 +408,14 @@ public class ConfiguredObjectQueryTest e
String.format("%s <> '%s'", ENUM_ATTR, "toad"));
results = _query.getResults();
- assertEquals("Unexpected number of results", 1, results.size());
+ assertEquals("Unexpected number of results - enumAttr not equal enum constant", 1, results.size());
+
+ _query = new ConfiguredObjectQuery(_objects,
+ String.format("%s", ConfiguredObject.ID),
+ String.format("%s = %s", ENUM_ATTR, ENUM2_ATTR));
+
+ results = _query.getResults();
+ assertEquals("Unexpected number of results - two attributes of type enum", 1, results.size());
}
Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java?rev=1740063&r1=1740062&r2=1740063&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/ComparisonExpression.java Wed Apr 20 07:45:44 2016
@@ -540,6 +540,17 @@ public abstract class ComparisonExpressi
return Boolean.FALSE;
}
}
+ else if (lv instanceof String)
+ {
+ if (rv instanceof Enum)
+ {
+ lv = Enum.valueOf(rc, (String) lv);
+ }
+ else
+ {
+ return Boolean.FALSE;
+ }
+ }
else
{
return Boolean.FALSE;
Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java?rev=1740063&r1=1740062&r2=1740063&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/filter/UnaryExpression.java Wed Apr 20 07:45:44 2016
@@ -114,7 +114,7 @@ public abstract class UnaryExpression<T>
}
else if (clazz == BigDecimal.class)
{
- // We ussually get a big deciamal when we have Long.MIN_VALUE constant in the
+ // We usually get a big decimal when we have Long.MIN_VALUE constant in the
// Selector. Long.MIN_VALUE is too big to store in a Long as a positive so we store it
// as a Big decimal. But it gets Negated right away.. to here we try to covert it back
// to a Long.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org