View Javadoc

    1   /***
    2    *
    3    * Copyright 2004 Hiram Chirino
    4    *
    5    * Licensed under the Apache License, Version 2.0 (the "License");
    6    * you may not use this file except in compliance with the License.
    7    * You may obtain a copy of the License at
    8    *
    9    * http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   **/
    18  package org.codehaus.activemq.filter;
    19
    20
    21  /***
    22   * An expression which performs an operation on two expression values.
    23   *
    24   * @version $Revision: 1.1 $
    25   */
    26  abstract public class BinaryExpression implements Expression {
    27      protected Expression left;
    28      protected Expression right;
    29
    30      public BinaryExpression(Expression left, Expression right) {
    31          this.left = left;
    32          this.right = right;
    33      }
    34
    35      public Expression getLeft() {
    36          return left;
    37      }
    38
    39      public Expression getRight() {
    40          return right;
    41      }
    42
    43
    44      /***
    45       * @see java.lang.Object#toString()
    46       */
    47      public String toString() {
    48          return "(" + left.toString() + " " + getExpressionSymbol() + " " + right.toString() + ")";
    49      }
    50
    51      /***
    52       * TODO: more efficient hashCode()
    53       *
    54       * @see java.lang.Object#hashCode()
    55       */
    56      public int hashCode() {
    57          return toString().hashCode();
    58      }
    59
    60      /***
    61       * TODO: more efficient hashCode()
    62       *
    63       * @see java.lang.Object#equals(java.lang.Object)
    64       */
    65      public boolean equals(Object o) {
    66
    67          if (o == null || !this.getClass().equals(o.getClass())) {
    68              return false;
    69          }
    70          return toString().equals(o.toString());
    71
    72      }
    73
    74      /***
    75       * Returns the symbol that represents this binary expression.  For example, addition is
    76       * represented by "+"
    77       *
    78       * @return
    79       */
    80      abstract public String getExpressionSymbol();
    81
    82      /***
    83       * @param expression
    84       */
    85      public void setRight(Expression expression) {
    86          right = expression;
    87      }
    88
    89      /***
    90       * @param expression
    91       */
    92      public void setLeft(Expression expression) {
    93          left = expression;
    94      }
    95
    96  }