import groovy.lang.Closure; import org.springframework.ldap.filter.*; import java.util.List; public class FilterUtil { public static Filter or(List filters) { if (filters.size() == 1) return filters.get(0); OrFilter currentFilter = new OrFilter(); for (Filter filter : filters) { currentFilter.or(filter); } return currentFilter; } public static Filter and(List filters) { if (filters.size() == 1) return filters.get(0); AndFilter currentFilter = new AndFilter(); for (Filter filter : filters) { currentFilter.and(filter); } return currentFilter; } public static Filter and(Filter... filter) { if (filter.length == 1) return filter[0]; AndFilter result = new AndFilter(); for (int i = 0; i < filter.length; i++) { result.and(filter[i]); } return result; } public static Filter or(Filter... filter) { if (filter.length == 1) return filter[0]; OrFilter result = new OrFilter(); for (int i = 0; i < filter.length; i++) { result.or(filter[i]); } return result; } public static Filter eq(String field, String value) { return new EqualsFilter(field, value); } public static Filter eq(String field, int value) { return new EqualsFilter(field, value); } public static Filter gte(String field, String value) { return new GreaterThanOrEqualsFilter(field, value); } public static Filter gte(String field, int value) { return new GreaterThanOrEqualsFilter(field, value); } public static Filter lte(String field, String value) { return new LessThanOrEqualsFilter(field, value); } public static Filter lte(String field, int value) { return new LessThanOrEqualsFilter(field, value); } public static Filter like(String field, String value) { return new LikeFilter(field, value); } public static Filter not(Filter filter) { return new NotFilter(filter); } public static Filter build(Closure closeure) { return new FilterBuilder(closeure).getFilter(); } }