Newer
Older
RDLProofSystem / src / main / java / models / formulas / DependencyFormula.java
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();
	}
	
}