| Interface | Description | 
|---|---|
| Spec<T> | Represents some predicate against objects of type T. | 
| Class | Description | 
|---|---|
| AndSpec<T> | A  CompositeSpecwhich requires all its specs to be true in order to evaluate to true. | 
| CompositeSpec<T> | A  Specwhich aggregates a sequence of otherSpecinstances. | 
| NotSpec<T> | A  Specimplementation which negates anotherSpec. | 
| OrSpec<T> | A  CompositeSpecwhich requires any one of its specs to be true in order to evaluate to
 true. | 
| Specs | Provides a number of  Specimplementations. |