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 extends Property> 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 extends Property> 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;