44 lines
1.2 KiB
Java
44 lines
1.2 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.informationsystem.discovery.knowledge;
|
|
|
|
import org.gcube.informationsystem.base.reference.AccessType;
|
|
import org.gcube.informationsystem.base.reference.Element;
|
|
import org.gcube.informationsystem.discovery.DiscoveredElementAction;
|
|
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;
|
|
|
|
/**
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public class AddElementToTreeAction implements DiscoveredElementAction<Element> {
|
|
|
|
protected Tree<Class<Element>> tree;
|
|
|
|
public AddElementToTreeAction(Tree<Class<Element>> tree) {
|
|
this.tree = tree;
|
|
}
|
|
|
|
@Override
|
|
public void analizeElement(Class<Element> e) throws Exception {
|
|
tree.addNode(e);
|
|
Type type = TypeMapper.createTypeDefinition(e);
|
|
createUsageKnowledge(type);
|
|
}
|
|
|
|
protected void createUsageKnowledge(Type type) {
|
|
if (type.getAccessType() != AccessType.RESOURCE) {
|
|
return;
|
|
}
|
|
ResourceType rt = (ResourceType) type;
|
|
UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
|
|
fk.addAll(rt.getFacets());
|
|
UsageKnowledge rk = UsageKnowledge.getResourceKnowledge();
|
|
rk.addAll(rt.getResources());
|
|
}
|
|
|
|
}
|