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


Reply via email to