class ImmutableLogicalFilter implements LogicalSearchFilter {

    public static ImmutableLogicalFilter or(final SearchFilter filter1, final SearchFilter filter2,
            final SearchFilter... furtherFilters) {
        checkNotNull(filter1, "first filter to be concatenated with OR");
        checkNotNull(filter2, "second filter to be concatenated with OR");
        checkNotNull(furtherFilters, "further searchFilters to be concatenated with OR");

        return new ImmutableLogicalFilter(Type.OR, paramsToList(filter1, filter2, furtherFilters));
    }

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

}