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()); - } - }