package deadlock.analyser.generation;
import java.util.Map;
import java.util.HashMap;
import com.gzoumix.semisolver.constraint.Constraint;
import com.gzoumix.semisolver.term.Term;
import deadlock.analyser.factory.MethodContract;
import deadlock.analyser.factory.Contract;
public class ResultInference {
private HashMap<String, MethodContract> methods;
private Constraint constraint;
private Contract mainCP;
private Contract mainCF;
/* Constructor */
public ResultInference(){
this.methods = new HashMap<String, MethodContract>();
this.constraint = null;
this.mainCP = null;
this.mainCF = null;
}
/* Basic Get */
public Map<String, MethodContract> getMethods(){ return this.methods; }
public Constraint getConstraint(){ return this.constraint; }
public Contract getMainContractPresent() { return mainCP; }
public Contract getMainContractFuture() { return mainCF; }
/* Basic Estension */
public void add(Constraint c) {
if(this.constraint == null) { this.constraint = c; }
else if(c != null) { this.constraint.add(c); }
}
public void add(String className, String methodName, MethodContract contract){
this.methods.put(className + "." + methodName, contract);
}
public void add(ResultInference r) {
this.methods.putAll(r.methods);
this.add(r.constraint);
if(r.getMainContractPresent() != null) {
setMain(r.getMainContractPresent(), r.getMainContractFuture());
}
}
public void setMain(Contract cp, Contract cf) { this.mainCP = cp; this.mainCF = cf; }
}