1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.el.unified;
20
21 import java.util.Comparator;
22 import java.util.List;
23
24 import javax.el.ELResolver;
25 import javax.faces.context.ExternalContext;
26 import javax.faces.context.FacesContext;
27
28 import org.apache.myfaces.config.RuntimeConfig;
29
30
31
32
33
34
35
36
37
38
39 public class CustomFirstELResolverComparator implements Comparator<ELResolver>
40 {
41
42 private List<ELResolver> _facesConfigResolvers;
43
44 public int compare(ELResolver r1, ELResolver r2)
45 {
46 List<ELResolver> facesConfigResolvers = _getFacesConfigElResolvers();
47
48 if (facesConfigResolvers == null)
49 {
50
51 return 0;
52 }
53
54 boolean r1FromFacesConfig = facesConfigResolvers.contains(r1);
55 boolean r2FromFacesConfig = facesConfigResolvers.contains(r2);
56
57 if (r1FromFacesConfig)
58 {
59 if (r2FromFacesConfig)
60 {
61
62 return 0;
63 }
64 else
65 {
66
67 return -1;
68 }
69 }
70 else
71 {
72 if (r2FromFacesConfig)
73 {
74
75 return 1;
76 }
77 else
78 {
79
80 return 0;
81 }
82 }
83 }
84
85
86
87
88
89 private List<ELResolver> _getFacesConfigElResolvers()
90 {
91 if (_facesConfigResolvers == null)
92 {
93 ExternalContext externalContext
94 = FacesContext.getCurrentInstance().getExternalContext();
95 RuntimeConfig runtimeConfig
96 = RuntimeConfig.getCurrentInstance(externalContext);
97 _facesConfigResolvers
98 = runtimeConfig.getFacesConfigElResolvers();
99 }
100
101 return _facesConfigResolvers;
102 }
103
104 }