diff --git a/.classpath b/.classpath index e914f35..8131be0 100644 --- a/.classpath +++ b/.classpath @@ -29,10 +29,5 @@ - - - - - diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/generator/TreeGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/generator/TreeGenerator.java index 40e8ebe..c5b37f3 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/generator/TreeGenerator.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/generator/TreeGenerator.java @@ -71,6 +71,8 @@ public class TreeGenerator extends Generator { protected void writeSectionOnly(Type type, int level) throws Exception { DocumentationGenerator dg = getDocumentationGenerator(type); + dg.setFacetKnowledge(tree.getFacetKnowledge()); + dg.setResourceKnowledge(tree.getResourceKnowledge()); dg.setLevel(level); StringBuffer sb = dg.generateSection(); Files.write(file.toPath(), sb.toString().getBytes(), StandardOpenOption.APPEND); @@ -98,19 +100,25 @@ public class TreeGenerator extends Generator { public void generate() throws Exception { File is = getFile(IS_MODEL_FILENAME, true); - File file = null; + + for(AccessType at : accessTypes) { Type type = TypeMapper.createTypeDefinition(at.getTypeClass()); writeTypeToFile(type, is); - + if(at==AccessType.PROPERTY) { + for(Class clz : isModelProperties) { + Type t = TypeMapper.createTypeDefinition(clz); + writeTypeToFile(t, is, 1); + } + } + } + + File file = null; + for(AccessType at : accessTypes) { switch (at) { case PROPERTY: file = getFile(PROPERTIES_FILENAME, true); - for(Class clz : isModelProperties) { - Type t = TypeMapper.createTypeDefinition(clz); - writeTypeToFile(t, is, 1); - } break; case ENTITY: diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/Tree.java b/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/Tree.java index 04d13e2..1184390 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/Tree.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/Tree.java @@ -17,11 +17,23 @@ public class Tree { private boolean allowMultipleInheritance; private HashMap locate = new HashMap(); + private UsageKnowledge facetKnowledge; + private UsageKnowledge resourceKnowledge; public Tree(Type head) { this.root = new Node(head); this.locate.put(head.getName(), root); this.allowMultipleInheritance = false; + this.facetKnowledge = new UsageKnowledge(); + this.resourceKnowledge = new UsageKnowledge(); + } + + public UsageKnowledge getFacetKnowledge() { + return facetKnowledge; + } + + public UsageKnowledge getResourceKnowledge() { + return resourceKnowledge; } public void setAllowMultipleInheritance(boolean allowMultipleInheritance) { @@ -33,10 +45,8 @@ public class Tree { return; } ResourceType rt = (ResourceType) type; - UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); - fk.addAll(rt.getFacets()); - UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); - rk.addAll(rt.getResources()); + facetKnowledge.addAll(rt.getFacets()); + resourceKnowledge.addAll(rt.getResources()); } public void addNode(Type type) { diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/UsageKnowledge.java b/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/UsageKnowledge.java index 0ef1806..d9b135c 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/UsageKnowledge.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/knowledge/UsageKnowledge.java @@ -13,27 +13,9 @@ import org.gcube.informationsystem.types.reference.properties.LinkedEntity; */ public class UsageKnowledge { - private static UsageKnowledge facetKnowledge; - private static UsageKnowledge resourceKnowledge; - - public static UsageKnowledge getFacetKnowledge() { - if(UsageKnowledge.facetKnowledge==null) { - UsageKnowledge.facetKnowledge = new UsageKnowledge(); - } - return UsageKnowledge.facetKnowledge; - } - - public static UsageKnowledge getResourceKnowledge() { - if(UsageKnowledge.resourceKnowledge==null) { - UsageKnowledge.resourceKnowledge = new UsageKnowledge(); - } - return UsageKnowledge.resourceKnowledge; - } - - protected Map> map; - private UsageKnowledge(){ + public UsageKnowledge(){ this.map = new LinkedHashMap<>(); } diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/model/DocumentationGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/model/DocumentationGenerator.java index 93c54a7..f582749 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/model/DocumentationGenerator.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/model/DocumentationGenerator.java @@ -9,6 +9,7 @@ import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; +import org.gcube.informationsystem.utils.documentation.knowledge.UsageKnowledge; import org.gcube.informationsystem.utils.documentation.rst.Section; import org.gcube.informationsystem.utils.documentation.rst.Section.SectionType; import org.gcube.informationsystem.utils.documentation.rst.table.Cell; @@ -47,6 +48,9 @@ public abstract class DocumentationGenerator { protected int offsetLevel; protected int level; + protected UsageKnowledge facetKnowledge; + protected UsageKnowledge resourceKnowledge; + protected DocumentationGenerator(Type type, AccessType requiredType) { this.type = type; this.requiredType = requiredType; @@ -57,6 +61,8 @@ public abstract class DocumentationGenerator { this.requiredNumberOfColumns = DEFAULT_NUMBER_OF_COLUMNS; this.superClassToBeExcluded = null; this.offsetLevel = DocumentationGenerator.defaultOffsetLevel; + this.facetKnowledge = new UsageKnowledge(); + this.resourceKnowledge = new UsageKnowledge(); } public void setLevel(int level) { @@ -66,6 +72,15 @@ public abstract class DocumentationGenerator { public void setOffsetLevel(int offsetLevel) { this.offsetLevel = offsetLevel; } + + public void setFacetKnowledge(UsageKnowledge facetKnowledge) { + this.facetKnowledge = facetKnowledge; + } + + public void setResourceKnowledge(UsageKnowledge resourceKnowledge) { + this.resourceKnowledge = resourceKnowledge; + } + protected Row getPropertyFieldsBoldRow() { Row row = new Row(RowType.NORMAL); Cell name = new Cell(); diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/FacetDocumentationGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/FacetDocumentationGenerator.java index 2e4faca..6301c27 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/FacetDocumentationGenerator.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/FacetDocumentationGenerator.java @@ -6,7 +6,6 @@ import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; -import org.gcube.informationsystem.utils.documentation.knowledge.UsageKnowledge; import org.gcube.informationsystem.utils.documentation.rst.table.Table; /** @@ -33,8 +32,7 @@ public class FacetDocumentationGenerator extends EntityDocumentationGenerator { table.appendRow(getKnownUsageBoldRow()); table.appendRow(getSourceTargetBoldRow()); - UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); - Set usage = fk.getUsage(type.getName()); + Set usage = facetKnowledge.getUsage(type.getName()); addLinkedEntities(table, usage, NO_SPECIFIC_KNOWN_USAGE); return table; diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/ResourceDocumentationGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/ResourceDocumentationGenerator.java index b0f3ba0..918790f 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/ResourceDocumentationGenerator.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/model/entities/ResourceDocumentationGenerator.java @@ -6,7 +6,6 @@ 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; /** @@ -34,12 +33,10 @@ public class ResourceDocumentationGenerator extends EntityDocumentationGenerator table.appendRow(getSourceTargetHeadingRow()); table.appendRow(getRowCellSpan(FACETS_TABLE_HEADING, requiredNumberOfColumns)); ResourceType resourceType = (ResourceType) type; - UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); - Set facets = fk.getUsage(resourceType.getName()); + Set facets = facetKnowledge.getUsage(resourceType.getName()); addLinkedEntities(table, facets, NO_SPECIFIC_FACETS); table.appendRow(getRowCellSpan(RESOURCE_RELATIONS_TABLE_HEADING, requiredNumberOfColumns)); - UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); - Set resources = rk.getUsage(resourceType.getName()); + Set resources = resourceKnowledge.getUsage(resourceType.getName()); addLinkedEntities(table, resources, NO_SPECIFIC_RESOURCE_RELATIONS); return table; } diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/ConsistsOfDocumentationGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/ConsistsOfDocumentationGenerator.java index d8cd1dc..2abbbac 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/ConsistsOfDocumentationGenerator.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/ConsistsOfDocumentationGenerator.java @@ -5,7 +5,6 @@ import java.util.Set; import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.types.reference.Type; 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; /** @@ -28,8 +27,7 @@ public class ConsistsOfDocumentationGenerator extends RelationDocumentationGener table.appendRow(getKnownUsageBoldRow()); table.appendRow(getSourceTargetBoldRow()); - UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); - Set facets = fk.getUsage(type.getName()); + Set facets = facetKnowledge.getUsage(type.getName()); addLinkedEntities(table, facets, NO_SPECIFIC_KNOWN_USAGE); return table; diff --git a/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/IsRelatedToDocumentationGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/IsRelatedToDocumentationGenerator.java index d9c6603..0f8e900 100644 --- a/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/IsRelatedToDocumentationGenerator.java +++ b/src/main/java/org/gcube/informationsystem/utils/documentation/model/relations/IsRelatedToDocumentationGenerator.java @@ -5,7 +5,6 @@ import java.util.Set; import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.types.reference.Type; 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; /** @@ -28,8 +27,7 @@ public class IsRelatedToDocumentationGenerator extends RelationDocumentationGene table.appendRow(getKnownUsageBoldRow()); table.appendRow(getSourceTargetBoldRow()); - UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); - Set resources = rk.getUsage(type.getName()); + Set resources = resourceKnowledge.getUsage(type.getName()); addLinkedEntities(table, resources, NO_SPECIFIC_KNOWN_USAGE); return table;