package ru.codeinside.adm.ui; import com.vaadin.addon.jpacontainer.filter.Filters; import com.vaadin.data.Container; import com.vaadin.ui.AbstractField; import java.util.Arrays; import java.util.List; public class FilterGenerator_ implements org.tepi.filtertable.FilterGenerator { private List<String> numbers; private List<String> caseSensitives; public FilterGenerator_() { this.numbers = Arrays.asList("id"); } public FilterGenerator_(List<String> numbers, List<String> caseSensitives) { this.numbers = numbers; this.caseSensitives = caseSensitives; } @Override public Container.Filter generateFilter(Object propertyId, Object value) { if (numbers != null) { for (String propId : numbers) { if (propId.equals(propertyId)) { try { return Filters.eq(propertyId, Long.valueOf(value.toString())); } catch (NumberFormatException e) { return Filters.and(Filters.isNotNull(propertyId), Filters.isNull(propertyId)); } } } } if (caseSensitives != null) { for (String propId : caseSensitives) { if (propId.equals(propertyId)) { return Filters.eq(propertyId, value); } } } return null; } @Override public AbstractField getCustomFilterComponent(Object propertyId) { return null; } @Override public void filterRemoved(Object propertyId) { } @Override public void filterAdded(Object propertyId, Class<? extends Container.Filter> filterType, Object value) { } }