48 lines
1.7 KiB
Java
48 lines
1.7 KiB
Java
package org.gcube.informationsystem.utils.documentation.model.entities;
|
|
|
|
import java.util.Set;
|
|
|
|
import org.gcube.informationsystem.base.reference.AccessType;
|
|
import org.gcube.informationsystem.types.reference.Type;
|
|
import org.gcube.informationsystem.types.reference.entities.ResourceType;
|
|
import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
|
|
import org.gcube.informationsystem.utils.documentation.knowledge.UsageKnowledge;
|
|
import org.gcube.informationsystem.utils.documentation.rst.table.Table;
|
|
|
|
/**
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public class ResourceDocumentationGenerator extends EntityDocumentationGenerator {
|
|
|
|
public ResourceDocumentationGenerator(Type type) {
|
|
super(type,AccessType.RESOURCE);
|
|
int level = 1;
|
|
if(type.getName().compareTo(requiredType.getName())!=0) {
|
|
++level;
|
|
}
|
|
setLevel(level);
|
|
ResourceType rt = (ResourceType) type;
|
|
UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
|
|
fk.addAll(rt.getFacets());
|
|
UsageKnowledge rk = UsageKnowledge.getResourceKnowledge();
|
|
rk.addAll(rt.getResources());
|
|
}
|
|
|
|
@Override
|
|
protected Table getTable() {
|
|
Table table = new Table();
|
|
table.appendRow(getSourceTargetHeadingRow());
|
|
table.appendRow(getRowCellSpan("**Facets**", requiredNumberOfColumns));
|
|
ResourceType resourceType = (ResourceType) type;
|
|
UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
|
|
Set<LinkedEntity> facets = fk.getUsage(resourceType.getName());
|
|
addLinkedEntities(table, facets);
|
|
table.appendRow(getRowCellSpan("**Relations**", requiredNumberOfColumns));
|
|
UsageKnowledge rk = UsageKnowledge.getResourceKnowledge();
|
|
Set<LinkedEntity> resources = rk.getUsage(resourceType.getName());
|
|
addLinkedEntities(table, resources);
|
|
return table;
|
|
}
|
|
|
|
}
|