Reorganized code

This commit is contained in:
Luca Frosini 2023-02-07 14:34:44 +01:00
parent 195a3af39b
commit e43bb24b2d
8 changed files with 53 additions and 27 deletions

View File

@ -6,6 +6,8 @@ import java.nio.file.Files;
import java.nio.file.StandardOpenOption; import java.nio.file.StandardOpenOption;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator; import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator;
import org.gcube.informationsystem.utils.documentation.model.entities.EntityDocumentationGenerator; import org.gcube.informationsystem.utils.documentation.model.entities.EntityDocumentationGenerator;
@ -25,8 +27,10 @@ public class Generator {
private static final Logger logger = LoggerFactory.getLogger(Generator.class); private static final Logger logger = LoggerFactory.getLogger(Generator.class);
protected ModelKnowledge modelKnowledge;
public Generator() { public Generator() {
this.modelKnowledge = new ModelKnowledge();
} }
public Class<? extends DocumentationGenerator> getDocumentationGeneratorClass(AccessType accessType) public Class<? extends DocumentationGenerator> getDocumentationGeneratorClass(AccessType accessType)
@ -108,6 +112,10 @@ public class Generator {
default: default:
throw new Exception("I'm not developed to manage the " + AccessType.class.getSimpleName() + " " + type.getName()); throw new Exception("I'm not developed to manage the " + AccessType.class.getSimpleName() + " " + type.getName());
} }
UsageKnowledge facetKnowledge = modelKnowledge.getUsageKnowledge(AccessType.FACET);
dg.setFacetKnowledge(facetKnowledge);
UsageKnowledge resourceKnowledge = modelKnowledge.getUsageKnowledge(AccessType.RESOURCE);
dg.setResourceKnowledge(resourceKnowledge);
return dg; return dg;
} }

View File

