information-system-model/src/main/java/org/gcube/informationsystem/discovery/knowledge/AddElementToTreeAction.java

64 lines
1.7 KiB
Java
Raw Normal View History

2023-02-03 19:13:04 +01:00
/**
*
*/
2023-10-26 17:26:24 +02:00
package org.gcube.informationsystem.discovery.knowledge;
2023-02-03 19:13:04 +01:00
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.discovery.DiscoveredElementAction;
2023-02-07 15:15:22 +01:00
import org.gcube.informationsystem.model.reference.entities.Resource;
2023-02-06 18:03:47 +01:00
import org.gcube.informationsystem.tree.Tree;
import org.gcube.informationsystem.types.TypeMapper;
import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.entities.ResourceType;
2023-02-03 19:13:04 +01:00
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class AddElementToTreeAction implements DiscoveredElementAction<Element> {
protected Tree<Class<Element>> tree;
2023-02-07 15:15:22 +01:00
protected UsageKnowledge facetKnowledge;
protected UsageKnowledge resourceKnowledge;
public UsageKnowledge getFacetKnowledge() {
return facetKnowledge;
}
public void setFacetKnowledge(UsageKnowledge facetKnowledge) {
this.facetKnowledge = facetKnowledge;
}
public UsageKnowledge getResourceKnowledge() {
return resourceKnowledge;
}
public void setResourceKnowledge(UsageKnowledge resourceKnowledge) {
this.resourceKnowledge = resourceKnowledge;
}
2023-02-03 19:13:04 +01:00
public AddElementToTreeAction(Tree<Class<Element>> tree) {
this.tree = tree;
}
@Override
public void analizeElement(Class<Element> e) throws Exception {
tree.addNode(e);
2023-02-07 15:15:22 +01:00
createUsageKnowledge(e);
}
2023-02-07 15:15:22 +01:00
protected void createUsageKnowledge(Class<Element> e) {
if (e.isAssignableFrom(Resource.class)) {
return;
}
2023-02-07 15:15:22 +01:00
if(facetKnowledge!=null && resourceKnowledge!=null) {
Type type = TypeMapper.createTypeDefinition(e);
ResourceType rt = (ResourceType) type;
facetKnowledge.addAll(rt.getFacets());
resourceKnowledge.addAll(rt.getResources());
}
2023-02-03 19:13:04 +01:00
}
}