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