1 package org.ddd4j.infrastructure.specification;
2
3 public abstract class AbstractSpecification<T> implements Specification<T> {
4 public Specification<T> and(Specification<T> other) {
5 return new AndSpecification<T>(this, other);
6 }
7
8 public Specification<T> not() {
9 return new NotSpecification<T>(this);
10 }
11
12 public Specification<T> or(Specification<T> other) {
13 return new OrSpecification<T>(this, other);
14 }
15 }