package deadlock.analyser.detection;
import java.util.HashMap;
import java.util.Map;
import deadlock.analyser.factory.GroupName;
//import com.gzoumix.semisolver.term.TermVariable;
public class VarSubstitution {
private Map<GroupName,GroupName> data;
public VarSubstitution(){
this.data = new HashMap<GroupName,GroupName>();
}
//substitute v1 with v2
public void addSub(GroupName v1, GroupName v2){
if(v1.equals(v2)) return;
this.data.put(v1, v2);
}
public void addSub(HashMap<GroupName,GroupName> map2){
this.data.putAll(map2);
}
public void addSub(VarSubstitution s){
this.data.putAll(s.getMap());
}
public GroupName apply(GroupName v){
GroupName tv = data.get(v);
if(tv == null) return v;
else return tv;
}
public Map<GroupName,GroupName> getMap(){
return this.data;
}
public String toString(){
String res = "";
for(GroupName v : data.keySet())
res += "[" + data.get(v).toString() + "/" + v.toString() +"] ";
return res;
}
}