package pl.com.bottega.ecommerce.sharedkernel.specification; /** * * @author Slawek * * @param <T> */ public class DisjunctionSpecification<T> extends CompositeSpecification<T>{ private Specification<T>[] disjunction; @SuppressWarnings("unchecked") public DisjunctionSpecification(Specification<T>... disjunction){ this.disjunction = disjunction; } public boolean isSatisfiedBy(T candidate){ for (Specification<T> spec : disjunction){ if (spec.isSatisfiedBy(candidate)) return true; } return false; } }