class ImmutableLogicalFilter implements LogicalSearchFilter {

    public static ImmutableLogicalFilter not(final SearchFilter filter) {
        checkNotNull(filter, "filter to be negated");

        return new ImmutableLogicalFilter(Type.NOT, Collections.singleton(filter));
    }

    private  ImmutableLogicalFilter(final Type theFilterType, final Collection<SearchFilter> theFilters);

}