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