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.

LikeTranslator.java 934B

123456789101112131415161718192021222324252627282930
  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.sqlcontainer.query.generator.StatementHelper;
  8. public class LikeTranslator implements FilterTranslator {
  9. @Override
  10. public boolean translatesFilter(Filter filter) {
  11. return filter instanceof Like;
  12. }
  13. @Override
  14. public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
  15. Like like = (Like) filter;
  16. if (like.isCaseSensitive()) {
  17. sh.addParameterValue(like.getValue());
  18. return QueryBuilder.quote(like.getPropertyId()) + " LIKE ?";
  19. } else {
  20. sh.addParameterValue(like.getValue().toUpperCase());
  21. return "UPPER(" + QueryBuilder.quote(like.getPropertyId())
  22. + ") LIKE ?";
  23. }
  24. }
  25. }