1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.component.search;
20
21 import java.util.List;
22 import javax.faces.component.ContextCallback;
23 import javax.faces.component.UIComponent;
24 import javax.faces.context.FacesContext;
25
26
27
28
29 public abstract class SearchExpressionHandler
30 {
31
32 protected static final char[] EXPRESSION_SEPARATOR_CHARS = new char[]
33 {
34 ',', ' '
35 };
36 public static final String KEYWORD_PREFIX = "@";
37
38 public abstract String resolveClientId(SearchExpressionContext searchExpressionContext, String expression);
39
40 public abstract List<String> resolveClientIds(
41 SearchExpressionContext searchExpressionContext, String expressions);
42
43 public abstract void resolveComponent(SearchExpressionContext searchExpressionContext, String expression,
44 ContextCallback callback);
45
46 public abstract void resolveComponents(SearchExpressionContext searchExpressionContext, String expressions,
47 ContextCallback callback);
48
49 public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
50 String expressions, ContextCallback topCallback)
51 {
52 invokeOnComponent(searchExpressionContext, searchExpressionContext.getSource(), expressions, topCallback);
53 }
54
55 public abstract void invokeOnComponent(SearchExpressionContext searchExpressionContext,
56 UIComponent previous, String expression, ContextCallback topCallback);
57
58 public abstract String[] splitExpressions(FacesContext context, String expressions);
59
60 public abstract boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, String expression);
61
62 public abstract boolean isValidExpression(SearchExpressionContext searchExpressionContext, String expression);
63
64 public char[] getExpressionSeperatorChars(FacesContext context)
65 {
66 return EXPRESSION_SEPARATOR_CHARS;
67 }
68
69 }