package models.formulas;
import java.util.Set;
import java.util.TreeSet;
import lombok.Getter;
import models.terms.Dependency;
import models.terms.EvaluatableTerm;
import models.terms.RDLTerm;
@Getter
public class DependencyFormula extends Formula {
private Dependency dependency;
public DependencyFormula(Dependency dependency) {
this.dependency = dependency;
}
public DependencyFormula(RDLTerm dependingTerm, Set<EvaluatableTerm> dependedTerms) {
this.dependency = new Dependency(dependingTerm, new TreeSet<>(dependedTerms));
}
public DependencyFormula(RDLTerm dependingTerm, EvaluatableTerm ...dependedTerms) {
this.dependency = new Dependency(dependingTerm, dependedTerms);
}
@Override
public String toString() {
return dependency.toString();
}
@Override
public boolean equals(Object another) {
if(! (another instanceof DependencyFormula)) {
return false;
}
DependencyFormula anotherFormula = (DependencyFormula) another;
return dependency.equals(anotherFormula.getDependency());
}
@Override
public int hashCode() {
return ("DF" + toString()).hashCode();
}
}