package org.ovirt.engine.ui.uicommonweb.validation; import java.util.Arrays; import java.util.List; public class AlternativeValidation implements IValidation { private final String failReason; private final List<IValidation> validations; public AlternativeValidation(String failReason, IValidation... validations) { this(failReason, Arrays.asList(validations)); } public AlternativeValidation(String failReason, List<IValidation> validations) { if (failReason == null || validations == null) { throw new IllegalArgumentException(); } this.failReason = failReason; this.validations = validations; } @Override public ValidationResult validate(Object value) { if (validations.isEmpty()) { return ValidationResult.ok(); } for (IValidation validation : validations) { if (validation.validate(value).getSuccess()) { return ValidationResult.ok(); } } return ValidationResult.fail(failReason); } }