@Override public boolean passesFilter(FiltrationItem item) { Object value = item.getFiltrationProperty(getPropertyId()); if (!(value instanceof String)) { // We can only handle strings return false; } String colValue = (String) value; String pattern = getValue().replace("%", ".*"); if (isCaseSensitive()) { return colValue.matches(pattern); } return colValue.toUpperCase().matches(pattern.toUpperCase()); } }
@Override public boolean passesFilter(FiltrationItem item) { Object value = item.getFiltrationProperty(getPropertyId()); if (!(value instanceof String)) { // We can only handle strings return false; } String colValue = (String) value; String pattern = getValue().replace("%", ".*"); if (isCaseSensitive()) { return colValue.matches(pattern); } return colValue.toUpperCase().matches(pattern.toUpperCase()); } }
public boolean interpret(WhereClause clause, LikeFilter filter) { if (filter.getValue() == null) { return false; } String searchString = filter.getValue(); //percentage is wildcard and underscore singlewildcard searchString = searchString.replace("%", ESCAPECHAR + "%"); searchString = searchString.replace("_", ESCAPECHAR + "_"); searchString = searchString.replace('*', '%'); searchString = searchString.replace('?', '_'); String paramName = getParamName(); StringBuilder sb = new StringBuilder(); if(!filter.isCaseSensitive()) { sb.append("UPPER(e.").append(filter.getPropertyId()).append(")"); } else { sb.append("e.").append(filter.getPropertyId()); } sb.append(" LIKE "); if(!filter.isCaseSensitive()) { sb.append("UPPER(:").append(paramName).append(")"); } else { sb.append(":").append(paramName); } sb.append(" ESCAPE '").append(ESCAPECHAR).append("'"); String jpql = sb.toString(); clause.appendStatement(jpql); clause.appendParameter(paramName, searchString); return true; }
public boolean interpret(WhereClause clause, LikeFilter filter) { if (filter.getValue() == null) { return false; } String searchString = filter.getValue(); //percentage is wildcard and underscore singlewildcard searchString = searchString.replace("%", ESCAPECHAR + "%"); searchString = searchString.replace("_", ESCAPECHAR + "_"); searchString = searchString.replace('*', '%'); searchString = searchString.replace('?', '_'); String paramName = getParamName(); StringBuilder sb = new StringBuilder(); if(!filter.isCaseSensitive()) { sb.append("UPPER(e.").append(filter.getPropertyId()).append(")"); } else { sb.append("e.").append(filter.getPropertyId()); } sb.append(" LIKE "); if(!filter.isCaseSensitive()) { sb.append("UPPER(:").append(paramName).append(")"); } else { sb.append(":").append(paramName); } sb.append(" ESCAPE '").append(ESCAPECHAR).append("'"); String jpql = sb.toString(); clause.appendStatement(jpql); clause.appendParameter(paramName, searchString); return true; }