diff --git a/pom.xml b/pom.xml
index c924b3c..14b7c2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,13 @@
org.slf4j
slf4j-api
+
+
+ org.nuiton.jrst
+ jrst
+ 2.4
+
+
junit
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 ad3c4d7..8bdf5e3 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
@@ -1,7 +1,6 @@
package org.gcube.informationsystem.utils.documentation.generator;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.ServiceLoader;
@@ -24,7 +23,7 @@ public class ClassesDiscoveryGenerator extends Generator {
}
- protected List getPackages(){
+ public List getPackages(){
List packages = new ArrayList();
@@ -38,25 +37,32 @@ public class ClassesDiscoveryGenerator extends Generator {
Class clz = accessType.getTypeClass();
packages.add(clz.getPackage());
}
-
+
+ return packages;
+ }
+
+ public List getExtensionsPackages(){
+ List packages = new ArrayList();
ServiceLoader extends RegistrationProvider> regsitrationProviders = ServiceLoader
.load(RegistrationProvider.class);
for(RegistrationProvider registrationProvider : regsitrationProviders) {
packages.addAll(registrationProvider.getPackagesToRegister());
}
-
return packages;
}
public void generate() throws Exception {
- List pkgs = getPackages();
- generate(pkgs.toArray(new Package[pkgs.size()]));
+ List packages = getPackages();
+ packages.addAll(getExtensionsPackages());
+ generate(packages);
}
- protected void discover(AccessType at, Package[] packages) throws Exception {
+ protected void discover(AccessType at, List packages) throws Exception {
ElementSpecilizationDiscovery discovery = new ElementSpecilizationDiscovery<>(at.getTypeClass(), false);
if(Objects.nonNull(packages)) {
- Arrays.stream(packages).forEach(p -> discovery.addPackage(p));
+ for(Package p : packages) {
+ discovery.addPackage(p);
+ }
}
discovery.discover();
@@ -66,7 +72,7 @@ public class ClassesDiscoveryGenerator extends Generator {
}
}
- protected void generate(Package[] packages) throws Exception {
+ public void generate(List packages) throws Exception {
treeGenerator = new TreeGenerator();
AccessType[] types = new AccessType[] {
AccessType.PROPERTY,
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 4985c2d..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
@@ -30,6 +30,16 @@ public abstract class DocumentationGenerator {
public static final String NO_ADDITIONAL_ATTRIBUTE = "This type does not define any additional attributes.";
public static final String NO_SPECIFIC_KNOWN_USAGE = "No specific known usage for this type.";
+ protected static int defaultOffsetLevel = 0;
+
+ public static int getDefaultOffsetLevel() {
+ return defaultOffsetLevel;
+ }
+
+ public static void setDefaultOffsetLevel(int defaultOffsetLevel) {
+ DocumentationGenerator.defaultOffsetLevel = defaultOffsetLevel;
+ }
+
protected final Type type;
protected final AccessType requiredType;
protected String superClassToBeExcluded;
@@ -46,7 +56,7 @@ public abstract class DocumentationGenerator {
}
this.requiredNumberOfColumns = DEFAULT_NUMBER_OF_COLUMNS;
this.superClassToBeExcluded = null;
- this.offsetLevel = 0;
+ this.offsetLevel = DocumentationGenerator.defaultOffsetLevel;
}
public void setLevel(int level) {
@@ -338,7 +348,7 @@ public abstract class DocumentationGenerator {
Section section = new Section();
int sectionLevel = level+offsetLevel;
SectionType[] sectionTypes = SectionType.values();
- int maxSectionLevel = sectionTypes.length;
+ int maxSectionLevel = sectionTypes.length-1;
sectionLevel = sectionLevel>=maxSectionLevel ? maxSectionLevel : sectionLevel;
SectionType sectionType = SectionType.values()[sectionLevel];
section.setSectionType(sectionType);
diff --git a/src/test/java/org/gcube/informationsystem/utils/documentation/GenerateTest.java b/src/test/java/org/gcube/informationsystem/utils/documentation/GenerateTest.java
index ebe3574..a476263 100644
--- a/src/test/java/org/gcube/informationsystem/utils/documentation/GenerateTest.java
+++ b/src/test/java/org/gcube/informationsystem/utils/documentation/GenerateTest.java
@@ -1,6 +1,7 @@
package org.gcube.informationsystem.utils.documentation;
import org.gcube.informationsystem.utils.documentation.generator.ClassesDiscoveryGenerator;
+import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator;
import org.junit.Test;
/**
@@ -10,7 +11,9 @@ public class GenerateTest {
@Test
public void testDocGeneration() throws Exception {
+ DocumentationGenerator.setDefaultOffsetLevel(2);
ClassesDiscoveryGenerator documentationGenerator = new ClassesDiscoveryGenerator();
documentationGenerator.generate();
}
+
}