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

58 lines
1.4 KiB
Java
Raw Normal View History

2023-01-20 16:44:56 +01:00
package org.gcube.informationsystem.utils.documentation.knowledge;
2023-01-20 17:49:41 +01:00
import java.util.Collection;
2023-01-20 16:44:56 +01:00
import java.util.LinkedHashMap;
import java.util.Map;
2023-01-20 17:49:41 +01:00
import java.util.Set;
import java.util.TreeSet;
2023-01-20 16:44:56 +01:00
import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
2023-01-20 17:49:41 +01:00
public class FacetKnowledge {
2023-01-20 16:44:56 +01:00
2023-01-20 17:49:41 +01:00
private static FacetKnowledge singleton;
2023-01-20 16:44:56 +01:00
2023-01-20 17:49:41 +01:00
public static FacetKnowledge getInstace() {
if(FacetKnowledge.singleton==null) {
FacetKnowledge.singleton = new FacetKnowledge();
2023-01-20 16:44:56 +01:00
}
2023-01-20 17:49:41 +01:00
return FacetKnowledge.singleton;
2023-01-20 16:44:56 +01:00
}
2023-01-20 17:49:41 +01:00
protected Map<String, Set<LinkedEntity>> map;
2023-01-20 16:44:56 +01:00
2023-01-20 17:49:41 +01:00
private FacetKnowledge(){
2023-01-20 16:44:56 +01:00
this.map = new LinkedHashMap<>();
}
protected void add(String typeName, LinkedEntity linkedEntity) {
2023-01-20 17:49:41 +01:00
Set<LinkedEntity> list = map.get(typeName);
2023-01-20 16:44:56 +01:00
if(list==null) {
2023-01-20 17:49:41 +01:00
list = new TreeSet<>();
2023-01-20 16:44:56 +01:00
map.put(typeName, list);
}
list.add(linkedEntity);
}
public void add(LinkedEntity linkedEntity) {
String source = linkedEntity.getSource();
add(source, linkedEntity);
String relation = linkedEntity.getRelation();
add(relation, linkedEntity);
String target = linkedEntity.getTarget();
add(target, linkedEntity);
}
2023-01-20 17:49:41 +01:00
public void addAll(Collection<LinkedEntity> linkedEntities) {
2023-01-20 16:44:56 +01:00
for(LinkedEntity le : linkedEntities) {
add(le);
}
}
2023-01-20 17:49:41 +01:00
public Set<LinkedEntity> getUsage(String typeName){
Set<LinkedEntity> list = map.get(typeName);
2023-01-20 16:44:56 +01:00
return list;
}
}