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.Knowledge; import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge; import org.gcube.informationsystem.tree.Tree; import org.gcube.informationsystem.utils.documentation.generator.ModelKnowledgeGenerator; import org.gcube.informationsystem.utils.documentation.model.Documentation; 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 { Documentation.setDefaultOffsetLevel(2); ServiceLoader registrationProviders = ServiceLoader .load(RegistrationProvider.class); for(RegistrationProvider rp : registrationProviders) { logger.info("-------- Analising Discovery for model '{}'", rp.getModelName()); ModelKnowledge modelKnowledge = Knowledge.getInstance().getModelKnowledges(rp); 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); } logger.info("ALL TEST PASSED FOR '{}'", rp.getModelName()); ModelKnowledgeGenerator treeGenerator = new ModelKnowledgeGenerator(rp); if(rp instanceof ISModelRegistrationProvider) { treeGenerator.setSplittedFiles(false); treeGenerator.setDesiredFileName("is-model"); }else { treeGenerator.setSplittedFiles(true); } logger.info("GOING TO CREATE DOCUMENTATION FOR '{}'", rp.getModelName()); treeGenerator.generate(); } } }