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); }