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 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> tree = modelKnowledge.getClassesTree(accessType); tree.elaborate(ra); } } } }