package nl.ipo.cds.validation.logical; import java.util.List; import nl.ipo.cds.validation.Expression; import nl.ipo.cds.validation.ValidationMessage; import nl.ipo.cds.validation.ValidatorContext; public class OrExpression<K extends Enum<K> & ValidationMessage<K, C>, C extends ValidatorContext<K, C>> extends AbstractLogicalNAryExpr<K, C> { public OrExpression (final List<Expression<K, C, Boolean>> inputs) { super (inputs); } @Override public boolean evaluate (final List<Boolean> inputValues) { for (final Boolean value: inputValues) { if (value != null && value) { return true; } } return false; } @Override public String toString () { final StringBuilder builder = new StringBuilder (); builder.append ('('); for (final Expression<K, C, Boolean> input: inputs) { if (builder.length () > 1) { builder.append (" or "); } builder.append (input.toString ()); } builder.append (')'); return builder.toString (); } }