Author: davsclaus
Date: Mon Feb 16 05:09:26 2009
New Revision: 744801
URL: http://svn.apache.org/viewvc?rev=744801&view=rev
Log:
CAMEL-1338: Polished code for simple langauge operators
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java
camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleOperatorTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java?rev=744801&r1=744800&r2=744801&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java
Mon Feb 16 05:09:26 2009
@@ -38,7 +38,7 @@
*/
public abstract class SimpleLanguageSupport implements Language {
- protected static final Pattern PATTERN =
Pattern.compile("^\\$\\{(.+)\\}\\s+(==|>|>=|<|<=|!=|is)\\s+(.+)$");
+ protected static final Pattern PATTERN =
Pattern.compile("^\\$\\{(.+)\\}\\s+(==|>|>=|<|<=|!=)\\s+(.+)$");
protected final Log log = LogFactory.getLog(getClass());
public Predicate createPredicate(String expression) {
@@ -80,6 +80,10 @@
} else {
// text can either be a constant enclosed by ' ' or another
expression using ${ } placeholders
String constant = ObjectHelper.between(text, "'", "'");
+ if (constant == null) {
+ // if no ' ' around then fallback to the text itself
+ constant = text;
+ }
String simple = ObjectHelper.between(text, "${", "}");
Expression exp = simple != null ? createSimpleExpression(simple) :
createConstantExpression(constant);
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleOperatorTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleOperatorTest.java?rev=744801&r1=744800&r2=744801&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleOperatorTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleOperatorTest.java
Mon Feb 16 05:09:26 2009
@@ -35,70 +35,94 @@
public void testEqualOperator() throws Exception {
// string to string comparison
assertExpression("${in.header.foo} == 'abc'", true);
+ assertExpression("${in.header.foo} == abc", true);
assertExpression("${in.header.foo} == 'def'", false);
+ assertExpression("${in.header.foo} == def", false);
assertExpression("${in.header.foo} == '1'", false);
// integer to string comparioson
assertExpression("${in.header.bar} == '123'", true);
+ assertExpression("${in.header.bar} == 123", true);
assertExpression("${in.header.bar} == '444'", false);
+ assertExpression("${in.header.bar} == 444", false);
assertExpression("${in.header.bar} == '1'", false);
}
public void testNotEqualOperator() throws Exception {
// string to string comparison
assertExpression("${in.header.foo} != 'abc'", false);
+ assertExpression("${in.header.foo} != abc", false);
assertExpression("${in.header.foo} != 'def'", true);
+ assertExpression("${in.header.foo} != def", true);
assertExpression("${in.header.foo} != '1'", true);
// integer to string comparioson
assertExpression("${in.header.bar} != '123'", false);
+ assertExpression("${in.header.bar} != 123", false);
assertExpression("${in.header.bar} != '444'", true);
+ assertExpression("${in.header.bar} != 444", true);
assertExpression("${in.header.bar} != '1'", true);
}
public void testGreatherThanOperator() throws Exception {
// string to string comparison
assertExpression("${in.header.foo} > 'aaa'", true);
+ assertExpression("${in.header.foo} > aaa", true);
assertExpression("${in.header.foo} > 'def'", false);
+ assertExpression("${in.header.foo} > def", false);
// integer to string comparioson
assertExpression("${in.header.bar} > '100'", true);
+ assertExpression("${in.header.bar} > 100", true);
assertExpression("${in.header.bar} > '123'", false);
+ assertExpression("${in.header.bar} > 123", false);
assertExpression("${in.header.bar} > '200'", false);
}
public void testGreatherThanOrEqualOperator() throws Exception {
// string to string comparison
assertExpression("${in.header.foo} >= 'aaa'", true);
+ assertExpression("${in.header.foo} >= aaa", true);
assertExpression("${in.header.foo} >= 'abc'", true);
+ assertExpression("${in.header.foo} >= abc", true);
assertExpression("${in.header.foo} >= 'def'", false);
// integer to string comparioson
assertExpression("${in.header.bar} >= '100'", true);
+ assertExpression("${in.header.bar} >= 100", true);
assertExpression("${in.header.bar} >= '123'", true);
+ assertExpression("${in.header.bar} >= 123", true);
assertExpression("${in.header.bar} >= '200'", false);
}
public void testLessThanOperator() throws Exception {
// string to string comparison
assertExpression("${in.header.foo} < 'aaa'", false);
+ assertExpression("${in.header.foo} < aaa", false);
assertExpression("${in.header.foo} < 'def'", true);
+ assertExpression("${in.header.foo} < def", true);
// integer to string comparioson
assertExpression("${in.header.bar} < '100'", false);
+ assertExpression("${in.header.bar} < 100", false);
assertExpression("${in.header.bar} < '123'", false);
+ assertExpression("${in.header.bar} < 123", false);
assertExpression("${in.header.bar} < '200'", true);
}
public void testLessThanOrEqualOperator() throws Exception {
// string to string comparison
assertExpression("${in.header.foo} <= 'aaa'", false);
+ assertExpression("${in.header.foo} <= aaa", false);
assertExpression("${in.header.foo} <= 'abc'", true);
+ assertExpression("${in.header.foo} <= abc", true);
assertExpression("${in.header.foo} <= 'def'", true);
// integer to string comparioson
assertExpression("${in.header.bar} <= '100'", false);
+ assertExpression("${in.header.bar} <= 100", false);
assertExpression("${in.header.bar} <= '123'", true);
+ assertExpression("${in.header.bar} <= 123", true);
assertExpression("${in.header.bar} <= '200'", true);
}