1 21 package com.db4o.nativequery.expr; 22 23 import com.db4o.nativequery.expr.cmp.ComparisonOperand; 24 import com.db4o.nativequery.expr.cmp.ComparisonOperator; 25 import com.db4o.nativequery.expr.cmp.FieldValue; 26 27 public class ComparisonExpression implements Expression { 28 private FieldValue _left; 29 private ComparisonOperand _right; 30 private ComparisonOperator _op; 31 32 public ComparisonExpression(FieldValue left, ComparisonOperand right,ComparisonOperator op) { 33 if(left==null||right==null||op==null) { 34 throw new NullPointerException (); 35 } 36 this._left = left; 37 this._right = right; 38 this._op = op; 39 } 40 41 public FieldValue left() { 42 return _left; 43 } 44 45 public ComparisonOperand right() { 46 return _right; 47 } 48 49 public ComparisonOperator op() { 50 return _op; 51 } 52 53 public String toString() { 54 return _left+" "+_op+" "+_right; 55 } 56 57 public boolean equals(Object other) { 58 if (this == other) { 59 return true; 60 } 61 if (other == null || getClass() != other.getClass()) { 62 return false; 63 } 64 ComparisonExpression casted = (ComparisonExpression) other; 65 return _left.equals(casted._left)&&_right.equals(casted._right)&&_op.equals(casted._op); 66 } 67 68 public int hashCode() { 69 return (_left.hashCode()*29+_right.hashCode())*29+_op.hashCode(); 70 } 71 72 public void accept(ExpressionVisitor visitor) { 73 visitor.visit(this); 74 } 75 } 76 | Popular Tags |