package net.iplantevin.ql.ast.expressions.operators;
import net.iplantevin.ql.ast.LineInfo;
import net.iplantevin.ql.ast.expressions.Expression;
/**
* Parent class of all binary expressions. Has two expressions (left and right).
*
* @author Ivan
*/
public abstract class Binary extends Expression {
private final Expression leftHS;
private final Expression rightHS;
protected Binary(Expression left, Expression right, LineInfo lineInfo) {
super(lineInfo);
leftHS = left;
rightHS = right;
}
public Expression getLeftHS() {
return leftHS;
}
public Expression getRightHS() {
return rightHS;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Binary binary = (Binary) o;
if (!leftHS.equals(binary.getRightHS())) return false;
if (!rightHS.equals(binary.getRightHS())) return false;
return true;
}
@Override
public int hashCode() {
int result = leftHS.hashCode();
result = 31 * result + rightHS.hashCode();
return result;
}
}