From 47fb1cd35bb7a524b03445ae01a8bd009a7bcc3a Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Thu, 26 Jan 2023 18:58:55 +0100 Subject: [PATCH] Restored previuos working solution --- .classpath | 5 +++++ .../generator/TreeGenerator.java | 20 ++++++------------- .../utils/documentation/knowledge/Tree.java | 18 ++++------------- .../knowledge/UsageKnowledge.java | 20 ++++++++++++++++++- .../model/DocumentationGenerator.java | 15 -------------- .../entities/FacetDocumentationGenerator.java | 4 +++- .../ResourceDocumentationGenerator.java | 7 +++++-- .../ConsistsOfDocumentationGenerator.java | 4 +++- .../IsRelatedToDocumentationGenerator.java | 4 +++- 9 files changed, 48 insertions(+), 49 deletions(-) diff --git a/.classpath b/.classpath index 8131be0..e914f35 100644 --- a/.classpath +++ b/.classpath @@ -29,5 +29,10 @@ + + + + + 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 c5b37f3..40e8ebe 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,8 +71,6 @@ 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); @@ -100,25 +98,19 @@ 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 1184390..04d13e2 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,23 +17,11 @@ 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) { @@ -45,8 +33,10 @@ public class Tree { return; } ResourceType rt = (ResourceType) type; - facetKnowledge.addAll(rt.getFacets()); - resourceKnowledge.addAll(rt.getResources()); + UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); + fk.addAll(rt.getFacets()); + UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); + rk.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 d9b135c..0ef1806 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,9 +13,27 @@ 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; - public UsageKnowledge(){ + private 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 f582749..93c54a7 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,7 +9,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.Section; import org.gcube.informationsystem.utils.documentation.rst.Section.SectionType; import org.gcube.informationsystem.utils.documentation.rst.table.Cell; @@ -48,9 +47,6 @@ 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; @@ -61,8 +57,6 @@ 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) { @@ -72,15 +66,6 @@ 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 6301c27..2e4faca 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,6 +6,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.table.Table; /** @@ -32,7 +33,8 @@ public class FacetDocumentationGenerator extends EntityDocumentationGenerator { table.appendRow(getKnownUsageBoldRow()); table.appendRow(getSourceTargetBoldRow()); - Set usage = facetKnowledge.getUsage(type.getName()); + UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); + Set usage = fk.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 918790f..b0f3ba0 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,6 +6,7 @@ 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; /** @@ -33,10 +34,12 @@ public class ResourceDocumentationGenerator extends EntityDocumentationGenerator table.appendRow(getSourceTargetHeadingRow()); table.appendRow(getRowCellSpan(FACETS_TABLE_HEADING, requiredNumberOfColumns)); ResourceType resourceType = (ResourceType) type; - Set facets = facetKnowledge.getUsage(resourceType.getName()); + UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); + Set facets = fk.getUsage(resourceType.getName()); addLinkedEntities(table, facets, NO_SPECIFIC_FACETS); table.appendRow(getRowCellSpan(RESOURCE_RELATIONS_TABLE_HEADING, requiredNumberOfColumns)); - Set resources = resourceKnowledge.getUsage(resourceType.getName()); + UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); + Set resources = rk.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 2abbbac..d8cd1dc 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,6 +5,7 @@ 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; /** @@ -27,7 +28,8 @@ public class ConsistsOfDocumentationGenerator extends RelationDocumentationGener table.appendRow(getKnownUsageBoldRow()); table.appendRow(getSourceTargetBoldRow()); - Set facets = facetKnowledge.getUsage(type.getName()); + UsageKnowledge fk = UsageKnowledge.getFacetKnowledge(); + Set facets = fk.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 0f8e900..d9c6603 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,6 +5,7 @@ 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; /** @@ -27,7 +28,8 @@ public class IsRelatedToDocumentationGenerator extends RelationDocumentationGene table.appendRow(getKnownUsageBoldRow()); table.appendRow(getSourceTargetBoldRow()); - Set resources = resourceKnowledge.getUsage(type.getName()); + UsageKnowledge rk = UsageKnowledge.getResourceKnowledge(); + Set resources = rk.getUsage(type.getName()); addLinkedEntities(table, resources, NO_SPECIFIC_KNOWN_USAGE); return table;