package com.intrbiz.bergamot.virtual.operator; import java.util.Set; import com.intrbiz.bergamot.model.Status; import com.intrbiz.bergamot.model.state.CheckState; import com.intrbiz.bergamot.virtual.VirtualCheckExpressionContext; import com.intrbiz.bergamot.virtual.reference.CheckReference; public class ValueOperator extends VirtualCheckOperator { private static final long serialVersionUID = 1L; private final CheckReference check; public ValueOperator(CheckReference check) { super(); this.check = check; } public CheckReference getCheck() { return this.check; } public void computeDependencies(Set<CheckReference> checks) { checks.add(this.check); } @Override public boolean computeOk(VirtualCheckExpressionContext context) { CheckState state = check.resolve(context).getState(); return state.isOk() && (! state.isIgnored()); } public Status computeStatus(VirtualCheckExpressionContext context) { CheckState state = check.resolve(context).getState(); return state.isIgnored() ? Status.OK : state.getStatus(); } public String toString() { return this.check == null ? "null" : this.check.toString(); } }