package org.jboss.windup.reporting.rules.generation; import org.jboss.windup.config.AbstractRuleProvider; import org.jboss.windup.config.GraphRewrite; import org.jboss.windup.config.loader.RuleLoaderContext; import org.jboss.windup.config.metadata.RuleMetadata; import org.jboss.windup.config.operation.GraphOperation; import org.jboss.windup.config.phase.ReportGenerationPhase; import org.jboss.windup.reporting.model.ReportModel; import org.jboss.windup.reporting.model.TemplateType; import org.jboss.windup.reporting.service.ReportService; import org.ocpsoft.rewrite.config.Configuration; import org.ocpsoft.rewrite.config.ConfigurationBuilder; import org.ocpsoft.rewrite.context.EvaluationContext; @RuleMetadata(phase = ReportGenerationPhase.class) public class CreateFreeMarkerMethodReportRuleProvider extends AbstractRuleProvider { private static final String TEMPLATE = "/reports/templates/windupfreemarkerfunctions.ftl"; private static final String REPORT_NAME = "Windup FreeMarker Function Report"; private static final String OUTPUT_FILENAME = "windup_freemarkerfunctions.html"; @Override public Configuration getConfiguration(RuleLoaderContext ruleLoaderContext) { return ConfigurationBuilder.begin() .addRule() .perform(new CreateMethodReport()) .withId("CreateWindupFreeMarkerFunctionReport"); } private class CreateMethodReport extends GraphOperation { @Override public void perform(GraphRewrite event, EvaluationContext context) { ReportService reportService = new ReportService(event.getGraphContext()); ReportModel reportModel = reportService.create(); reportModel.setReportFilename(OUTPUT_FILENAME); reportModel.setReportName(REPORT_NAME); reportModel.setTemplateType(TemplateType.FREEMARKER); reportModel.setTemplatePath(TEMPLATE); } } }