@ -2,13 +2,11 @@ package org.gcube.informationsystem.utils.documentation.generator;
import java.io.File; import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.ServiceLoader;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.discovery.ISModelRegistrationProvider; import org.gcube.informationsystem.discovery.ISModelRegistrationProvider;
import org.gcube.informationsystem.discovery.RegistrationProvider; import org.gcube.informationsystem.discovery.RegistrationProvider;
import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge;
import org.gcube.informationsystem.tree.Node; import org.gcube.informationsystem.tree.Node;
import org.gcube.informationsystem.tree.NodeElaborator; import org.gcube.informationsystem.tree.NodeElaborator;
import org.gcube.informationsystem.tree.Tree; import org.gcube.informationsystem.tree.Tree;
@ -29,7 +27,11 @@ public class TreeGenerator extends Generator {
public static final String ENTITIES_FILENAME = "entities.rst"; public static final String ENTITIES_FILENAME = "entities.rst";
public static final String RELATIONS_FILENAME = "relations.rst"; public static final String RELATIONS_FILENAME = "relations.rst";
public TreeGenerator() { protected RegistrationProvider rp;
public TreeGenerator(RegistrationProvider rp) {
super();
this.rp = rp;
} }
public void elaborateTree(final AccessType at, Tree<Class<Element>> tree, File file, RegistrationProvider rp) throws Exception { public void elaborateTree(final AccessType at, Tree<Class<Element>> tree, File file, RegistrationProvider rp) throws Exception {
@ -66,7 +68,6 @@ public class TreeGenerator extends Generator {
public void generate() throws Exception { public void generate() throws Exception {
ModelKnowledge modelKnowledge = ModelKnowledge.getInstance();
modelKnowledge.createKnowledge(); modelKnowledge.createKnowledge();
File is = getFile(IS_MODEL_FILENAME, true); File is = getFile(IS_MODEL_FILENAME, true);
@ -101,12 +102,8 @@ public class TreeGenerator extends Generator {
Tree<Class<Element>> tree = modelKnowledge.getClassesTree(at); Tree<Class<Element>> tree = modelKnowledge.getClassesTree(at);
ServiceLoader<? extends RegistrationProvider> registrationProviders = ServiceLoader if(!(rp instanceof ISModelRegistrationProvider)) {
.load(RegistrationProvider.class); elaborateTree(at, tree, file, rp);
for(RegistrationProvider rp : registrationProviders) {
if(!(rp instanceof ISModelRegistrationProvider)) {
elaborateTree(at, tree, file, rp);
}
} }
} }

View File

@ -6,6 +6,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition;
@ -47,6 +48,25 @@ public abstract class DocumentationGenerator {
protected int offsetLevel; protected int offsetLevel;
protected int level; protected int level;
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;
}
protected DocumentationGenerator(Type type, AccessType requiredType) { protected DocumentationGenerator(Type type, AccessType requiredType) {
this.type = type; this.type = type;
this.requiredType = requiredType; this.requiredType = requiredType;

View File

@ -3,7 +3,6 @@ package org.gcube.informationsystem.utils.documentation.model.entities;
import java.util.Set; import java.util.Set;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition;
@ -33,8 +32,7 @@ public class FacetDocumentationGenerator extends EntityDocumentationGenerator {
table.appendRow(getKnownUsageBoldRow()); table.appendRow(getKnownUsageBoldRow());
table.appendRow(getSourceTargetBoldRow()); table.appendRow(getSourceTargetBoldRow());
UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); Set<LinkedEntity> usage = facetKnowledge.getUsage(type.getName());
Set<LinkedEntity> usage = fk.getUsage(type.getName());
addLinkedEntities(table, usage, NO_SPECIFIC_KNOWN_USAGE); addLinkedEntities(table, usage, NO_SPECIFIC_KNOWN_USAGE);
return table; return table;

View File

@ -3,7 +3,6 @@ package org.gcube.informationsystem.utils.documentation.model.entities;
import java.util.Set; import java.util.Set;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.entities.ResourceType; import org.gcube.informationsystem.types.reference.entities.ResourceType;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
@ -34,12 +33,12 @@ public class ResourceDocumentationGenerator extends EntityDocumentationGenerator
table.appendRow(getSourceTargetHeadingRow()); table.appendRow(getSourceTargetHeadingRow());
table.appendRow(getRowCellSpan(FACETS_TABLE_HEADING, requiredNumberOfColumns)); table.appendRow(getRowCellSpan(FACETS_TABLE_HEADING, requiredNumberOfColumns));
ResourceType resourceType = (ResourceType) type; ResourceType resourceType = (ResourceType) type;
UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
Set<LinkedEntity> facets = fk.getUsage(resourceType.getName()); Set<LinkedEntity> facets = facetKnowledge.getUsage(resourceType.getName());
addLinkedEntities(table, facets, NO_SPECIFIC_FACETS); addLinkedEntities(table, facets, NO_SPECIFIC_FACETS);
table.appendRow(getRowCellSpan(RESOURCE_RELATIONS_TABLE_HEADING, requiredNumberOfColumns)); table.appendRow(getRowCellSpan(RESOURCE_RELATIONS_TABLE_HEADING, requiredNumberOfColumns));
UsageKnowledge rk = UsageKnowledge.getResourceKnowledge();
Set<LinkedEntity> resources = rk.getUsage(resourceType.getName()); Set<LinkedEntity> resources = resourceKnowledge.getUsage(resourceType.getName());
addLinkedEntities(table, resources, NO_SPECIFIC_RESOURCE_RELATIONS); addLinkedEntities(table, resources, NO_SPECIFIC_RESOURCE_RELATIONS);
return table; return table;
} }

View File

@ -3,7 +3,6 @@ package org.gcube.informationsystem.utils.documentation.model.relations;
import java.util.Set; import java.util.Set;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
import org.gcube.informationsystem.utils.documentation.rst.table.Table; import org.gcube.informationsystem.utils.documentation.rst.table.Table;
@ -28,8 +27,8 @@ public class ConsistsOfDocumentationGenerator extends RelationDocumentationGener
table.appendRow(getKnownUsageBoldRow()); table.appendRow(getKnownUsageBoldRow());
table.appendRow(getSourceTargetBoldRow()); table.appendRow(getSourceTargetBoldRow());
UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
Set<LinkedEntity> facets = fk.getUsage(type.getName()); Set<LinkedEntity> facets = facetKnowledge.getUsage(type.getName());
addLinkedEntities(table, facets, NO_SPECIFIC_KNOWN_USAGE); addLinkedEntities(table, facets, NO_SPECIFIC_KNOWN_USAGE);
return table; return table;

View File

@ -3,7 +3,6 @@ package org.gcube.informationsystem.utils.documentation.model.relations;
import java.util.Set; import java.util.Set;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
import org.gcube.informationsystem.utils.documentation.rst.table.Table; import org.gcube.informationsystem.utils.documentation.rst.table.Table;
@ -28,8 +27,7 @@ public class IsRelatedToDocumentationGenerator extends RelationDocumentationGene
table.appendRow(getKnownUsageBoldRow()); table.appendRow(getKnownUsageBoldRow());
table.appendRow(getSourceTargetBoldRow()); table.appendRow(getSourceTargetBoldRow());
UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); Set<LinkedEntity> resources = resourceKnowledge.getUsage(type.getName());
Set<LinkedEntity> resources = rk.getUsage(type.getName());
addLinkedEntities(table, resources, NO_SPECIFIC_KNOWN_USAGE); addLinkedEntities(table, resources, NO_SPECIFIC_KNOWN_USAGE);
return table; return table;

View File

@ -1,5 +1,8 @@
package org.gcube.informationsystem.utils.documentation; package org.gcube.informationsystem.utils.documentation;
import java.util.ServiceLoader;
import org.gcube.informationsystem.discovery.RegistrationProvider;
import org.gcube.informationsystem.utils.documentation.generator.TreeGenerator; import org.gcube.informationsystem.utils.documentation.generator.TreeGenerator;
import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator; import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator;
import org.junit.Test; import org.junit.Test;
@ -12,8 +15,12 @@ public class GenerateTest {
@Test @Test
public void testDocGeneration() throws Exception { public void testDocGeneration() throws Exception {
DocumentationGenerator.setDefaultOffsetLevel(2); DocumentationGenerator.setDefaultOffsetLevel(2);
TreeGenerator treeGenerator = new TreeGenerator(); ServiceLoader<? extends RegistrationProvider> registrationProviders = ServiceLoader
treeGenerator.generate(); .load(RegistrationProvider.class);
for(RegistrationProvider rp : registrationProviders) {
TreeGenerator treeGenerator = new TreeGenerator(rp);
treeGenerator.generate();
}
} }
} }