View Javadoc

1   package se.citerus.dddsample.domain.shared;
2   
3   /**
4    * NOT decorator, used to create a new specifcation that is the inverse (NOT) of the given spec.
5    */
6   public class NotSpecification<T> extends AbstractSpecification<T> {
7   
8     private Specification<T> spec1;
9   
10    /**
11     * Create a new NOT specification based on another spec.
12     *
13     * @param spec1 Specification instance to not.
14     */
15    public NotSpecification(final Specification<T> spec1) {
16      this.spec1 = spec1;
17    }
18  
19    /**
20     * {@inheritDoc}
21     */
22    public boolean isSatisfiedBy(final T t) {
23      return !spec1.isSatisfiedBy(t);
24    }
25  }