01: /*
02: * Copyright 2004, 2005, 2006 Odysseus Software GmbH
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
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 de.odysseus.calyxo.base;
17:
18: import javax.servlet.ServletContext;
19: import javax.servlet.jsp.el.ExpressionEvaluator;
20:
21: /**
22: * Module context interface.
23: * An application consists of several modules, represented by a context.
24: * <ul>
25: * <li>Each module has a unique name</li>
26: * <li>The modules of an application share the same servlet context</li>
27: * <li>Within a module, there are so-called actions, which are selected
28: * by a context-relative path. The context provides a method to
29: * get this path for a given action identifier.
30: * <li/>
31: * <li>A module context offers its own scope, just like request, session
32: * and servlet context.
33: * </li>
34: * </ul>
35: *
36: * @see de.odysseus.calyxo.base.ModuleSupport
37: * @author Christoph Beck
38: */
39: public interface ModuleContext {
40: /**
41: * Answer the module's name
42: */
43: public String getName();
44:
45: /**
46: * Answer the context-relative path for the specified action.
47: * @param action the action identifier
48: * @return action path (or null if there is no such action)
49: */
50: public String getPath(String action);
51:
52: /**
53: * Get the value of a module attribute
54: */
55: public Object getAttribute(String name);
56:
57: /**
58: * Set the value of a module attribute
59: */
60: public void setAttribute(String name, Object value);
61:
62: /**
63: * Remove a module attribute
64: */
65: public void removeAttribute(String name);
66:
67: /**
68: * Get the servlet context
69: */
70: public ServletContext getServletContext();
71:
72: /**
73: * Get module initialization parameter.
74: */
75: public String getInitParameter(String name);
76:
77: /**
78: * Get the module's class loader
79: */
80: public ClassLoader getClassLoader();
81:
82: /**
83: * Get the module's expression evaluator
84: */
85: public ExpressionEvaluator getExpressionEvaluator();
86: }
|