public void compile(TypeSystem aTypeSystem) {
mCompiledNameToLanguageMap.clear();
Iterator it = mTypesAndFeatures.entrySet().iterator();
while (it.hasNext()) {
Map.Entry elem = (Map.Entry) it.next();
TypeOrFeature tof = (TypeOrFeature) elem.getKey();
if (tof.isType()) {
Type t = aTypeSystem.getType(tof.getName());
if (t != null) {
addTypeRecursive(t, aTypeSystem, (HashSet) elem.getValue(), tof.isAllAnnotatorFeatures());
}
} else // feature
{
mCompiledNameToLanguageMap.put(tof.getName(), elem.getValue());
}
}
// TODO: process the set of intersections
}