package com.form.language.memory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.form.language.ast.expression.Expression;
import com.form.language.ast.expression.variable.Reference;
import com.form.language.ast.expression.variable.ReferenceCollection;
public class QuestionReferences {
private Map<String, List<Expression>> referenceMap;
public QuestionReferences() {
this.referenceMap = new HashMap<String, List<Expression>>();
}
public List<Expression> get(String key) {
if (referenceMap.containsKey(key)) {
return referenceMap.get(key);
} else {
return new ArrayList<Expression>();
}
}
public void put(String idName, List<Expression> dependencies) {
referenceMap.put(idName, dependencies);
}
// Adds the dependency of value on the given keys to all of the keys
public void putAll(ReferenceCollection keyCollection, Expression value) {
for(Reference l : keyCollection){
List<Expression> tempList;
if (referenceMap.containsKey(l.getName())) {
tempList = referenceMap.get(l.getName());
} else {
tempList = new ArrayList<Expression>();
}
tempList.add(value);
referenceMap.put(l.getName(), tempList);
}
}
}