Simplification.java
package edu.udel.cis.vsl.tass.symbolic.ideal.simplify;
import edu.udel.cis.vsl.tass.symbolic.IF.tree.TreeExpressionIF;
import edu.udel.cis.vsl.tass.symbolic.ideal.IdealExpression;
/**
* Represents the result of a simplification operation. The original is some
* tree expression. The result is the result of simplifying the tree expression
* and placing it into canonical form. Success is true if some simplification
* acutally succeeded in making the expression simpler. Equality is completely
* determined by the original expression, because there can be at most one
* simplification operation for each original expression.
*/
public class Simplification {
private TreeExpressionIF original;
private IdealExpression result;
private boolean success;
public Simplification(TreeExpressionIF original, IdealExpression result,
boolean success) {
this.original = original;
this.result = result;
this.success = success;
}
public TreeExpressionIF original() {
return original;
}
public IdealExpression result() {
return result;
}
public boolean success() {
return success;
}
public String toString() {
return "[" + original + ", " + result + ", " + success + "]";
}
public boolean equals(Object object) {
if (object instanceof Simplification) {
Simplification that = (Simplification) object;
return original.equals(that.original);
}
return false;
}
public int hashCode() {
return original.hashCode();
}
}