information-system-model-do.../src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/TypesKnowledge.java

46 lines
1.0 KiB
Java

package org.gcube.informationsystem.utils.documentation.knowledge;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.gcube.informationsystem.types.reference.Type;
public class TypesKnowledge<T extends Type> {
protected Map<String, T> typeByName;
protected Map<Integer, Set<T>> typesByLevels;
protected Map<String, Integer> levelOfTypes;
protected Map<String, Set<String>> children;
public TypesKnowledge() {
this.typeByName = new HashMap<>();
this.typesByLevels = new HashMap<>();
this.levelOfTypes = new HashMap<>();
this.children = new HashMap<>();
}
public void addType(T type) {
typeByName.put(type.getName(), type);
Set<String> superClasses = type.getSuperClasses();
for(String superClass : superClasses) {
}
}
public Set<T> getTypesByLevel(int level) {
return typesByLevels.get(level);
}
public int getTypeLevel(Type type) {
return getTypeLevel(type.getName());
}
public int getTypeLevel(String typeName) {
return levelOfTypes.get(typeName);
}
}