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.resolver.implicitobject;
20
21 import java.beans.FeatureDescriptor;
22 import java.util.List;
23
24 import javax.el.ELContext;
25 import javax.faces.component.UIComponent;
26 import javax.faces.context.FacesContext;
27
28 import org.apache.myfaces.view.facelets.el.CompositeComponentELUtils;
29
30
31
32
33
34
35
36 public class CompositeComponentImplicitObject extends ImplicitObject
37 {
38
39 private static final String NAME = "cc";
40
41
42 public CompositeComponentImplicitObject()
43 {
44 }
45
46 @Override
47 public Object getValue(ELContext context)
48 {
49 FacesContext facesContext = facesContext(context);
50
51
52
53 List<UIComponent> list = (List<UIComponent>) facesContext.getAttributes()
54 .get(CompositeComponentELUtils.CURRENT_COMPOSITE_COMPONENT_KEY);
55
56 UIComponent cc = null;
57
58 if (list != null && !list.isEmpty())
59 {
60 cc = list.get(list.size()-1);
61 }
62 if (cc == null)
63 {
64
65 cc = UIComponent.getCurrentCompositeComponent(facesContext(context));
66 }
67 return cc;
68 }
69
70 @Override
71 public String getName()
72 {
73 return NAME;
74 }
75
76 @Override
77 public Class<?> getType()
78 {
79 return null;
80 }
81
82 @Override
83 public FeatureDescriptor getDescriptor()
84 {
85 return makeDescriptor(NAME,
86 "Represents the composite component most recently pushed using UIComponent.pushComponentToEL",
87 UIComponent.class);
88 }
89 }