package ql.semantics;
import ql.ast.statement.Question;
import ql.ast.type.Type;
import java.util.*;
/**
* Created by bore on 13/02/15.
*/
public class Questions implements Iterable<String>
{
private final Map<String, List<Question>> questions;
public Questions()
{
this.questions = new HashMap<>();
}
public void put(Question q)
{
String id = q.getId();
List<Question> list = new ArrayList<>();
if (this.questions.containsKey(id))
{
list = this.questions.get(id);
}
list.add(q);
this.questions.put(id, list);
}
public boolean contains(String id)
{
return this.questions.containsKey(id);
}
public List<Question> getQuestionsById(String id)
{
return this.questions.get(id);
}
public Type getType(String id)
{
Question q = this.findById(id);
return q.getType();
}
@Override
public Iterator<String> iterator()
{
return this.questions.keySet().iterator();
}
private Question findById(String id)
{
return this.questions.get(id).get(0);
}
}