package org.jboss.windup.rules.apps.javaee.rules;
import java.util.logging.Logger;
import org.jboss.windup.rules.apps.javaee.model.stats.ProjectTechnologiesStatsService;
import org.jboss.windup.util.Logging;
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.PreReportGenerationPhase;
import org.ocpsoft.rewrite.config.Configuration;
import org.ocpsoft.rewrite.config.ConfigurationBuilder;
import org.ocpsoft.rewrite.context.EvaluationContext;
/**
* Creates the technologies statistics for the Technologies Report.
*
* @author <a href="mailto:zizka@seznam.cz">Ondrej Zizka</a>
*/
@RuleMetadata(phase = PreReportGenerationPhase.class, perform = "Compute the statistics for the Technologies Report")
public class TechnologiesStatsRuleProvider extends AbstractRuleProvider
{
@Override
public Configuration getConfiguration(RuleLoaderContext context) {
return ConfigurationBuilder.begin().addRule().perform(
new GraphOperation() {
@Override
public void perform(GraphRewrite event, EvaluationContext context) {
ProjectTechnologiesStatsService statsService = new ProjectTechnologiesStatsService(event.getGraphContext());
statsService.computeStats();
}
}
).withId(getClass().getSimpleName() + "_computeStats");
}
}