package org.jboss.windup.rules.apps.java.decompiler;
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.phase.DecompilationPhase;
import org.jboss.windup.config.query.Query;
import org.jboss.windup.graph.model.resource.FileModel;
import org.jboss.windup.rules.apps.java.model.JavaClassFileModel;
import org.ocpsoft.rewrite.config.Configuration;
import org.ocpsoft.rewrite.config.ConfigurationBuilder;
/**
* Predecompilation scan - performance purposes.
*/
@RuleMetadata(phase = DecompilationPhase.class)
public class BeforeDecompileClassesRuleProvider extends AbstractRuleProvider
{
// @formatter:off
@Override
public Configuration getConfiguration(RuleLoaderContext ruleLoaderContext)
{
return ConfigurationBuilder.begin()
.addRule()
.when(Query.fromType(JavaClassFileModel.class)
.withoutProperty(FileModel.PARSE_ERROR)
)
.perform(new ClassFilePreDecompilationScan());
}
// @formatter:on
}