1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.kuali.rice.kew.docsearch;
15
16 import org.kuali.rice.kew.rule.WorkflowAttributeValidationError;
17 import org.kuali.rice.kns.web.ui.Row;
18
19 import java.io.Serializable;
20 import java.util.Arrays;
21 import java.util.List;
22 import java.util.Map;
23
24
25
26
27
28
29
30 public interface SearchableAttribute extends Serializable {
31
32 public static final String SEARCH_WILDCARD_CHARACTER = "*";
33 public static final String SEARCH_WILDCARD_CHARACTER_REGEX_ESCAPED = "\\" + SEARCH_WILDCARD_CHARACTER;
34
35 public static final String DATA_TYPE_STRING = "string";
36 public static final String DATA_TYPE_DATE = "datetime";
37 public static final String DATA_TYPE_LONG = "long";
38 public static final String DATA_TYPE_FLOAT = "float";
39
40 public static final String DEFAULT_SEARCHABLE_ATTRIBUTE_TYPE_NAME = DATA_TYPE_STRING;
41
42 public static final String DEFAULT_RANGE_SEARCH_LOWER_BOUND_LABEL = "From";
43 public static final String DEFAULT_RANGE_SEARCH_UPPER_BOUND_LABEL = "To";
44
45 public static final String RANGE_LOWER_BOUND_PROPERTY_PREFIX = "rangeLowerBoundKeyPrefix_";
46 public static final String RANGE_UPPER_BOUND_PROPERTY_PREFIX = "rangeUpperBoundKeyPrefix_";
47
48 public static final List SEARCHABLE_ATTRIBUTE_BASE_CLASS_LIST = Arrays.asList(SearchableAttributeStringValue.class, SearchableAttributeFloatValue.class, SearchableAttributeLongValue.class,
49 SearchableAttributeDateTimeValue.class);
50
51
52
53
54
55
56
57
58 public String getSearchContent(DocumentSearchContext documentSearchContext);
59
60
61
62
63
64
65
66
67 public List<SearchableAttributeValue> getSearchStorageValues(DocumentSearchContext documentSearchContext);
68
69
70
71
72
73
74
75 public List<Row> getSearchingRows(DocumentSearchContext documentSearchContext);
76
77
78
79
80
81
82
83
84 public List<WorkflowAttributeValidationError> validateUserSearchInputs(
85 Map<Object, Object> paramMap, DocumentSearchContext searchContext);
86 }