package inference.equivalence;
import lombok.Getter;
import models.formulas.EquationFormula;
import models.terms.RDLTerm;
@Getter
public class SemanticEquivalenceRelation {
private RDLTerm leftSideHand;
private RDLTerm rightSideHand;
private int order;
public SemanticEquivalenceRelation(RDLTerm lsh, RDLTerm rsh, int order) {
leftSideHand = lsh;
rightSideHand = rsh;
this.order = order;
}
public SemanticEquivalenceRelation(EquationFormula formula, int order) {
leftSideHand = formula.getLeftSideHand();
rightSideHand = formula.getRightSideHand();
this.order = order;
}
@Override
public String toString() {
return leftSideHand.toString() + " =(" + order + ")= " + rightSideHand.toString();
}
@Override
public boolean equals(Object another) {
if (! (another instanceof SemanticEquivalenceRelation)) {
return false;
}
SemanticEquivalenceRelation relation = (SemanticEquivalenceRelation) another;
return leftSideHand.equals(relation.getLeftSideHand()) && rightSideHand.equals(relation.getRightSideHand());
}
@Override
public int hashCode() {
return toString().hashCode();
}
}