package com.revolsys.record.query; import com.revolsys.datatype.DataType; import com.revolsys.datatype.DataTypes; import com.revolsys.record.schema.RecordStore; public abstract class BinaryArithmatic extends AbstractBinaryQueryValue { private final String operator; public BinaryArithmatic(final QueryValue left, final String operator, final QueryValue right) { super(left, right); this.operator = operator; } public BinaryArithmatic(final String name, final String operator, final Object value) { this(new Column(name), operator, new Value(value)); } @Override public void appendDefaultSql(final Query query, final RecordStore recordStore, final StringBuilder buffer) { appendLeft(buffer, query, recordStore); buffer.append(this.operator); appendRight(buffer, query, recordStore); } @Override public BinaryArithmatic clone() { return (BinaryArithmatic)super.clone(); } @Override public boolean equals(final Object obj) { if (obj instanceof BinaryArithmatic) { final BinaryArithmatic condition = (BinaryArithmatic)obj; if (DataType.equal(condition.getOperator(), this.getOperator())) { return super.equals(condition); } } return false; } public String getOperator() { return this.operator; } @Override public String toString() { final Object left = getLeft(); final Object right = getRight(); return DataTypes.toString(left) + " " + this.operator + " " + DataTypes.toString(right); } }