package org.jboss.windup.rules.apps.java.condition; import org.jboss.windup.config.GraphRewrite; import org.jboss.windup.config.condition.GraphCondition; import org.jboss.windup.rules.apps.java.config.SourceModeOption; import org.ocpsoft.rewrite.config.ConditionBuilder; import org.ocpsoft.rewrite.context.EvaluationContext; /** * Condition that returns <code>true</code> if {@link SourceModeOption} is set to <code>true</code>. * * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> */ public class SourceMode extends GraphCondition { /** * Create a new {@link SourceMode} condition that returns <code>true</code> if {@link SourceModeOption} is enabled. */ public static ConditionBuilder isEnabled() { return new SourceMode(Boolean.TRUE); } /** * Create a new {@link SourceMode} condition that returns <code>true</code> if {@link SourceModeOption} is NOT * enabled. */ public static ConditionBuilder isDisabled() { return new SourceMode(Boolean.FALSE); } private final Boolean value; private SourceMode(Boolean value) { this.value = value; } @Override public boolean evaluate(GraphRewrite event, EvaluationContext context) { Boolean result = (Boolean) event.getGraphContext().getOptionMap().get(SourceModeOption.NAME); if (value) { return value.equals(result); } else { return value.equals(result) || result == null; } } }