You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2007/04/23 13:23:42 UTC

svn commit: r531437 - in /incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter: ArithmeticExpression.java BinaryExpression.java BooleanExpression.java ComparisonExpression.java Expression.java LogicExpression.java

Author: rgreig
Date: Mon Apr 23 04:23:39 2007
New Revision: 531437

URL: http://svn.apache.org/viewvc?view=rev&rev=531437
Log:
QPID-394. Removed revision tags.

Modified:
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BinaryExpression.java
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BooleanExpression.java
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/Expression.java
    incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/LogicExpression.java

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java?view=diff&rev=531437&r1=531436&r2=531437
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java Mon Apr 23 04:23:39 2007
@@ -1,3 +1,4 @@
+/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */
 /**
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -20,16 +21,14 @@
 // Based on like named file from r450141 of the Apache ActiveMQ project <http://www.activemq.org/site/home.html>
 //
 
-
 import org.apache.qpid.AMQException;
 import org.apache.qpid.server.queue.AMQMessage;
 
 /**
  * An expression which performs an operation on two expression values
- * 
- * @version $Revision$
  */
-public abstract class ArithmeticExpression extends BinaryExpression {
+public abstract class ArithmeticExpression extends BinaryExpression
+{
 
     protected static final int INTEGER = 1;
     protected static final int LONG = 2;
@@ -39,156 +38,213 @@
      * @param left
      * @param right
      */
-    public ArithmeticExpression(Expression left, Expression right) {
+    public ArithmeticExpression(Expression left, Expression right)
+    {
         super(left, right);
     }
 
-    public static Expression createPlus(Expression left, Expression right) {
-        return new ArithmeticExpression(left, right) {
-            protected Object evaluate(Object lvalue, Object rvalue) {
-                if (lvalue instanceof String) {
-                    String text = (String) lvalue;
-                    String answer = text + rvalue;
-                    return answer;
+    public static Expression createPlus(Expression left, Expression right)
+    {
+        return new ArithmeticExpression(left, right)
+            {
+                protected Object evaluate(Object lvalue, Object rvalue)
+                {
+                    if (lvalue instanceof String)
+                    {
+                        String text = (String) lvalue;
+                        String answer = text + rvalue;
+
+                        return answer;
+                    }
+                    else if (lvalue instanceof Number)
+                    {
+                        return plus((Number) lvalue, asNumber(rvalue));
+                    }
+
+                    throw new RuntimeException("Cannot call plus operation on: " + lvalue + " and: " + rvalue);
                 }
-                else if (lvalue instanceof Number) {
-                    return plus((Number) lvalue, asNumber(rvalue));
+
+                public String getExpressionSymbol()
+                {
+                    return "+";
                 }
-                throw new RuntimeException("Cannot call plus operation on: " + lvalue + " and: " + rvalue);
-            }
+            };
+    }
 
-            public String getExpressionSymbol()
+    public static Expression createMinus(Expression left, Expression right)
+    {
+        return new ArithmeticExpression(left, right)
             {
-                return "+";
-            }
-        };
-    }
+                protected Object evaluate(Object lvalue, Object rvalue)
+                {
+                    if (lvalue instanceof Number)
+                    {
+                        return minus((Number) lvalue, asNumber(rvalue));
+                    }
 
-    public static Expression createMinus(Expression left, Expression right) {
-        return new ArithmeticExpression(left, right) {
-            protected Object evaluate(Object lvalue, Object rvalue) {
-                if (lvalue instanceof Number) {
-                    return minus((Number) lvalue, asNumber(rvalue));
+                    throw new RuntimeException("Cannot call minus operation on: " + lvalue + " and: " + rvalue);
                 }
-                throw new RuntimeException("Cannot call minus operation on: " + lvalue + " and: " + rvalue);
-            }
 
-            public String getExpressionSymbol() {
-                return "-";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return "-";
+                }
+            };
     }
 
-    public static Expression createMultiply(Expression left, Expression right) {
-        return new ArithmeticExpression(left, right) {
+    public static Expression createMultiply(Expression left, Expression right)
+    {
+        return new ArithmeticExpression(left, right)
+            {
+
+                protected Object evaluate(Object lvalue, Object rvalue)
+                {
+                    if (lvalue instanceof Number)
+                    {
+                        return multiply((Number) lvalue, asNumber(rvalue));
+                    }
 
-            protected Object evaluate(Object lvalue, Object rvalue) {
-                if (lvalue instanceof Number) {
-                    return multiply((Number) lvalue, asNumber(rvalue));
+                    throw new RuntimeException("Cannot call multiply operation on: " + lvalue + " and: " + rvalue);
                 }
-                throw new RuntimeException("Cannot call multiply operation on: " + lvalue + " and: " + rvalue);
-            }
 
-            public String getExpressionSymbol() {
-                return "*";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return "*";
+                }
+            };
     }
 
-    public static Expression createDivide(Expression left, Expression right) {
-        return new ArithmeticExpression(left, right) {
+    public static Expression createDivide(Expression left, Expression right)
+    {
+        return new ArithmeticExpression(left, right)
+            {
+
+                protected Object evaluate(Object lvalue, Object rvalue)
+                {
+                    if (lvalue instanceof Number)
+                    {
+                        return divide((Number) lvalue, asNumber(rvalue));
+                    }
 
-            protected Object evaluate(Object lvalue, Object rvalue) {
-                if (lvalue instanceof Number) {
-                    return divide((Number) lvalue, asNumber(rvalue));
+                    throw new RuntimeException("Cannot call divide operation on: " + lvalue + " and: " + rvalue);
                 }
-                throw new RuntimeException("Cannot call divide operation on: " + lvalue + " and: " + rvalue);
-            }
 
-            public String getExpressionSymbol() {
-                return "/";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return "/";
+                }
+            };
     }
 
-    public static Expression createMod(Expression left, Expression right) {
-        return new ArithmeticExpression(left, right) {
+    public static Expression createMod(Expression left, Expression right)
+    {
+        return new ArithmeticExpression(left, right)
+            {
+
+                protected Object evaluate(Object lvalue, Object rvalue)
+                {
+                    if (lvalue instanceof Number)
+                    {
+                        return mod((Number) lvalue, asNumber(rvalue));
+                    }
 
-            protected Object evaluate(Object lvalue, Object rvalue) {
-                if (lvalue instanceof Number) {
-                    return mod((Number) lvalue, asNumber(rvalue));
+                    throw new RuntimeException("Cannot call mod operation on: " + lvalue + " and: " + rvalue);
                 }
-                throw new RuntimeException("Cannot call mod operation on: " + lvalue + " and: " + rvalue);
-            }
 
-            public String getExpressionSymbol() {
-                return "%";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return "%";
+                }
+            };
     }
 
-    protected Number plus(Number left, Number right) {
-        switch (numberType(left, right)) {
-            case INTEGER:
-                return new Integer(left.intValue() + right.intValue());
-            case LONG:
-                return new Long(left.longValue() + right.longValue());
-            default:
-                return new Double(left.doubleValue() + right.doubleValue());
+    protected Number plus(Number left, Number right)
+    {
+        switch (numberType(left, right))
+        {
+
+        case INTEGER:
+            return new Integer(left.intValue() + right.intValue());
+
+        case LONG:
+            return new Long(left.longValue() + right.longValue());
+
+        default:
+            return new Double(left.doubleValue() + right.doubleValue());
         }
     }
 
-    protected Number minus(Number left, Number right) {
-        switch (numberType(left, right)) {
-            case INTEGER:
-                return new Integer(left.intValue() - right.intValue());
-            case LONG:
-                return new Long(left.longValue() - right.longValue());
-            default:
-                return new Double(left.doubleValue() - right.doubleValue());
+    protected Number minus(Number left, Number right)
+    {
+        switch (numberType(left, right))
+        {
+
+        case INTEGER:
+            return new Integer(left.intValue() - right.intValue());
+
+        case LONG:
+            return new Long(left.longValue() - right.longValue());
+
+        default:
+            return new Double(left.doubleValue() - right.doubleValue());
         }
     }
 
-    protected Number multiply(Number left, Number right) {
-        switch (numberType(left, right)) {
-            case INTEGER:
-                return new Integer(left.intValue() * right.intValue());
-            case LONG:
-                return new Long(left.longValue() * right.longValue());
-            default:
-                return new Double(left.doubleValue() * right.doubleValue());
+    protected Number multiply(Number left, Number right)
+    {
+        switch (numberType(left, right))
+        {
+
+        case INTEGER:
+            return new Integer(left.intValue() * right.intValue());
+
+        case LONG:
+            return new Long(left.longValue() * right.longValue());
+
+        default:
+            return new Double(left.doubleValue() * right.doubleValue());
         }
     }
 
-    protected Number divide(Number left, Number right) {
+    protected Number divide(Number left, Number right)
+    {
         return new Double(left.doubleValue() / right.doubleValue());
     }
 
-    protected Number mod(Number left, Number right) {
+    protected Number mod(Number left, Number right)
+    {
         return new Double(left.doubleValue() % right.doubleValue());
     }
 
-    private int numberType(Number left, Number right) {
-        if (isDouble(left) || isDouble(right)) {
+    private int numberType(Number left, Number right)
+    {
+        if (isDouble(left) || isDouble(right))
+        {
             return DOUBLE;
         }
-        else if (left instanceof Long || right instanceof Long) {
+        else if ((left instanceof Long) || (right instanceof Long))
+        {
             return LONG;
         }
-        else {
+        else
+        {
             return INTEGER;
         }
     }
 
-    private boolean isDouble(Number n) {
-        return n instanceof Float || n instanceof Double;
+    private boolean isDouble(Number n)
+    {
+        return (n instanceof Float) || (n instanceof Double);
     }
 
-    protected Number asNumber(Object value) {
-        if (value instanceof Number) {
+    protected Number asNumber(Object value)
+    {
+        if (value instanceof Number)
+        {
             return (Number) value;
         }
-        else {
+        else
+        {
             throw new RuntimeException("Cannot convert value: " + value + " into a number");
         }
     }
@@ -196,22 +252,25 @@
     public Object evaluate(AMQMessage message) throws AMQException
     {
         Object lvalue = left.evaluate(message);
-        if (lvalue == null) {
+        if (lvalue == null)
+        {
             return null;
         }
+
         Object rvalue = right.evaluate(message);
-        if (rvalue == null) {
+        if (rvalue == null)
+        {
             return null;
         }
+
         return evaluate(lvalue, rvalue);
     }
 
-
     /**
      * @param lvalue
      * @param rvalue
      * @return
      */
-    abstract protected Object evaluate(Object lvalue, Object rvalue);
+    protected abstract Object evaluate(Object lvalue, Object rvalue);
 
 }

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BinaryExpression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BinaryExpression.java?view=diff&rev=531437&r1=531436&r2=531437
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BinaryExpression.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BinaryExpression.java Mon Apr 23 04:23:39 2007
@@ -1,3 +1,4 @@
+/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */
 /**
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -20,35 +21,35 @@
 // Based on like named file from r450141 of the Apache ActiveMQ project <http://www.activemq.org/site/home.html>
 //
 
-
-
 /**
  * An expression which performs an operation on two expression values.
- * 
- * @version $Revision$
  */
-abstract public class BinaryExpression implements Expression {
+public abstract class BinaryExpression implements Expression
+{
     protected Expression left;
     protected Expression right;
 
-    public BinaryExpression(Expression left, Expression right) {
+    public BinaryExpression(Expression left, Expression right)
+    {
         this.left = left;
         this.right = right;
     }
 
-    public Expression getLeft() {
+    public Expression getLeft()
+    {
         return left;
     }
 
-    public Expression getRight() {
+    public Expression getRight()
+    {
         return right;
     }
 
-
     /**
      * @see java.lang.Object#toString()
      */
-    public String toString() {
+    public String toString()
+    {
         return "(" + left.toString() + " " + getExpressionSymbol() + " " + right.toString() + ")";
     }
 
@@ -57,7 +58,8 @@
      *
      * @see java.lang.Object#hashCode()
      */
-    public int hashCode() {
+    public int hashCode()
+    {
         return toString().hashCode();
     }
 
@@ -66,11 +68,14 @@
      *
      * @see java.lang.Object#equals(java.lang.Object)
      */
-    public boolean equals(Object o) {
+    public boolean equals(Object o)
+    {
 
-        if (o == null || !this.getClass().equals(o.getClass())) {
+        if ((o == null) || !this.getClass().equals(o.getClass()))
+        {
             return false;
         }
+
         return toString().equals(o.toString());
 
     }
@@ -81,20 +86,22 @@
      *
      * @return
      */
-    abstract public String getExpressionSymbol();
+    public abstract String getExpressionSymbol();
 
     /**
      * @param expression
      */
-    public void setRight(Expression expression) {
+    public void setRight(Expression expression)
+    {
         right = expression;
     }
 
     /**
      * @param expression
      */
-    public void setLeft(Expression expression) {
+    public void setLeft(Expression expression)
+    {
         left = expression;
     }
-    
+
 }

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BooleanExpression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BooleanExpression.java?view=diff&rev=531437&r1=531436&r2=531437
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BooleanExpression.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/BooleanExpression.java Mon Apr 23 04:23:39 2007
@@ -1,3 +1,4 @@
+/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */
 /**
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -20,18 +21,12 @@
 // Based on like named file from r450141 of the Apache ActiveMQ project <http://www.activemq.org/site/home.html>
 //
 
-
 import org.apache.qpid.AMQException;
 import org.apache.qpid.server.queue.AMQMessage;
 
-
-
-
 /**
  * A BooleanExpression is an expression that always
  * produces a Boolean result.
- *
- * @version $Revision$
  */
 public interface BooleanExpression extends Expression
 {

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java?view=diff&rev=531437&r1=531436&r2=531437
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java Mon Apr 23 04:23:39 2007
@@ -1,3 +1,4 @@
+/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */
 /*
  *
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -32,8 +33,6 @@
 
 /**
  * A filter performing a comparison of two objects
- *
- * @version $Revision$
  */
 public abstract class ComparisonExpression extends BinaryExpression implements BooleanExpression
 {
@@ -153,7 +152,7 @@
             {
                 return
                     Boolean.FALSE;
-                    //throw new RuntimeException("LIKE can only operate on String identifiers.  LIKE attemped on: '" + rv.getClass());
+                    // throw new RuntimeException("LIKE can only operate on String identifiers.  LIKE attemped on: '" + rv.getClass());
             }
 
             return likePattern.matcher((String) rv).matches() ? Boolean.TRUE : Boolean.FALSE;
@@ -240,42 +239,42 @@
     private static BooleanExpression doCreateEqual(Expression left, Expression right)
     {
         return new ComparisonExpression(left, right)
-        {
-
-            public Object evaluate(AMQMessage message) throws AMQException
             {
-                Object lv = left.evaluate(message);
-                Object rv = right.evaluate(message);
 
-                // Iff one of the values is null
-                if ((lv == null) ^ (rv == null))
+                public Object evaluate(AMQMessage message) throws AMQException
                 {
+                    Object lv = left.evaluate(message);
+                    Object rv = right.evaluate(message);
+
+                    // Iff one of the values is null
+                    if ((lv == null) ^ (rv == null))
+                    {
+                        return Boolean.FALSE;
+                    }
+
+                    if ((lv == rv) || lv.equals(rv))
+                    {
+                        return Boolean.TRUE;
+                    }
+
+                    if ((lv instanceof Comparable) && (rv instanceof Comparable))
+                    {
+                        return compare((Comparable) lv, (Comparable) rv);
+                    }
+
                     return Boolean.FALSE;
                 }
 
-                if ((lv == rv) || lv.equals(rv))
+                protected boolean asBoolean(int answer)
                 {
-                    return Boolean.TRUE;
+                    return answer == 0;
                 }
 
-                if ((lv instanceof Comparable) && (rv instanceof Comparable))
+                public String getExpressionSymbol()
                 {
-                    return compare((Comparable) lv, (Comparable) rv);
+                    return "=";
                 }
-
-                return Boolean.FALSE;
-            }
-
-            protected boolean asBoolean(int answer)
-            {
-                return answer == 0;
-            }
-
-            public String getExpressionSymbol()
-            {
-                return "=";
-            }
-        };
+            };
     }
 
     public static BooleanExpression createGreaterThan(final Expression left, final Expression right)
@@ -284,17 +283,17 @@
         checkLessThanOperand(right);
 
         return new ComparisonExpression(left, right)
-        {
-            protected boolean asBoolean(int answer)
             {
-                return answer > 0;
-            }
+                protected boolean asBoolean(int answer)
+                {
+                    return answer > 0;
+                }
 
-            public String getExpressionSymbol()
-            {
-                return ">";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return ">";
+                }
+            };
     }
 
     public static BooleanExpression createGreaterThanEqual(final Expression left, final Expression right)
@@ -303,17 +302,17 @@
         checkLessThanOperand(right);
 
         return new ComparisonExpression(left, right)
-        {
-            protected boolean asBoolean(int answer)
             {
-                return answer >= 0;
-            }
+                protected boolean asBoolean(int answer)
+                {
+                    return answer >= 0;
+                }
 
-            public String getExpressionSymbol()
-            {
-                return ">=";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return ">=";
+                }
+            };
     }
 
     public static BooleanExpression createLessThan(final Expression left, final Expression right)
@@ -322,19 +321,19 @@
         checkLessThanOperand(right);
 
         return new ComparisonExpression(left, right)
-        {
-
-            protected boolean asBoolean(int answer)
             {
-                return answer < 0;
-            }
 
-            public String getExpressionSymbol()
-            {
-                return "<";
-            }
+                protected boolean asBoolean(int answer)
+                {
+                    return answer < 0;
+                }
+
+                public String getExpressionSymbol()
+                {
+                    return "<";
+                }
 
-        };
+            };
     }
 
     public static BooleanExpression createLessThanEqual(final Expression left, final Expression right)
@@ -343,18 +342,18 @@
         checkLessThanOperand(right);
 
         return new ComparisonExpression(left, right)
-        {
-
-            protected boolean asBoolean(int answer)
             {
-                return answer <= 0;
-            }
 
-            public String getExpressionSymbol()
-            {
-                return "<=";
-            }
-        };
+                protected boolean asBoolean(int answer)
+                {
+                    return answer <= 0;
+                }
+
+                public String getExpressionSymbol()
+                {
+                    return "<=";
+                }
+            };
     }
 
     /**

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/Expression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/Expression.java?view=diff&rev=531437&r1=531436&r2=531437
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/Expression.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/Expression.java Mon Apr 23 04:23:39 2007
@@ -1,3 +1,4 @@
+/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */
 /**
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -15,7 +16,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.qpid.server.filter;
 //
 // Based on like named file from r450141 of the Apache ActiveMQ project <http://www.activemq.org/site/home.html>
@@ -24,11 +24,8 @@
 import org.apache.qpid.AMQException;
 import org.apache.qpid.server.queue.AMQMessage;
 
-
 /**
  * Represents an expression
- * 
- * @version $Revision$
  */
 public interface Expression
 {
@@ -37,5 +34,5 @@
      * @return the value of this expression
      */
     public Object evaluate(AMQMessage message) throws AMQException;
-    
+
 }

Modified: incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/LogicExpression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/LogicExpression.java?view=diff&rev=531437&r1=531436&r2=531437
==============================================================================
--- incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/LogicExpression.java (original)
+++ incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/server/filter/LogicExpression.java Mon Apr 23 04:23:39 2007
@@ -1,3 +1,4 @@
+/* Copyright Rupert Smith, 2005 to 2006, all rights reserved. */
 /**
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -25,69 +26,86 @@
 
 /**
  * A filter performing a comparison of two objects
- * 
- * @version $Revision$
  */
-public abstract class LogicExpression extends BinaryExpression implements BooleanExpression {
+public abstract class LogicExpression extends BinaryExpression implements BooleanExpression
+{
 
-    public static BooleanExpression createOR(BooleanExpression lvalue, BooleanExpression rvalue) {
-        return new LogicExpression(lvalue, rvalue) {
-        	
-            public Object evaluate(AMQMessage message) throws AMQException {
-                
-            	Boolean lv = (Boolean) left.evaluate(message);
-                // Can we do an OR shortcut??
-            	if (lv !=null && lv.booleanValue()) {
-                    return Boolean.TRUE;
+    public static BooleanExpression createOR(BooleanExpression lvalue, BooleanExpression rvalue)
+    {
+        return new LogicExpression(lvalue, rvalue)
+            {
+
+                public Object evaluate(AMQMessage message) throws AMQException
+                {
+
+                    Boolean lv = (Boolean) left.evaluate(message);
+                    // Can we do an OR shortcut??
+                    if ((lv != null) && lv.booleanValue())
+                    {
+                        return Boolean.TRUE;
+                    }
+
+                    Boolean rv = (Boolean) right.evaluate(message);
+
+                    return (rv == null) ? null : rv;
                 }
-            	
-                Boolean rv = (Boolean) right.evaluate(message);
-                return rv==null ? null : rv;
-            }
-
-            public String getExpressionSymbol() {
-                return "OR";
-            }
-        };
-    }
 
-    public static BooleanExpression createAND(BooleanExpression lvalue, BooleanExpression rvalue) {
-        return new LogicExpression(lvalue, rvalue) {
+                public String getExpressionSymbol()
+                {
+                    return "OR";
+                }
+            };
+    }
 
-            public Object evaluate(AMQMessage message) throws AMQException {
+    public static BooleanExpression createAND(BooleanExpression lvalue, BooleanExpression rvalue)
+    {
+        return new LogicExpression(lvalue, rvalue)
+            {
+
+                public Object evaluate(AMQMessage message) throws AMQException
+                {
+
+                    Boolean lv = (Boolean) left.evaluate(message);
+
+                    // Can we do an AND shortcut??
+                    if (lv == null)
+                    {
+                        return null;
+                    }
+
+                    if (!lv.booleanValue())
+                    {
+                        return Boolean.FALSE;
+                    }
 
-                Boolean lv = (Boolean) left.evaluate(message);
+                    Boolean rv = (Boolean) right.evaluate(message);
 
-                // Can we do an AND shortcut??
-                if (lv == null)
-                    return null;
-                if (!lv.booleanValue()) {
-                    return Boolean.FALSE;
+                    return (rv == null) ? null : rv;
                 }
 
-                Boolean rv = (Boolean) right.evaluate(message);
-                return rv == null ? null : rv;
-            }
-
-            public String getExpressionSymbol() {
-                return "AND";
-            }
-        };
+                public String getExpressionSymbol()
+                {
+                    return "AND";
+                }
+            };
     }
 
     /**
      * @param left
      * @param right
      */
-    public LogicExpression(BooleanExpression left, BooleanExpression right) {
+    public LogicExpression(BooleanExpression left, BooleanExpression right)
+    {
         super(left, right);
     }
 
-    abstract public Object evaluate(AMQMessage message) throws AMQException;
+    public abstract Object evaluate(AMQMessage message) throws AMQException;
 
-    public boolean matches(AMQMessage message) throws AMQException {
+    public boolean matches(AMQMessage message) throws AMQException
+    {
         Object object = evaluate(message);
-        return object!=null && object==Boolean.TRUE;            
+
+        return (object != null) && (object == Boolean.TRUE);
     }
 
 }