Repository: eagle
Updated Branches:
  refs/heads/master 52edcd1b7 -> e256503d3


http://git-wip-us.apache.org/repos/asf/eagle/blob/e256503d/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestEagleQueryParser.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestEagleQueryParser.java
 
b/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestEagleQueryParser.java
index 2f5b47b..3430b29 100755
--- 
a/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestEagleQueryParser.java
+++ 
b/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestEagleQueryParser.java
@@ -23,810 +23,810 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class TestEagleQueryParser {
-       
-       private static final Logger LOG = 
LoggerFactory.getLogger(TestEagleQueryParser.class);
-       
-       @Test
-       public void testSingleExpression(){
-               String query = "@cluster=\"a\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("a", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"a\")", or.toString());
-       }
-
-       @Test
-       public void testLessThanExpression(){
-               String query = "@field1<\"1\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@field1<\"1\")", or.toString());
-       }
-
-       @Test
-       public void testLessOrEqualExpression(){
-               String query = "@field1<=\"1\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("<=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@field1<=\"1\")", or.toString());
-       }
-
-       @Test
-       public void testGreaterThanExpression(){
-               String query = "@field1>\"1\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals(">", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@field1>\"1\")", or.toString());
-       }
-
-       @Test
-       public void testGreaterOrEqualExpression(){
-               String query = "@field1>=\"1\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals(">=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               LOG.info(or.toString());
-               Assert.assertEquals("(@field1>=\"1\")", or.toString());
-       }
-
-       @Test
-       public void testMultipleANDExpression(){
-               String query = "@cluster=\"abc\" AND @host=\"dc123.xyz.com\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(2, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("abc", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("@host", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getKey());
-               Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getValue());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(1).getValueType());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"abc\" AND 
@host=\"dc123.xyz.com\")", or.toString());
-               
-               query = "@datacenter=\"dc1\" AND @cluster=\"abc\" AND 
@host=\"dc123.xyz.com\" ";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(3, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@datacenter", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("dc1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getKey());
-               Assert.assertEquals("abc", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getOp().toString());
-               Assert.assertEquals("@host", 
or.getANDExprList().get(0).getAtomicExprList().get(2).getKey());
-               Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(0).getAtomicExprList().get(2).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(2).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@datacenter=\"dc1\" AND @cluster=\"abc\" 
AND @host=\"dc123.xyz.com\")", or.toString());
-       }
-       
-       @Test
-       public void testMultipleORExpression(){
-               String query = "@cluster=\"abc\" OR @host=\"dc123.xyz.com\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==2);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals(1, 
or.getANDExprList().get(1).getAtomicExprList().size());
-               Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("abc", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("@host", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("(@cluster=\"abc\") OR 
(@host=\"dc123.xyz.com\")", or.toString());
-               
-               query = "@datacenter=\"dc1\" OR @cluster=\"abc\" OR 
@host=\"dc123.xyz.com\"";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }               
Assert.assertTrue(or.getANDExprList().size()==3);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals(1, 
or.getANDExprList().get(1).getAtomicExprList().size());
-               Assert.assertEquals(1, 
or.getANDExprList().get(2).getAtomicExprList().size());
-               Assert.assertEquals("@datacenter", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("dc1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("@cluster", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("abc", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("@host", 
or.getANDExprList().get(2).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(2).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(2).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("(@datacenter=\"dc1\") OR 
(@cluster=\"abc\") OR (@host=\"dc123.xyz.com\")", or.toString());
-       }
-       
-       @Test
-       public void testANDORCombination(){
-               String query = "@cluster=\"abc\" OR @host=\"dc123.xyz.com\" AND 
@datacenter=\"dc1\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"abc\") OR 
(@host=\"dc123.xyz.com\" AND @datacenter=\"dc1\")", or.toString());
-               
-               query = "(@cluster=\"abc\" AND @host=\"dc123.xyz.com\") AND 
@datacenter=\"dc1\"";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"abc\" AND 
@host=\"dc123.xyz.com\" AND @datacenter=\"dc1\")", or.toString());
-
-               query = "(@cluster=\"abc\" OR @host=\"dc123.xyz.com\") AND 
@datacenter=\"dc1\"";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"abc\" AND @datacenter=\"dc1\") 
OR (@host=\"dc123.xyz.com\" AND @datacenter=\"dc1\")", or.toString());
-               
-               query = "(@cluster=\"abc\" OR @host=\"dc123.xyz.com\") AND 
(@datacenter=\"dc1\" OR @cluster=\"bcd\")";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"abc\" AND @datacenter=\"dc1\") 
OR (@cluster=\"abc\" AND @cluster=\"bcd\") OR (@host=\"dc123.xyz.com\" AND 
@datacenter=\"dc1\") OR (@host=\"dc123.xyz.com\" AND @cluster=\"bcd\")", 
or.toString());
-               
-               query = "(@cluster=\"abc\" OR @host=\"dc123.xyz.com\") AND 
(@datacenter=\"dc1\" AND @cluster=\"bcd\")";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"abc\" AND @datacenter=\"dc1\" 
AND @cluster=\"bcd\") OR (@host=\"dc123.xyz.com\" AND @datacenter=\"dc1\" AND 
@cluster=\"bcd\")", or.toString());
-       }
-       
-       @Test
-       public void testNegativeCase(){
-               String query = "@cluster      = \"a\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               LOG.info(or.toString());
-               Assert.assertEquals("(@cluster=\"a\")", or.toString());
-               
-               query = "@cluster    = a\"";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(Exception ex){
-                       LOG.error("Can not successfully parse the query:" + 
query, ex);
-               }
-               Assert.assertTrue(or == null);
-               
-               query = "@cluster    = \"\"a\"";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(Exception ex){
-                       LOG.error("Can not successfully parse the query:" + 
query, ex);
-               }
-               Assert.assertNotNull(or);
-
-               query = "@cluster=\"cluster1\" AND @datacenter=\"dc1\" AND 
@remediationID=8888\" AND @remediationStatus=\"status\"";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(Exception ex){
-                       LOG.error("Can not successfully parse the query:" + 
query, ex);
-               }
-               Assert.assertTrue(or == null);
-       }
-       
-       @Test
-       public void testSimpleWildcardMatchQuery(){
-               String expected = "-[]/{}()*+?.\\^$|";
-               String query = "@user=\"-[]/{}()*+?.\\\\^$|\"";
-               System.out.println(query);
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@user", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals(expected, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("(@user=\""+expected+"\")", or.toString());
-       }
-
-       @Test
-       public void testNumberQuery() {
-               String query = "@field1 >= -1.234";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals(-1.234, 
Double.parseDouble(or.getANDExprList().get(0).getAtomicExprList().get(0).getValue()),
 0.0001);
-               Assert.assertEquals(">=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NUMBER, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testContainQuery() {
-               String query = "@name contains \"jame\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testNotContainQuery() {
-               String query = "@name not contains \"jame\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("NOT CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name NOT CONTAINS \"jame\"";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("NOT CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name NOT                                          
CONTAINS \"jame\"";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("NOT CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testNullQuery() {
-               String query = "@name is null";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("null", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name IS               NULL";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name is not null";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("null", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name is               not               NULL";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name =               NULL";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name !=               NULL";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("!=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testIsOrIsNotQuery(){
-               String query = "@name is \"james\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("james", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name is   not \"james\"";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("james", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name is   1.234";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("1.234", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NUMBER, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name is   not 1.234";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("1.234", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.NUMBER, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testINListQuery() {
-               String query = "@name in (\"jame\",\"lebron\")";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("(\"jame\",\"lebron\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name NOT IN (1,\"lebron\")";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("(1,\"lebron\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("NOT IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@name not                      in (1,\"lebron\")";
-               parser = new EagleQueryParser(query);
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("(1,\"lebron\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("NOT IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testEmptyString() {
-               String query = "@name = \"\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertNotNull(or);
-               Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       /**
-        * Will split tokens for escaped string
-        *
-        * "va\"lue" => "va\"lue"
-        * ("va\"lue","va,lue") => ["va\\\"lue","va,lue"]
-        *
-        */
-       @Test
-       public void testEscapedQuotesString(){
-               String query = "@value = \"value\\\"content, and another 
content\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertNotNull(or);
-               Assert.assertEquals("@value", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("value\"content, and another content", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@value in (\"value\\\"content, and another 
content\",\"others item\")";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertNotNull(or);
-               Assert.assertEquals("@value", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("(\"value\\\"content, and another 
content\",\"others item\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-
-               query = "@value in (\"value\\\"content, and another 
content\",\"others item\",-1.2345)";
-               parser = new EagleQueryParser(query);
-               or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertNotNull(or);
-               Assert.assertEquals("@value", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("(\"value\\\"content, and another 
content\",\"others item\",-1.2345)", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
-       }
-
-       @Test
-       public void testCompareAtomicExpression(){
-               String query = "EXP{@mapProgress} < EXP{@reduceProgress}";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("mapProgress", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("reduceProgress", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("(mapProgress<reduceProgress)", 
or.toString());
-       }
-
-       @Test
-       public void testCompareArithmeticExpressionWithNumeric(){
-               String query = "EXP{(@mapProgress + @reduceProgress) / 
(@endTime - @startTime)} < 0.005";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("(mapProgress + reduceProgress) / (endTime 
- startTime)", or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("0.005", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               LOG.info(or.toString());
-               Assert.assertEquals("((mapProgress + reduceProgress) / (endTime 
- startTime)<0.005)", or.toString());
-       }
-
-       @Test
-       public void testComplexExpressionWithNestedBrace(){
-               String query = "EXP{((@a + @b) / @c) + @d}< 0.005";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
-               Assert.assertEquals("((a + b) / c) + d", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
-               Assert.assertEquals("0.005", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
-               Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
-               Assert.assertEquals("(((a + b) / c) + d<0.005)", or.toString());
-       }
-
-       @Test
-       public void testComplexExpressionWithAndCondition(){
-               String query = "(EXP{@a + @b} > 3) AND (@b >10)";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               ANDExpression and = or.getANDExprList().get(0);
-               Assert.assertEquals(2, and.getAtomicExprList().size());
-               Assert.assertEquals("a + b>3", 
and.getAtomicExprList().get(0).toString());
-               Assert.assertEquals("@b>10", 
and.getAtomicExprList().get(1).toString());
-               
-               AtomicExpression leftExpression = 
and.getAtomicExprList().get(0);
-               Assert.assertEquals("a + b", leftExpression.getKey());
-               Assert.assertEquals(TokenType.EXP, leftExpression.getKeyType());
-               Assert.assertEquals(">", leftExpression.getOp().toString());
-               Assert.assertEquals("3", leftExpression.getValue());
-               Assert.assertEquals(TokenType.NUMBER, 
leftExpression.getValueType());
-               AtomicExpression rightExpression = 
and.getAtomicExprList().get(1);
-               Assert.assertEquals("@b", rightExpression.getKey());
-               Assert.assertEquals(TokenType.ID, rightExpression.getKeyType());
-               Assert.assertEquals(">", rightExpression.getOp().toString());
-               Assert.assertEquals("10",rightExpression.getValue());
-               Assert.assertEquals(TokenType.NUMBER, 
rightExpression.getValueType());
-       }
-
-       @Test
-       public void testComplexExpressionWithConditionAndNestedBrace(){
-               String query = "(EXP{(@a + @b) / ((@c + @d)*(@e)/(@d))} > 
EXP{@c + @d}) AND (EXP{@e + @f} > EXP{@h + @i})";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               ORExpression or = null;
-               try{
-                       or = parser.parse();
-               }catch(EagleQueryParseException ex){
-                       Assert.fail(ex.getMessage());
-               }
-               Assert.assertTrue(or.getANDExprList().size()==1);
-               ANDExpression and = or.getANDExprList().get(0);
-               Assert.assertEquals(2, and.getAtomicExprList().size());         
-               Assert.assertEquals("(a + b) / ((c + d)*(e)/(d))>c + d", 
and.getAtomicExprList().get(0).toString());
-               Assert.assertEquals("e + f>h + i", 
and.getAtomicExprList().get(1).toString());
-               
-               AtomicExpression leftExpression = 
and.getAtomicExprList().get(0);
-               Assert.assertEquals("(a + b) / ((c + d)*(e)/(d))", 
leftExpression.getKey());
-               Assert.assertEquals(">", leftExpression.getOp().toString());
-               Assert.assertEquals("c + d", leftExpression.getValue());
-                               
-               AtomicExpression rightExpression = 
and.getAtomicExprList().get(1);
-               Assert.assertEquals("e + f", rightExpression.getKey());
-               Assert.assertEquals(">", rightExpression.getOp().toString());
-               Assert.assertEquals("h + i",rightExpression.getValue());
-       }
-
-       @Test
-       public void testNegativeExpressionCase(){
-               String query = "(EXP{(@a + @b) / ((@c + @d)*(@e)/(@d))}} > 
EXP{@c + @d}) AND (EXP{@e + @f} > EXP{@h + @i})";
-               EagleQueryParser parser = new EagleQueryParser(query);          
-               boolean parseFail = true;
-               try{
-                       parser.parse();
-               }catch(EagleQueryParseException ex){
-                       parseFail = false;                      
-               }
-               Assert.assertFalse(parseFail);
-               
-               query = "(EXP{{(@a + @b) / ((@c + @d)*(@e)/(@d))}} > EXP{@c + 
@d}) AND (EXP{@e + @f} > EXP{@h + @i})";
-               parser = new EagleQueryParser(query);           
-               parseFail = true;
-               try{
-                       parser.parse();
-               }catch(EagleQueryParseException ex){
-                       parseFail = false;                      
-               }
-               Assert.assertFalse(parseFail);
-
-               query = "(EXP{(@a + @b) / ((@c + @d)*(@e)/(@d))} > EXP{@c + 
@d}) AND EXP{})";
-               parser = new EagleQueryParser(query);           
-               parseFail = true;
-               try{
-                       parser.parse();
-               }catch(EagleQueryParseException ex){
-                       parseFail = false;                      
-               }
-               Assert.assertFalse(parseFail);
-
-       }
-
-       @Test
-       public void testIsExpression(){
-               Assert.assertTrue(TokenConstant.isExpression("EXP{ count }"));
-               Assert.assertFalse(TokenConstant.isExpression("count"));
-       }
+
+    private static final Logger LOG = 
LoggerFactory.getLogger(TestEagleQueryParser.class);
+
+    @Test
+    public void testSingleExpression() {
+        String query = "@cluster=\"a\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("a", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"a\")", or.toString());
+    }
+
+    @Test
+    public void testLessThanExpression() {
+        String query = "@field1<\"1\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@field1<\"1\")", or.toString());
+    }
+
+    @Test
+    public void testLessOrEqualExpression() {
+        String query = "@field1<=\"1\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("<=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@field1<=\"1\")", or.toString());
+    }
+
+    @Test
+    public void testGreaterThanExpression() {
+        String query = "@field1>\"1\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals(">", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@field1>\"1\")", or.toString());
+    }
+
+    @Test
+    public void testGreaterOrEqualExpression() {
+        String query = "@field1>=\"1\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals(">=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        LOG.info(or.toString());
+        Assert.assertEquals("(@field1>=\"1\")", or.toString());
+    }
+
+    @Test
+    public void testMultipleANDExpression() {
+        String query = "@cluster=\"abc\" AND @host=\"dc123.xyz.com\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(2, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("abc", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("@host", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getKey());
+        Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getValue());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(1).getValueType());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"abc\" AND @host=\"dc123.xyz.com\")", 
or.toString());
+
+        query = "@datacenter=\"dc1\" AND @cluster=\"abc\" AND 
@host=\"dc123.xyz.com\" ";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(3, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@datacenter", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("dc1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getKey());
+        Assert.assertEquals("abc", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(1).getOp().toString());
+        Assert.assertEquals("@host", 
or.getANDExprList().get(0).getAtomicExprList().get(2).getKey());
+        Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(0).getAtomicExprList().get(2).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(2).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@datacenter=\"dc1\" AND @cluster=\"abc\" AND 
@host=\"dc123.xyz.com\")", or.toString());
+    }
+
+    @Test
+    public void testMultipleORExpression() {
+        String query = "@cluster=\"abc\" OR @host=\"dc123.xyz.com\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size()==2);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals(1, 
or.getANDExprList().get(1).getAtomicExprList().size());
+        Assert.assertEquals("@cluster", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("abc", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("@host", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("(@cluster=\"abc\") OR (@host=\"dc123.xyz.com\")", 
or.toString());
+
+        query = "@datacenter=\"dc1\" OR @cluster=\"abc\" OR 
@host=\"dc123.xyz.com\"";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }              Assert.assertTrue(or.getANDExprList().size()==3);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals(1, 
or.getANDExprList().get(1).getAtomicExprList().size());
+        Assert.assertEquals(1, 
or.getANDExprList().get(2).getAtomicExprList().size());
+        Assert.assertEquals("@datacenter", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("dc1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("@cluster", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("abc", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(1).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("@host", 
or.getANDExprList().get(2).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("dc123.xyz.com", 
or.getANDExprList().get(2).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(2).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("(@datacenter=\"dc1\") OR (@cluster=\"abc\") OR 
(@host=\"dc123.xyz.com\")", or.toString());
+    }
+
+    @Test
+    public void testANDORCombination() {
+        String query = "@cluster=\"abc\" OR @host=\"dc123.xyz.com\" AND 
@datacenter=\"dc1\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }              LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"abc\") OR (@host=\"dc123.xyz.com\" 
AND @datacenter=\"dc1\")", or.toString());
+
+        query = "(@cluster=\"abc\" AND @host=\"dc123.xyz.com\") AND 
@datacenter=\"dc1\"";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }              LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"abc\" AND @host=\"dc123.xyz.com\" AND 
@datacenter=\"dc1\")", or.toString());
+
+        query = "(@cluster=\"abc\" OR @host=\"dc123.xyz.com\") AND 
@datacenter=\"dc1\"";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"abc\" AND @datacenter=\"dc1\") OR 
(@host=\"dc123.xyz.com\" AND @datacenter=\"dc1\")", or.toString());
+
+        query = "(@cluster=\"abc\" OR @host=\"dc123.xyz.com\") AND 
(@datacenter=\"dc1\" OR @cluster=\"bcd\")";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"abc\" AND @datacenter=\"dc1\") OR 
(@cluster=\"abc\" AND @cluster=\"bcd\") OR (@host=\"dc123.xyz.com\" AND 
@datacenter=\"dc1\") OR (@host=\"dc123.xyz.com\" AND @cluster=\"bcd\")", 
or.toString());
+
+        query = "(@cluster=\"abc\" OR @host=\"dc123.xyz.com\") AND 
(@datacenter=\"dc1\" AND @cluster=\"bcd\")";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"abc\" AND @datacenter=\"dc1\" AND 
@cluster=\"bcd\") OR (@host=\"dc123.xyz.com\" AND @datacenter=\"dc1\" AND 
@cluster=\"bcd\")", or.toString());
+    }
+
+    @Test
+    public void testNegativeCase() {
+        String query = "@cluster      = \"a\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        LOG.info(or.toString());
+        Assert.assertEquals("(@cluster=\"a\")", or.toString());
+
+        query = "@cluster    = a\"";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (Exception ex) {
+            LOG.error("Can not successfully parse the query:" + query, ex);
+        }
+        Assert.assertTrue(or == null);
+
+        query = "@cluster    = \"\"a\"";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (Exception ex) {
+            LOG.error("Can not successfully parse the query:" + query, ex);
+        }
+        Assert.assertNotNull(or);
+
+        query = "@cluster=\"cluster1\" AND @datacenter=\"dc1\" AND 
@remediationID=8888\" AND @remediationStatus=\"status\"";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (Exception ex) {
+            LOG.error("Can not successfully parse the query:" + query, ex);
+        }
+        Assert.assertTrue(or == null);
+    }
+
+    @Test
+    public void testSimpleWildcardMatchQuery() {
+        String expected = "-[]/{}()*+?.\\^$|";
+        String query = "@user=\"-[]/{}()*+?.\\\\^$|\"";
+        System.out.println(query);
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@user", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals(expected, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("(@user=\""+expected+"\")", or.toString());
+    }
+
+    @Test
+    public void testNumberQuery() {
+        String query = "@field1 >= -1.234";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@field1", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals(-1.234, 
Double.parseDouble(or.getANDExprList().get(0).getAtomicExprList().get(0).getValue()),
 0.0001);
+        Assert.assertEquals(">=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NUMBER, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testContainQuery() {
+        String query = "@name contains \"jame\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testNotContainQuery() {
+        String query = "@name not contains \"jame\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("NOT CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name NOT CONTAINS \"jame\"";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("NOT CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name NOT                                          CONTAINS 
\"jame\"";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("jame", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("NOT CONTAINS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testNullQuery() {
+        String query = "@name is null";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("null", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name IS               NULL";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name is not null";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("null", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name is               not               NULL";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name =               NULL";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name !=               NULL";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("NULL", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("!=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NULL, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testIsOrIsNotQuery() {
+        String query = "@name is \"james\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("james", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name is   not \"james\"";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("james", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name is   1.234";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("1.234", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NUMBER, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name is   not 1.234";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("1.234", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IS NOT", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.NUMBER, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testINListQuery() {
+        String query = "@name in (\"jame\",\"lebron\")";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("(\"jame\",\"lebron\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name NOT IN (1,\"lebron\")";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("(1,\"lebron\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("NOT IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@name not                      in (1,\"lebron\")";
+        parser = new EagleQueryParser(query);
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("(1,\"lebron\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("NOT IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testEmptyString() {
+        String query = "@name = \"\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertNotNull(or);
+        Assert.assertEquals("@name", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    /**
+     * Will split tokens for escaped string
+     *
+     * "va\"lue" => "va\"lue"
+     * ("va\"lue","va,lue") => ["va\\\"lue","va,lue"]
+     *
+     */
+    @Test
+    public void testEscapedQuotesString() {
+        String query = "@value = \"value\\\"content, and another content\"";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertNotNull(or);
+        Assert.assertEquals("@value", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("value\"content, and another content", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("=", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.STRING, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@value in (\"value\\\"content, and another content\",\"others 
item\")";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertNotNull(or);
+        Assert.assertEquals("@value", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("(\"value\\\"content, and another 
content\",\"others item\")", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+
+        query = "@value in (\"value\\\"content, and another content\",\"others 
item\",-1.2345)";
+        parser = new EagleQueryParser(query);
+        or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertNotNull(or);
+        Assert.assertEquals("@value", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("(\"value\\\"content, and another 
content\",\"others item\",-1.2345)", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("IN", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals(TokenType.LIST, 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValueType());
+    }
+
+    @Test
+    public void testCompareAtomicExpression() {
+        String query = "EXP{@mapProgress} < EXP{@reduceProgress}";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("mapProgress", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("reduceProgress", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("(mapProgress<reduceProgress)", or.toString());
+    }
+
+    @Test
+    public void testCompareArithmeticExpressionWithNumeric() {
+        String query = "EXP{(@mapProgress + @reduceProgress) / (@endTime - 
@startTime)} < 0.005";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("(mapProgress + reduceProgress) / (endTime - 
startTime)", or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("0.005", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        LOG.info(or.toString());
+        Assert.assertEquals("((mapProgress + reduceProgress) / (endTime - 
startTime)<0.005)", or.toString());
+    }
+
+    @Test
+    public void testComplexExpressionWithNestedBrace() {
+        String query = "EXP{((@a + @b) / @c) + @d}< 0.005";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        Assert.assertEquals(1, 
or.getANDExprList().get(0).getAtomicExprList().size());
+        Assert.assertEquals("((a + b) / c) + d", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getKey());
+        Assert.assertEquals("0.005", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getValue());
+        Assert.assertEquals("<", 
or.getANDExprList().get(0).getAtomicExprList().get(0).getOp().toString());
+        Assert.assertEquals("(((a + b) / c) + d<0.005)", or.toString());
+    }
+
+    @Test
+    public void testComplexExpressionWithAndCondition() {
+        String query = "(EXP{@a + @b} > 3) AND (@b >10)";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        ANDExpression and = or.getANDExprList().get(0);
+        Assert.assertEquals(2, and.getAtomicExprList().size());
+        Assert.assertEquals("a + b>3", 
and.getAtomicExprList().get(0).toString());
+        Assert.assertEquals("@b>10", 
and.getAtomicExprList().get(1).toString());
+
+        AtomicExpression leftExpression = and.getAtomicExprList().get(0);
+        Assert.assertEquals("a + b", leftExpression.getKey());
+        Assert.assertEquals(TokenType.EXP, leftExpression.getKeyType());
+        Assert.assertEquals(">", leftExpression.getOp().toString());
+        Assert.assertEquals("3", leftExpression.getValue());
+        Assert.assertEquals(TokenType.NUMBER, leftExpression.getValueType());
+        AtomicExpression rightExpression = and.getAtomicExprList().get(1);
+        Assert.assertEquals("@b", rightExpression.getKey());
+        Assert.assertEquals(TokenType.ID, rightExpression.getKeyType());
+        Assert.assertEquals(">", rightExpression.getOp().toString());
+        Assert.assertEquals("10",rightExpression.getValue());
+        Assert.assertEquals(TokenType.NUMBER, rightExpression.getValueType());
+    }
+
+    @Test
+    public void testComplexExpressionWithConditionAndNestedBrace() {
+        String query = "(EXP{(@a + @b) / ((@c + @d)*(@e)/(@d))} > EXP{@c + 
@d}) AND (EXP{@e + @f} > EXP{@h + @i})";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        ORExpression or = null;
+        try {
+            or = parser.parse();
+        } catch (EagleQueryParseException ex) {
+            Assert.fail(ex.getMessage());
+        }
+        Assert.assertTrue(or.getANDExprList().size() == 1);
+        ANDExpression and = or.getANDExprList().get(0);
+        Assert.assertEquals(2, and.getAtomicExprList().size());
+        Assert.assertEquals("(a + b) / ((c + d)*(e)/(d))>c + d", 
and.getAtomicExprList().get(0).toString());
+        Assert.assertEquals("e + f>h + i", 
and.getAtomicExprList().get(1).toString());
+
+        AtomicExpression leftExpression = and.getAtomicExprList().get(0);
+        Assert.assertEquals("(a + b) / ((c + d)*(e)/(d))", 
leftExpression.getKey());
+        Assert.assertEquals(">", leftExpression.getOp().toString());
+        Assert.assertEquals("c + d", leftExpression.getValue());
+
+        AtomicExpression rightExpression = and.getAtomicExprList().get(1);
+        Assert.assertEquals("e + f", rightExpression.getKey());
+        Assert.assertEquals(">", rightExpression.getOp().toString());
+        Assert.assertEquals("h + i",rightExpression.getValue());
+    }
+
+    @Test
+    public void testNegativeExpressionCase() {
+        String query = "(EXP{(@a + @b) / ((@c + @d)*(@e)/(@d))}} > EXP{@c + 
@d}) AND (EXP{@e + @f} > EXP{@h + @i})";
+        EagleQueryParser parser = new EagleQueryParser(query);
+        boolean parseFail = true;
+        try {
+            parser.parse();
+        } catch (EagleQueryParseException ex) {
+            parseFail = false;
+        }
+        Assert.assertFalse(parseFail);
+
+        query = "(EXP{{(@a + @b) / ((@c + @d)*(@e)/(@d))}} > EXP{@c + @d}) AND 
(EXP{@e + @f} > EXP{@h + @i})";
+        parser = new EagleQueryParser(query);
+        parseFail = true;
+        try {
+            parser.parse();
+        } catch (EagleQueryParseException ex) {
+            parseFail = false;
+        }
+        Assert.assertFalse(parseFail);
+
+        query = "(EXP{(@a + @b) / ((@c + @d)*(@e)/(@d))} > EXP{@c + @d}) AND 
EXP{})";
+        parser = new EagleQueryParser(query);
+        parseFail = true;
+        try {
+            parser.parse();
+        } catch (EagleQueryParseException ex) {
+            parseFail = false;
+        }
+        Assert.assertFalse(parseFail);
+
+    }
+
+    @Test
+    public void testIsExpression() {
+        Assert.assertTrue(TokenConstant.isExpression("EXP{ count }"));
+        Assert.assertFalse(TokenConstant.isExpression("count"));
+    }
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/e256503d/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestValueType.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestValueType.java
 
b/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestValueType.java
index 9627b78..66d465c 100755
--- 
a/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestValueType.java
+++ 
b/eagle-core/eagle-query/eagle-antlr/src/test/java/org/apache/eagle/query/parser/test/TestValueType.java
@@ -22,52 +22,52 @@ import org.junit.Assert;
 import org.junit.Test;
 
 public class TestValueType {
-       @Test
-       public void testLocateValueType(){
-               Assert.assertEquals(TokenType.EXP, TokenType.locate("EXP{ 1+1 = 
2 }"));
-               Assert.assertEquals(TokenType.EXP, TokenType.locate("EXP{ sum(a 
+ b) > 1 }"));
+    @Test
+    public void testLocateValueType() {
+        Assert.assertEquals(TokenType.EXP, TokenType.locate("EXP{ 1+1 = 2 }"));
+        Assert.assertEquals(TokenType.EXP, TokenType.locate("EXP{ sum(a + b) > 
1 }"));
 
-               Assert.assertEquals(TokenType.STRING, TokenType.locate("\"\""));
-               Assert.assertEquals(TokenType.STRING, 
TokenType.locate("\"abc\""));
+        Assert.assertEquals(TokenType.STRING, TokenType.locate("\"\""));
+        Assert.assertEquals(TokenType.STRING, TokenType.locate("\"abc\""));
 
-               Assert.assertEquals(TokenType.LIST, 
TokenType.locate("(1,\"ab\")"));
-               Assert.assertEquals(TokenType.LIST, 
TokenType.locate("(\"\",\"ab\")"));
+        Assert.assertEquals(TokenType.LIST, TokenType.locate("(1,\"ab\")"));
+        Assert.assertEquals(TokenType.LIST, TokenType.locate("(\"\",\"ab\")"));
 
-               Assert.assertEquals(TokenType.NUMBER, TokenType.locate("1"));
-               Assert.assertEquals(TokenType.NUMBER, 
TokenType.locate("1.234"));
-               Assert.assertEquals(TokenType.NUMBER, 
TokenType.locate("-1.234"));
-               Assert.assertEquals(TokenType.NUMBER, 
TokenType.locate("+1.234"));
-               Assert.assertEquals(TokenType.NUMBER, TokenType.locate("- 
1.234"));
-               Assert.assertEquals(TokenType.NUMBER, TokenType.locate("+ 
1.234"));
-               Assert.assertEquals(TokenType.NUMBER, TokenType.locate("    + 
1.234 "));
-               Assert.assertEquals(TokenType.NUMBER, TokenType.locate("    + 
1.234     "));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("1"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("1.234"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("-1.234"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("+1.234"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("- 1.234"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("+ 1.234"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("    + 1.234 
"));
+        Assert.assertEquals(TokenType.NUMBER, TokenType.locate("    + 1.234    
 "));
 
-               Assert.assertEquals(TokenType.NULL, TokenType.locate("null"));
-               Assert.assertEquals(TokenType.NULL, TokenType.locate("NULL"));
+        Assert.assertEquals(TokenType.NULL, TokenType.locate("null"));
+        Assert.assertEquals(TokenType.NULL, TokenType.locate("NULL"));
 
-               Assert.assertEquals(TokenType.STRING,TokenType.locate("\"SELECT 
start.hr AS hr,\n" +
-                               " ...details.inst_type(Stage-10)\""));
+        Assert.assertEquals(TokenType.STRING,TokenType.locate("\"SELECT 
start.hr AS hr,\n" +
+            " ...details.inst_type(Stage-10)\""));
 
-               // Bad format
-               boolean gotEx = false;
-               try{
-                       TokenType.locate("+ 1.234.567");
-               }catch (IllegalArgumentException ex){
-                       gotEx = true;
-               }
-               Assert.assertTrue(gotEx);
-       }
+        // Bad format
+        boolean gotEx = false;
+        try {
+            TokenType.locate("+ 1.234.567");
+        } catch (IllegalArgumentException ex) {
+            gotEx = true;
+        }
+        Assert.assertTrue(gotEx);
+    }
 
-       @Test
-       public void testParseExpressionContent(){
-               String expression = "EXP{ @fieldName /2 } AS a";
-               Assert.assertEquals(" @fieldName /2 ", 
TokenConstant.parseExpressionContent(expression));
+    @Test
+    public void testParseExpressionContent() {
+        String expression = "EXP{ @fieldName /2 } AS a";
+        Assert.assertEquals(" @fieldName /2 ", 
TokenConstant.parseExpressionContent(expression));
 
 
-               expression = "EXP{ @fieldName /2 } a";
-               Assert.assertEquals(" @fieldName /2 ", 
TokenConstant.parseExpressionContent(expression));
+        expression = "EXP{ @fieldName /2 } a";
+        Assert.assertEquals(" @fieldName /2 ", 
TokenConstant.parseExpressionContent(expression));
 
-               expression = "EXP{ @fieldName /2 }";
-               Assert.assertEquals(" @fieldName /2 ", 
TokenConstant.parseExpressionContent(expression));
-       }
+        expression = "EXP{ @fieldName /2 }";
+        Assert.assertEquals(" @fieldName /2 ", 
TokenConstant.parseExpressionContent(expression));
+    }
 }
\ No newline at end of file

Reply via email to