45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.informationsystem.types.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 AddTypeToTreeAction implements DiscoveredElementAction<Element> {
|
|
|
|
protected Tree<Type> tree;
|
|
|
|
public AddTypeToTreeAction(Tree<Type> tree) {
|
|
this.tree = tree;
|
|
}
|
|
|
|
@Override
|
|
public void analizeElement(Class<Element> e) throws Exception {
|
|
Type type = TypeMapper.createTypeDefinition(e);
|
|
tree.addNode(type);
|
|
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());
|
|
}
|
|
|
|
}
|