KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > myfaces > config > impl > digester > DigesterFacesConfigUnmarshallerImpl


1 /*
2  * Copyright 2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.myfaces.config.impl.digester;
17
18 import java.io.IOException JavaDoc;
19 import java.io.InputStream JavaDoc;
20 import javax.faces.context.ExternalContext;
21
22 import org.apache.myfaces.config.FacesConfigUnmarshaller;
23 import org.apache.myfaces.config.impl.digester.elements.*;
24 import org.apache.myfaces.config.impl.FacesConfigEntityResolver;
25 import org.apache.commons.digester.Digester;
26 import org.xml.sax.InputSource JavaDoc;
27 import org.xml.sax.SAXException JavaDoc;
28
29
30 /**
31  * @author <a HREF="mailto:oliver@rossmueller.com">Oliver Rossmueller</a>
32  *
33  * $Log: DigesterFacesConfigUnmarshallerImpl.java,v $
34  * Revision 1.6 2005/03/04 00:28:45 mmarinschek
35  * Changes in configuration due to missing Attribute/Property classes for the converter; not building in the functionality yet except for part of the converter properties
36  *
37  * Revision 1.5 2004/11/25 08:34:42 matzew
38  * applyed patch MYFACES-26. Thanks to Takashi Okamoto for supporting this.
39  *
40  * Revision 1.4 2004/10/13 11:50:59 matze
41  * renamed packages to org.apache
42  *
43  * Revision 1.3 2004/07/13 23:11:12 o_rossmueller
44  * fix #990302: set redirect correctly for navigation case (+ test in ConfigurationTest)
45  *
46  * Revision 1.2 2004/07/07 08:34:58 mwessendorf
47  * removed unused import-statements
48  *
49  * Revision 1.1 2004/07/07 00:25:05 o_rossmueller
50  * tidy up config/confignew package (moved confignew classes to package config)
51  *
52  */

