package com.utils; import com.google.common.collect.Maps; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.apache.commons.lang3.StringUtils; public class SearchFilter { public String fieldName; public Object value; public SearchFilter.Operator operator; public SearchFilter(String fieldName, SearchFilter.Operator operator, Object value) { this.fieldName = fieldName; this.value = value; this.operator = operator; } public static Map parse(Map searchParams){ Map filters = Maps.newHashMap(); Iterator var2 = searchParams.entrySet().iterator(); while(var2.hasNext()) { Entry entry = (Entry)var2.next(); String key = (String)entry.getKey(); Object value = entry.getValue(); if (!StringUtils.isBlank((String)value)) { String[] names = StringUtils.split(key, "_"); if (names.length != 2) { throw new IllegalArgumentException(key + " is not a valid search filter name"); } String filedName = names[1]; SearchFilter.Operator operator = SearchFilter.Operator.valueOf(names[0]); SearchFilter filter = new SearchFilter(filedName, operator, value); filters.put(key, filter); } } return filters; } public static enum Operator { EQ, NEQ, LIKE, LLIKE, RLIKE, GT, LT, GTE, LTE, NULL, NOTNULL; private Operator() { } } }