package org.fugazi.ql.type_checker.dependency;
import org.fugazi.ql.ast.expression.literal.ID;
import java.util.*;
public class DependencyManager {
private final Map<ID, List<ID>> dependecies;
public DependencyManager() {
this.dependecies = new HashMap<>();
}
public Set<ID> getIds() {
return this.dependecies.keySet();
}
public List<ID> getIdDependencies(ID id) {
return this.dependecies.get(id);
}
public List<String> getIdDependencyNames(ID id) {
List<String> names = new ArrayList<>();
if (this.dependecies.get(id) != null) {
for (ID dependency : this.dependecies.get(id)) {
names.add(dependency.getName());
}
}
return names;
}
public void addIdDependenant(ID id, ID dependant) {
List<ID> dependandtsList = this.dependecies.get(id);
if (dependandtsList == null) {
dependandtsList = new ArrayList<>();
}
dependandtsList.add(dependant);
this.dependecies.put(id, dependandtsList);
}
public String toString() {
String returnString = "";
for (ID dependee : this.dependecies.keySet()) {
returnString += "\n" + dependee.toString()
+ this.dependecies.get(dependee).toString();
}
return returnString;
}
}