package org.jboss.windup.reporting.rules.rendering; import javax.enterprise.inject.Vetoed; import javax.inject.Inject; import org.jboss.forge.furnace.services.Imported; 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.PostReportRenderingPhase; import org.jboss.windup.reporting.renderer.GraphRenderer; import org.ocpsoft.rewrite.config.Configuration; import org.ocpsoft.rewrite.config.ConfigurationBuilder; import org.ocpsoft.rewrite.context.EvaluationContext; /** * This renders the graph itself to the output directory for debug purposes. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ @Vetoed @RuleMetadata(phase = PostReportRenderingPhase.class) public class RenderGraphRuleProvider extends AbstractRuleProvider { @Inject private Imported<GraphRenderer> renderers; @Override public Configuration getConfiguration(final RuleLoaderContext ruleLoaderContext) { return ConfigurationBuilder.begin() .addRule() .perform(new GraphOperation() { @Override public void perform(GraphRewrite event, EvaluationContext context) { for (GraphRenderer renderer : renderers) { renderer.renderGraph(event.getGraphContext()); } } @Override public String toString() { return "RenderGraphForDebugging"; } }); } }