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 facets = fk.getUsage(resourceType.getName()); addLinkedEntities(table, facets); table.appendRow(getRowCellSpan("**Relations**", requiredNumberOfColumns)); UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); Set resources = rk.getUsage(resourceType.getName()); addLinkedEntities(table, resources); return table; } }