package org.jboss.windup.rules.apps.java.scan.provider; import javax.inject.Inject; import org.jboss.windup.config.AbstractRuleProvider; import org.jboss.windup.config.loader.RuleLoaderContext; import org.jboss.windup.config.metadata.RuleMetadata; import org.jboss.windup.config.operation.Iteration; import org.jboss.windup.config.phase.ArchiveMetadataExtractionPhase; import org.jboss.windup.config.query.Query; import org.jboss.windup.graph.GraphTypeManager; import org.jboss.windup.graph.model.ArchiveModel; import org.jboss.windup.rules.apps.java.scan.operation.ConfigureArchiveTypes; import org.ocpsoft.rewrite.config.Configuration; import org.ocpsoft.rewrite.config.ConfigurationBuilder; /** * Iterates over discovered archives and sets their vertices' types. */ @RuleMetadata(phase = ArchiveMetadataExtractionPhase.class) public class DiscoverArchiveTypesRuleProvider extends AbstractRuleProvider { @Inject private GraphTypeManager graphTypeManager; // @formatter:off @Override public Configuration getConfiguration(RuleLoaderContext ruleLoaderContext) { return ConfigurationBuilder.begin() .addRule() .when( Query.fromType(ArchiveModel.class) ) .perform( Iteration.over() .perform(ConfigureArchiveTypes.withTypeManager(graphTypeManager)) .endIteration() ); } // @formatter:on }