1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts.config;
22
23
24 /**
25 * <p>The collection of static configuration information that describes a
26 * Struts-based module. Multiple modules are identified by a <em>prefix</em>
27 * at the beginning of the context relative portion of the request URI. If no
28 * module prefix can be matched, the default configuration (with a prefix
29 * equal to a zero-length string) is selected, which is elegantly backwards
30 * compatible with the previous Struts behavior that only supported one
31 * module.</p>
32 *
33 * @version $Rev: 471754 $ $Date: 2005-08-06 04:12:10 -0400 (Sat, 06 Aug 2005)
34 * $
35 * @since Struts 1.1
36 */
37 public interface ModuleConfig {
38 /**
39 * <p> Has this module been completely configured yet. Once this flag has
40 * been set, any attempt to modify the configuration will return an
41 * IllegalStateException. </p>
42 */
43 boolean getConfigured();
44
45 /**
46 * <p> The controller configuration object for this module. </p>
47 */
48 ControllerConfig getControllerConfig();
49
50 /**
51 * <p> The controller configuration object for this module. </p>
52 *
53 * @param cc The controller configuration object for this module.
54 */
55 void setControllerConfig(ControllerConfig cc);
56
57 /**
58 * <p> The prefix of the context-relative portion of the request URI, used
59 * to select this configuration versus others supported by the controller
60 * servlet. A configuration with a prefix of a zero-length String is the
61 * default configuration for this web module. </p>
62 */
63 String getPrefix();
64
65 /**
66 * <p> The prefix of the context-relative portion of the request URI, used
67 * to select this configuration versus others supported by the controller
68 * servlet. A configuration with a prefix of a zero-length String is the
69 * default configuration for this web module. </p>
70 *
71 * @param prefix The prefix of the context-relative portion of the request
72 * URI.
73 */
74 public void setPrefix(String prefix);
75
76 /**
77 * <p> The default class name to be used when creating action form bean
78 * instances. </p>
79 */
80 String getActionFormBeanClass();
81
82 /**
83 * <p> The default class name to be used when creating action form bean
84 * instances. </p>
85 *
86 * @param actionFormBeanClass default class name to be used when creating
87 * action form bean instances.
88 */
89 void setActionFormBeanClass(String actionFormBeanClass);
90
91 /**
92 * <p> The default class name to be used when creating action mapping
93 * instances. </p>
94 */
95 String getActionMappingClass();
96
97 /**
98 * <p> The default class name to be used when creating action mapping
99 * instances. </p>
100 *
101 * @param actionMappingClass default class name to be used when creating
102 * action mapping instances.
103 */
104 void setActionMappingClass(String actionMappingClass);
105
106 /**
107 * <p> Add a new <code>ActionConfig</code> instance to the set associated
108 * with this module. </p>
109 *
110 * @param config The new configuration instance to be added
111 * @throws IllegalStateException if this module configuration has been
112 * frozen
113 */
114 void addActionConfig(ActionConfig config);
115
116 /**
117 * <p> Add a new <code>ExceptionConfig</code> instance to the set
118 * associated with this module. </p>
119 *
120 * @param config The new configuration instance to be added
121 * @throws IllegalStateException if this module configuration has been
122 * frozen
123 */
124 void addExceptionConfig(ExceptionConfig config);
125
126 /**
127 * <p> Add a new <code>FormBeanConfig</code> instance to the set
128 * associated with this module. </p>
129 *
130 * @param config The new configuration instance to be added
131 * @throws IllegalStateException if this module configuration has been
132 * frozen
133 */
134 void addFormBeanConfig(FormBeanConfig config);
135
136 /**
137 * <p> The default class name to be used when creating action forward
138 * instances. </p>
139 */
140 String getActionForwardClass();
141
142 /**
143 * <p> The default class name to be used when creating action forward
144 * instances. </p>
145 *
146 * @param actionForwardClass default class name to be used when creating
147 * action forward instances.
148 */
149 void setActionForwardClass(String actionForwardClass);
150
151 /**
152 * <p> Add a new <code>ForwardConfig</code> instance to the set of global
153 * forwards associated with this module. </p>
154 *
155 * @param config The new configuration instance to be added
156 * @throws IllegalStateException if this module configuration has been
157 * frozen
158 */
159 void addForwardConfig(ForwardConfig config);
160
161 /**
162 * <p> Add a new <code>MessageResourcesConfig</code> instance to the set
163 * associated with this module. </p>
164 *
165 * @param config The new configuration instance to be added
166 * @throws IllegalStateException if this module configuration has been
167 * frozen
168 */
169 void addMessageResourcesConfig(MessageResourcesConfig config);
170
171 /**
172 * <p> Add a newly configured {@link PlugInConfig} instance to the set of
173 * plug-in Actions for this module. </p>
174 *
175 * @param plugInConfig The new configuration instance to be added
176 */
177 void addPlugInConfig(PlugInConfig plugInConfig);
178
179 /**
180 * <p> Return the action configuration for the specified path, if any;
181 * otherwise return <code>null</code>. </p>
182 *
183 * @param path Path of the action configuration to return
184 */
185 ActionConfig findActionConfig(String path);
186
187 /**
188 * <p> Return the action configurations for this module. If there are
189 * none, a zero-length array is returned. </p>
190 */
191 ActionConfig[] findActionConfigs();
192
193 /**
194 * <p>Returns the action configuration for the specifed action
195 * action identifier.</p>
196 *
197 * @param actionId the action identifier
198 * @return the action config if found; otherwise <code>null</code>
199 * @see ActionConfig#getActionId()
200 * @since Struts 1.3.6
201 */
202 ActionConfig findActionConfigId(String actionId);
203
204 /**
205 * <p> Return the exception configuration for the specified type, if any;
206 * otherwise return <code>null</code>. </p>
207 *
208 * @param type Exception class name to find a configuration for
209 */
210 ExceptionConfig findExceptionConfig(String type);
211
212 /**
213 * <p> Perform a recursive search for an ExceptionConfig registered for
214 * this class, or for any superclass. This should only be used in the
215 * case when an <code>ActionConfig</code> is not available; otherwise, use
216 * <code>ActionConfig.findException(Class)</code> to preserve the search
217 * order. </p>
218 *
219 * @param type Exception class name to find a configuration for
220 * @see ActionConfig findException(Class)
221 */
222 ExceptionConfig findException(Class type);
223
224 /**
225 * <p> Return the exception configurations for this module. If there are
226 * none, a zero-length array is returned. </p>
227 */
228 ExceptionConfig[] findExceptionConfigs();
229
230 /**
231 * <p> Return the form bean configuration for the specified key, if any;
232 * otherwise return <code>null</code>.
233 *
234 * @param name Name of the form bean configuration to return
235 */
236 FormBeanConfig findFormBeanConfig(String name);
237
238 /**
239 * <p> Return the form bean configurations for this module. If there are
240 * none, a zero-length array is returned. </p>
241 */
242 FormBeanConfig[] findFormBeanConfigs();
243
244 /**
245 * <p> Return the forward configuration for the specified key, if any;
246 * otherwise return <code>null</code>. </p>
247 *
248 * @param name Name of the forward configuration to return
249 */
250 ForwardConfig findForwardConfig(String name);
251
252 /**
253 * <p> Return the form bean configurations for this module. If there are
254 * none, a zero-length array is returned. </p>
255 */
256 ForwardConfig[] findForwardConfigs();
257
258 /**
259 * <p> Return the message resources configuration for the specified key,
260 * if any; otherwise return <code>null</code>. </p>
261 *
262 * @param key Key of the data source configuration to return
263 */
264 MessageResourcesConfig findMessageResourcesConfig(String key);
265
266 /**
267 * <p> Return the message resources configurations for this module. If
268 * there are none, a zero-length array is returned. </p>
269 */
270 MessageResourcesConfig[] findMessageResourcesConfigs();
271
272 /**
273 * <p> Return the configured plug-in actions for this module. If there
274 * are none, a zero-length array is returned. </p>
275 */
276 PlugInConfig[] findPlugInConfigs();
277
278 /**
279 * <p> Freeze the configuration of this module. After this method
280 * returns, any attempt to modify the configuration will return an
281 * IllegalStateException. </p>
282 */
283 void freeze();
284
285 /**
286 * <p> Remove the specified action configuration instance. </p>
287 *
288 * @param config ActionConfig instance to be removed
289 * @throws IllegalStateException if this module configuration has been
290 * frozen
291 */
292 void removeActionConfig(ActionConfig config);
293
294 /**
295 * <p> Remove the specified exception configuration instance. </p>
296 *
297 * @param config ActionConfig instance to be removed
298 * @throws IllegalStateException if this module configuration has been
299 * frozen
300 */
301 void removeExceptionConfig(ExceptionConfig config);
302
303 /**
304 * <p> Remove the specified form bean configuration instance. </p>
305 *
306 * @param config FormBeanConfig instance to be removed
307 * @throws IllegalStateException if this module configuration has been
308 * frozen
309 */
310 void removeFormBeanConfig(FormBeanConfig config);
311
312 /**
313 * <p> Remove the specified forward configuration instance. </p>
314 *
315 * @param config ForwardConfig instance to be removed
316 * @throws IllegalStateException if this module configuration has been
317 * frozen
318 */
319 void removeForwardConfig(ForwardConfig config);
320
321 /**
322 * <p> Remove the specified message resources configuration instance.
323 * </p>
324 *
325 * @param config MessageResourcesConfig instance to be removed
326 * @throws IllegalStateException if this module configuration has been
327 * frozen
328 */
329 void removeMessageResourcesConfig(MessageResourcesConfig config);
330 }