information-system-model-do.../src/test/java/org/gcube/informationsystem/utils/documentation/GenerateTest.java

60 lines
2.1 KiB
Java

package org.gcube.informationsystem.utils.documentation;
import java.util.ServiceLoader;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.discovery.ISModelRegistrationProvider;
import org.gcube.informationsystem.discovery.RegistrationProvider;
import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge;
import org.gcube.informationsystem.tree.Tree;
import org.gcube.informationsystem.utils.documentation.generator.TreeGenerator;
import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class GenerateTest {
public static Logger logger = LoggerFactory.getLogger(GenerateTest.class);
@Test
public void testDocGeneration() throws Exception {
DocumentationGenerator.setDefaultOffsetLevel(2);
ServiceLoader<? extends RegistrationProvider> registrationProviders = ServiceLoader
.load(RegistrationProvider.class);
for(RegistrationProvider rp : registrationProviders) {
TreeGenerator treeGenerator = new TreeGenerator(rp);
if(rp instanceof ISModelRegistrationProvider) {
treeGenerator.setSplittedFiles(false);
treeGenerator.setDesiredFileName("is-model");
}else {
treeGenerator.setSplittedFiles(true);
}
treeGenerator.generate();
logger.info("-------- Analising Discovery for model '{}'", rp.getModelName());
ModelKnowledge modelKnowledge = treeGenerator.getModelKnowledge();
ResultAnaliser ra = new ResultAnaliser(rp);
modelKnowledge.addDiscoveredElementActions(ra);
logger.info("-------- Analising Trees for model '{}'", rp.getModelName());
AccessType[] accessTypes = AccessType.getModelTypes();
for(AccessType accessType : accessTypes) {
logger.info(" ------------- Analising Tree of '{}' for model '{}'", accessType.getName() ,rp.getModelName());
Tree<Class<Element>> tree = modelKnowledge.getClassesTree(accessType);
tree.elaborate(ra);
}
}
}
}