KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > person > util > DisplayNameSearchFilterItem


1 /*
2  * Created on Apr 6, 2005
3  * by alex
4  *
5  */

6 package com.nightlabs.ipanema.person.util;
7
8 import java.util.Map JavaDoc;
9 import java.util.Set JavaDoc;
10
11 /**
12  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
13  *
14  */

15 public class DisplayNameSearchFilterItem extends PersonSearchFilterItem {
16
17     /**
18      * @param personStructFieldID
19      * @param matchType
20      * @param needle
21      */

22     public DisplayNameSearchFilterItem(int matchType, String JavaDoc needle) {
23         super(matchType, needle);
24     }
25
26     /**
27      * @see com.nightlabs.jdo.search.SearchFilterItem#isConstraint()
28      */

29     public boolean isConstraint() {
30         return !"".equals(needle);
31     }
32
33     /**
34      * @see com.nightlabs.jdo.search.SearchFilterItem#getItemTargetClass()
35      */

36     public Class JavaDoc getItemTargetClass() {
37         return null;
38     }
39
40     /**
41      * @see com.nightlabs.jdo.search.SearchFilterItem#appendSubQuery(int, int, java.util.Set, java.lang.StringBuffer, java.lang.StringBuffer, java.lang.StringBuffer, java.util.Map)
42      */

43     public void appendSubQuery(int itemIndex, int itemSubIndex, Set JavaDoc imports,
44             StringBuffer JavaDoc vars, StringBuffer JavaDoc filter, StringBuffer JavaDoc params, Map JavaDoc paramMap) {
45
46         params.append(", ");
47         String JavaDoc needleLowerCase = "needle"+itemIndex+".toLowerCase()";
48         params.append(String JavaDoc.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