You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SimpleStringTranslator.java 1.1KB

12345678910111213141516171819202122232425262728
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.data.util.sqlcontainer.query.generator.filter;
  5. import com.vaadin.data.Container.Filter;
  6. import com.vaadin.data.util.filter.Like;
  7. import com.vaadin.data.util.filter.SimpleStringFilter;
  8. import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
  9. public class SimpleStringTranslator implements FilterTranslator {
  10. public boolean translatesFilter(Filter filter) {
  11. return filter instanceof SimpleStringFilter;
  12. }
  13. public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
  14. SimpleStringFilter ssf = (SimpleStringFilter) filter;
  15. // Create a Like filter based on the SimpleStringFilter and execute the
  16. // LikeTranslator
  17. String likeStr = ssf.isOnlyMatchPrefix() ? ssf.getFilterString() + "%"
  18. : "%" + ssf.getFilterString() + "%";
  19. Like like = new Like(ssf.getPropertyId().toString(), likeStr);
  20. like.setCaseSensitive(!ssf.isIgnoreCase());
  21. return new LikeTranslator().getWhereStringForFilter(like, sh);
  22. }
  23. }