package org.jboss.windup.rules.apps.java.condition.annotation; import org.jboss.windup.config.GraphRewrite; import org.jboss.windup.config.condition.EvaluationStrategy; import org.jboss.windup.rules.apps.java.scan.ast.annotations.JavaAnnotationTypeValueModel; import org.ocpsoft.rewrite.context.EvaluationContext; /** * {@link AnnotationCondition} provides support for filtering type references based upon detailed annotation information. * * This must also support recursive filtering for cases involving nested annotations (for example, * @MyAnnotation(inner={@AnotherAnnotation(inner = [])})). * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public abstract class AnnotationCondition { /** * Called by the framework to evaluate a specific condition. Returns true if the annotation matches the condition and * false otherwise. */ public abstract boolean evaluate(GraphRewrite event, EvaluationContext context, EvaluationStrategy strategy, JavaAnnotationTypeValueModel value); }