1 6 package com.nightlabs.ipanema.person.util; 7 8 import java.util.Map ; 9 import java.util.Set ; 10 11 15 public class DisplayNameSearchFilterItem extends PersonSearchFilterItem { 16 17 22 public DisplayNameSearchFilterItem(int matchType, String needle) { 23 super(matchType, needle); 24 } 25 26 29 public boolean isConstraint() { 30 return !"".equals(needle); 31 } 32 33 36 public Class getItemTargetClass() { 37 return null; 38 } 39 40 43 public void appendSubQuery(int itemIndex, int itemSubIndex, Set imports, 44 StringBuffer vars, StringBuffer filter, StringBuffer params, Map paramMap) { 45 46 params.append(", "); 47 String needleLowerCase = "needle"+itemIndex+".toLowerCase()"; 48 params.append(String .class.getName()+" needle"+itemIndex); 49 paramMap.put("needle"+itemIndex, getNeedle()); 50 51 filter.append(PersonSearchFilter.PERSON_VARNAME+".displayName.toLowerCase()"); 52 switch (matchType) { 53 case MATCHTYPE_BEGINSWITH: 54 filter.append(".startsWith("+needleLowerCase+")"); 55 break; 56 case MATCHTYPE_ENDSWITH: 57 filter.append(".endsWith("+needleLowerCase+")"); 58 break; 59 case MATCHTYPE_CONTAINS: 60 filter.append(".indexOf("+needleLowerCase+") >= 0"); 61 break; 62 case MATCHTYPE_NOTCONTAINS: 63 filter.append(".indexOf("+needleLowerCase+") < 0"); 64 break; 65 case MATCHTYPE_EQUALS: 66 filter.append(" == "+needleLowerCase); 67 break; 68 case MATCHTYPE_NOTEQUALS: 69 filter.append(" != "+needleLowerCase); 70 break; 71 default: 72 filter.append(" == "+needleLowerCase); 73 } 74 75 } 76 77 } 78 | Popular Tags |