package com.revolsys.record.query; import com.revolsys.datatype.DataType; import com.revolsys.datatype.DataTypes; import com.revolsys.record.schema.RecordStore; public class BinaryCondition extends AbstractBinaryQueryValue implements Condition { private final String operator; public BinaryCondition(final QueryValue left, final String operator, final QueryValue right) { super(left, right); this.operator = operator; } public BinaryCondition(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 BinaryCondition clone() { final BinaryCondition clone = (BinaryCondition)super.clone(); return clone; } @Override public boolean equals(final Object obj) { if (obj instanceof BinaryCondition) { final BinaryCondition condition = (BinaryCondition)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 value = getLeft(); final Object value1 = getRight(); return DataTypes.toString(value) + " " + this.operator + " " + DataTypes.toString(value1); } }