1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.view.facelets;
20
21 import java.io.IOException;
22
23 import javax.faces.FactoryFinder;
24 import javax.faces.component.UIComponent;
25
26
27
28
29 public abstract class DelegatingMetaTagHandler extends MetaTagHandler
30 {
31 protected TagHandlerDelegateFactory delegateFactory;
32 private TagAttribute binding;
33 private TagAttribute disabled;
34
35 public DelegatingMetaTagHandler(TagConfig config)
36 {
37 super(config);
38
39 delegateFactory = (TagHandlerDelegateFactory)
40 FactoryFinder.getFactory (FactoryFinder.TAG_HANDLER_DELEGATE_FACTORY);
41 binding = getAttribute ("binding");
42 disabled = getAttribute ("disabled");
43 }
44
45
46
47
48 public void apply(FaceletContext ctx, UIComponent parent) throws IOException
49 {
50 getTagHandlerDelegate().apply(ctx, parent);
51 }
52
53 public void applyNextHandler(FaceletContext ctx, UIComponent c) throws IOException
54 {
55 nextHandler.apply (ctx, c);
56 }
57
58 public TagAttribute getBinding()
59 {
60 return binding;
61 }
62
63 public Tag getTag()
64 {
65 return tag;
66 }
67
68 public TagAttribute getTagAttribute(String localName)
69 {
70 return super.getAttribute (localName);
71 }
72
73 public String getTagId()
74 {
75 return tagId;
76 }
77
78 public boolean isDisabled(FaceletContext ctx)
79 {
80 if (disabled == null)
81 {
82 return false;
83 }
84
85 return disabled.getBoolean (ctx);
86 }
87
88 public void setAttributes(FaceletContext ctx, Object instance)
89 {
90 super.setAttributes (ctx, instance);
91 }
92
93
94
95
96 @Override
97 protected MetaRuleset createMetaRuleset(Class type)
98 {
99 return getTagHandlerDelegate().createMetaRuleset(type);
100 }
101
102 protected abstract TagHandlerDelegate getTagHandlerDelegate();
103
104 }