53 public class DigesterFacesConfigUnmarshallerImpl implements FacesConfigUnmarshaller
54 {
55
56     private Digester digester;
57
58
59     public DigesterFacesConfigUnmarshallerImpl(ExternalContext externalContext)
60     {
61         digester = new Digester();
62         digester.setValidating(true);
63         digester.setNamespaceAware(true);
64         digester.setEntityResolver(new FacesConfigEntityResolver(externalContext));
65         digester.setUseContextClassLoader(true);
66
67         digester.addObjectCreate("faces-config", FacesConfig.class);
68         digester.addObjectCreate("faces-config/application", Application.class);
69         digester.addSetNext("faces-config/application", "addApplication");
70         digester.addCallMethod("faces-config/application/action-listener", "addActionListener", 0);
71         digester.addCallMethod("faces-config/application/default-render-kit-id", "addDefaultRenderkitId", 0);
72         digester.addCallMethod("faces-config/application/message-bundle", "addMessageBundle", 0);
73         digester.addCallMethod("faces-config/application/navigation-handler", "addNavigationHandler", 0);
74         digester.addCallMethod("faces-config/application/view-handler", "addViewHandler", 0);
75         digester.addCallMethod("faces-config/application/state-manager", "addStateManager", 0);
76         digester.addCallMethod("faces-config/application/property-resolver", "addPropertyResolver", 0);
77         digester.addCallMethod("faces-config/application/variable-resolver", "addVariableResolver", 0);
78         digester.addObjectCreate("faces-config/application/locale-config", LocaleConfig.class);
79         digester.addSetNext("faces-config/application/locale-config", "addLocaleConfig");
80         digester.addCallMethod("faces-config/application/locale-config/default-locale", "setDefaultLocale", 0);
81         digester.addCallMethod("faces-config/application/locale-config/supported-locale", "addSupportedLocale", 0);
82
83         digester.addObjectCreate("faces-config/factory", Factory.class);
84         digester.addSetNext("faces-config/factory", "addFactory");
85         digester.addCallMethod("faces-config/factory/application-factory", "addApplicationFactory", 0);
86         digester.addCallMethod("faces-config/factory/faces-context-factory", "addFacesContextFactory", 0);
87         digester.addCallMethod("faces-config/factory/lifecycle-factory", "addLifecycleFactory", 0);
88         digester.addCallMethod("faces-config/factory/render-kit-factory", "addRenderkitFactory", 0);
89
90         digester.addCallMethod("faces-config/component", "addComponent", 2);
91         digester.addCallParam("faces-config/component/component-type", 0);
92         digester.addCallParam("faces-config/component/component-class", 1);
93
94         digester.addObjectCreate("faces-config/converter", Converter.class);
95         digester.addSetNext("faces-config/converter", "addConverter");
96         digester.addCallMethod("faces-config/converter/converter-id", "setConverterId", 0);
97         digester.addCallMethod("faces-config/converter/converter-for-class", "setForClass", 0);
98         digester.addCallMethod("faces-config/converter/converter-class", "setConverterClass", 0);
99         digester.addObjectCreate("faces-config/converter/attribute",Attribute.class);
100         digester.addSetNext("faces-config/converter/attribute","addAttribute");
101         digester.addCallMethod("faces-config/converter/attribute/description", "addDescription", 0);
102         digester.addCallMethod("faces-config/converter/attribute/display-name", "addDisplayName", 0);
103         digester.addCallMethod("faces-config/converter/attribute/icon", "addIcon", 0);
104         digester.addCallMethod("faces-config/converter/attribute/attribute-name", "setAttributeName", 0);
105         digester.addCallMethod("faces-config/converter/attribute/attribute-class", "setAttributeClass", 0);
106         digester.addCallMethod("faces-config/converter/attribute/default-value", "setDefaultValue", 0);
107         digester.addCallMethod("faces-config/converter/attribute/suggested-value", "setSuggestedValue", 0);
108         digester.addCallMethod("faces-config/converter/attribute/attribute-extension", "addAttributeExtension", 0);
109         digester.addObjectCreate("faces-config/converter/property",Property.class);
110         digester.addSetNext("faces-config/converter/property","addProperty");
111         digester.addCallMethod("faces-config/converter/property/description", "addDescription", 0);
112         digester.addCallMethod("faces-config/converter/property/display-name", "addDisplayName", 0);
113         digester.addCallMethod("faces-config/converter/property/icon", "addIcon", 0);
114         digester.addCallMethod("faces-config/converter/property/property-name", "setPropertyName", 0);
115         digester.addCallMethod("faces-config/converter/property/property-class", "setPropertyClass", 0);
116         digester.addCallMethod("faces-config/converter/property/default-value", "setDefaultValue", 0);
117         digester.addCallMethod("faces-config/converter/property/suggested-value", "setSuggestedValue", 0);
118         digester.addCallMethod("faces-config/converter/property/property-extension", "addPropertyExtension", 0);
119
120         digester.addObjectCreate("faces-config/managed-bean", ManagedBean.class);
121         digester.addSetNext("faces-config/managed-bean", "addManagedBean");
122         digester.addCallMethod("faces-config/managed-bean/managed-bean-name", "setName", 0);
123         digester.addCallMethod("faces-config/managed-bean/managed-bean-class", "setBeanClass", 0);
124         digester.addCallMethod("faces-config/managed-bean/managed-bean-scope", "setScope", 0);
125         digester.addObjectCreate("faces-config/managed-bean/managed-property", ManagedProperty.class);
126         digester.addSetNext("faces-config/managed-bean/managed-property", "addProperty");
127         digester.addCallMethod("faces-config/managed-bean/managed-property/property-name", "setPropertyName", 0);
128         digester.addCallMethod("faces-config/managed-bean/managed-property/property-class", "setPropertyClass", 0);
129         digester.addCallMethod("faces-config/managed-bean/managed-property/null-value", "setNullValue");
130         digester.addCallMethod("faces-config/managed-bean/managed-property/value", "setValue", 0);
131         digester.addObjectCreate("faces-config/managed-bean/managed-property/map-entries", MapEntries.class);
132         digester.addSetNext("faces-config/managed-bean/managed-property/map-entries", "setMapEntries");
133         digester.addCallMethod("faces-config/managed-bean/managed-property/map-entries/key-class", "setKeyClass", 0);
134         digester.addCallMethod("faces-config/managed-bean/managed-property/map-entries/value-class", "setValueClass", 0);
135         digester.addObjectCreate("faces-config/managed-bean/managed-property/map-entries/map-entry", MapEntries.Entry.class);
136         digester.addSetNext("faces-config/managed-bean/managed-property/map-entries/map-entry", "addEntry");
137         digester.addCallMethod("faces-config/managed-bean/managed-property/map-entries/map-entry/key", "setKey", 0);
138         digester.addCallMethod("faces-config/managed-bean/managed-property/map-entries/map-entry/null-value", "setNullValue");
139         digester.addCallMethod("faces-config/managed-bean/managed-property/map-entries/map-entry/value", "setValue", 0);
140         digester.addObjectCreate("faces-config/managed-bean/managed-property/list-entries", ListEntries.class);
141         digester.addSetNext("faces-config/managed-bean/managed-property/list-entries", "setListEntries");
142         digester.addCallMethod("faces-config/managed-bean/managed-property/list-entries/value-class", "setValueClass", 0);
143         digester.addObjectCreate("faces-config/managed-bean/managed-property/list-entries/null-value", ListEntries.Entry.class);
144         digester.addSetNext("faces-config/managed-bean/managed-property/list-entries/null-value", "addEntry");
145         digester.addCallMethod("faces-config/managed-bean/managed-property/list-entries/null-value", "setNullValue");
146         digester.addObjectCreate("faces-config/managed-bean/managed-property/list-entries/value", ListEntries.Entry.class);
147         digester.addSetNext("faces-config/managed-bean/managed-property/list-entries/value", "addEntry");
148         digester.addCallMethod("faces-config/managed-bean/managed-property/list-entries/value", "setValue", 0);
149         digester.addObjectCreate("faces-config/managed-bean/map-entries", MapEntries.class);
150         digester.addSetNext("faces-config/managed-bean/map-entries", "setMapEntries");
151         digester.addCallMethod("faces-config/managed-bean/map-entries/key-class", "setKeyClass", 0);
152         digester.addCallMethod("faces-config/managed-bean/map-entries/value-class", "setValueClass", 0);
153         digester.addObjectCreate("faces-config/managed-bean/map-entries/map-entry", MapEntries.Entry.class);
154         digester.addSetNext("faces-config/managed-bean/map-entries/map-entry", "addEntry");
155         digester.addCallMethod("faces-config/managed-bean/map-entries/map-entry/key", "setKey", 0);
156         digester.addCallMethod("faces-config/managed-bean/map-entries/map-entry/null-value", "setNullValue");
157         digester.addCallMethod("faces-config/managed-bean/map-entries/map-entry/value", "setValue", 0);
158         digester.addObjectCreate("faces-config/managed-bean/list-entries", ListEntries.class);
159         digester.addSetNext("faces-config/managed-bean/list-entries", "setListEntries");
160         digester.addCallMethod("faces-config/managed-bean/list-entries/value-class", "setValueClass", 0);
161         digester.addObjectCreate("faces-config/managed-bean/list-entries/null-value", ListEntries.Entry.class);
162         digester.addSetNext("faces-config/managed-bean/list-entries/null-value", "addEntry");
163         digester.addCallMethod("faces-config/managed-bean/list-entries/null-value", "setNullValue");
164         digester.addObjectCreate("faces-config/managed-bean/list-entries/value", ListEntries.Entry.class);
165         digester.addSetNext("faces-config/managed-bean/list-entries/value", "addEntry");
166         digester.addCallMethod("faces-config/managed-bean/list-entries/value", "setValue", 0);
167
168         digester.addObjectCreate("faces-config/navigation-rule", NavigationRule.class);
169         digester.addSetNext("faces-config/navigation-rule", "addNavigationRule");
170         digester.addCallMethod("faces-config/navigation-rule/from-view-id", "setFromViewId", 0);
171         digester.addObjectCreate("faces-config/navigation-rule/navigation-case", NavigationCase.class);
172         digester.addSetNext("faces-config/navigation-rule/navigation-case", "addNavigationCase");
173         digester.addCallMethod("faces-config/navigation-rule/navigation-case/from-action", "setFromAction", 0);
174         digester.addCallMethod("faces-config/navigation-rule/navigation-case/from-outcome", "setFromOutcome", 0);
175         digester.addCallMethod("faces-config/navigation-rule/navigation-case/to-view-id", "setToViewId", 0);
176         digester.addCallMethod("faces-config/navigation-rule/navigation-case/redirect", "setRedirect");
177
178         digester.addObjectCreate("faces-config/render-kit", RenderKit.class);
179         digester.addSetNext("faces-config/render-kit", "addRenderKit");
180         digester.addCallMethod("faces-config/render-kit/render-kit-id", "setId", 0);
181         digester.addCallMethod("faces-config/render-kit/render-kit-class", "setRenderKitClass", 0);
182         digester.addObjectCreate("faces-config/render-kit/renderer", Renderer.class);
183         digester.addSetNext("faces-config/render-kit/renderer", "addRenderer");
184         digester.addCallMethod("faces-config/render-kit/renderer/component-family", "setComponentFamily", 0);
185         digester.addCallMethod("faces-config/render-kit/renderer/renderer-type", "setRendererType", 0);
186         digester.addCallMethod("faces-config/render-kit/renderer/renderer-class", "setRendererClass", 0);
187
188         digester.addCallMethod("faces-config/lifecycle/phase-listener", "addLifecyclePhaseListener", 0);
189
190         digester.addCallMethod("faces-config/validator", "addValidator", 2);
191         digester.addCallParam("faces-config/validator/validator-id", 0);
192         digester.addCallParam("faces-config/validator/validator-class", 1);
193     }
194
195
196     public Object JavaDoc getFacesConfig(InputStream JavaDoc in, String JavaDoc systemId) throws IOException JavaDoc, SAXException JavaDoc
197     {
198         InputSource JavaDoc is = new InputSource JavaDoc(in);
199         is.setSystemId(systemId);
200         return digester.parse(is);
201     }
202
203
204 }
205
Popular Tags