package com.mossle.core.query; import java.util.Collection; import java.util.List; public class PropertyFilterUtils { protected PropertyFilterUtils() { } public static void buildConfigurations( Collection<PropertyFilter> propertyFilters, StringBuilder buff, List<Object> params) { buildConfigurations(propertyFilters, buff, params, true); } public static void buildConfigurations( Collection<PropertyFilter> propertyFilters, StringBuilder buff, List<Object> params, boolean checkWhere) { for (PropertyFilter propertyFilter : propertyFilters) { buildConfiguration(propertyFilter, buff, params, checkWhere); } } public static void buildConfiguration(PropertyFilter propertyFilter, StringBuilder buff, List<Object> params) { buildConfiguration(propertyFilter, buff, params, true); } public static void buildConfiguration(PropertyFilter propertyFilter, StringBuilder buff, List<Object> params, boolean checkWhere) { if (checkWhere && (buff.toString().toLowerCase().indexOf("where") == -1)) { buff.append(" where "); } else { buff.append(" and "); } String propertyName = propertyFilter.getPropertyName(); Object propertyValue = propertyFilter.getMatchValue(); MatchType matchType = propertyFilter.getMatchType(); switch (matchType) { case EQ: buff.append(propertyName).append("=?"); params.add(propertyValue); break; case NOT: buff.append(propertyName).append("<>?"); params.add(propertyValue); break; case LIKE: buff.append(propertyName).append(" like ?"); params.add("%" + propertyValue + "%"); break; case LE: buff.append(propertyName).append("<=?"); params.add(propertyValue); break; case LT: buff.append(propertyName).append("<?"); params.add(propertyValue); break; case GE: buff.append(propertyName).append(">=?"); params.add(propertyValue); break; case GT: buff.append(propertyName).append(">?"); params.add(propertyValue); break; case IN: buff.append(propertyName).append("in (?)"); params.add(propertyValue); break; case INL: buff.append(propertyName).append(" is null"); break; case NNL: buff.append(propertyName).append(" is not null"); break; default: buff.append(propertyName).append("=?"); params.add(propertyValue); break; } } }