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/ClassesDiscoveryGenerator.java b/src/main/java/org/gcube/informationsystem/utils/documentation/generator/ClassesDiscoveryGenerator.java
index c5c64d5..e09344b 100644
--- a/src/main/java/org/gcube/informationsystem/utils/documentation/generator/ClassesDiscoveryGenerator.java
+++ b/src/main/java/org/gcube/informationsystem/utils/documentation/generator/ClassesDiscoveryGenerator.java
@@ -54,7 +54,11 @@ public class ClassesDiscoveryGenerator extends Generator {
}
protected void discover(AccessType at, Package[] packages) throws Exception {
- ElementSpecilizationDiscovery discovery = new ElementSpecilizationDiscovery<>(at.getTypeClass());
+ /*
+ * I need to get all types also the types defined in IS Model
+ * to properly support the specilizations if any
+ */
+ ElementSpecilizationDiscovery discovery = new ElementSpecilizationDiscovery<>(at.getTypeClass(), true);
if(Objects.nonNull(packages)) {
Arrays.stream(packages).forEach(p -> discovery.addPackage(p));
}
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 ea3a32d..1265305 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
@@ -73,7 +73,7 @@ public class TreeGenerator extends Generator {
}
public void elaborateTree(final AccessType at, Tree tree, final File file) throws Exception {
- logger.debug("Going to elaborate the following type tree\n{}", tree.toString());
+ logger.info("Going to elaborate the following type tree\n{}", tree.toString());
NodeElaborator documentationNE = new NodeElaborator() {
@@ -131,9 +131,6 @@ public class TreeGenerator extends Generator {
File is = getFile(IS_MODEL_FILENAME, true);
File file = null;
- Tree resourcesTree = types.get(AccessType.RESOURCE);
- createUsageKnowledge(resourcesTree);
-
for(AccessType at : accessTypes) {
Type type = TypeMapper.createTypeDefinition(at.getTypeClass());
writeTypeToFile(type, is);
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 77ac2a9..eed8111 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
@@ -3,7 +3,9 @@ package org.gcube.informationsystem.utils.documentation.knowledge;
import java.util.HashMap;
import java.util.Set;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.reference.Type;
+import org.gcube.informationsystem.types.reference.entities.ResourceType;
/**
* @author Luca Frosini (ISTI - CNR)
@@ -26,20 +28,36 @@ public class Tree {
this.allowMultipleInheritance = allowMultipleInheritance;
}
- public void addNode(Type t) {
- if(root.getType().getName().compareTo(t.getName())==0) {
+ public void createUsageKnowledge(Type type) {
+ if(type.getAccessType() != AccessType.RESOURCE) {
+ return;
+ }
+ ResourceType rt = (ResourceType) type;
+ UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
+ fk.addAll(rt.getFacets());
+ UsageKnowledge rk = UsageKnowledge.getResourceKnowledge();
+ rk.addAll(rt.getResources());
+ }
+
+ public void addNode(Type type) {
+ if(root.getType().getName().compareTo(type.getName())==0) {
// Root has been already added
return;
}
- Set superClasses = t.getSuperClasses();
+
+ createUsageKnowledge(type);
+
+ Set superClasses = type.getSuperClasses();
+
+ String name = type.getName();
for(String superClass : superClasses) {
Node parent = locate.get(superClass);
if(parent==null) {
- throw new RuntimeException("I can find parent Node for " + t.getName() + ". Missing parent is " + superClass);
+ throw new RuntimeException("I can find parent Node for " + name + ". Missing parent is " + superClass);
}
- Node node = new Node(t);
+ Node node = new Node(type);
parent.addChild(node);
- locate.put(t.getName(), node);
+ locate.put(name, node);
if(!allowMultipleInheritance) {
return;
}
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 f22a159..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
@@ -44,12 +44,4 @@ public class ResourceDocumentationGenerator extends EntityDocumentationGenerator
return table;
}
- public void createUsageKnowledge() throws Exception {
- ResourceType rt = (ResourceType) type;
- UsageKnowledge fk = UsageKnowledge.getFacetKnowledge();
- fk.addAll(rt.getFacets());
- UsageKnowledge rk = UsageKnowledge.getResourceKnowledge();
- rk.addAll(rt.getResources());
- }
-
}