package generators;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import ast.CompilationUnit;
import ast.SimpleType;
import models.algebra.Type;
public class Codebase {
private Map<String, CompilationUnit> classes;
private Map<String, Type> componentTypes;
public Codebase() {
classes = new HashMap<>();
componentTypes = new HashMap<>();
}
public Collection<CompilationUnit> getCompilationUnits() {
return classes.values();
}
public CompilationUnit getCompilationUnit(String name) {
return classes.get(name);
}
public Type getComponentType(String name) {
return componentTypes.get(name);
}
public void addCompilationUnit(String name, CompilationUnit compilationUnit) {
classes.put(name, compilationUnit);
Type newType = new Type(name, new SimpleType(name));
componentTypes.put(name, newType);
}
public String toString() {
String code = "";
for (CompilationUnit cu: classes.values()) {
code += cu.toString();
}
return code;
}
}