KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > web > servlet > ThemeResolver


1 /*
2  * Copyright 2002-2005 the original author or authors.
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
17 package org.springframework.web.servlet;
18
19 import javax.servlet.http.HttpServletRequest JavaDoc;
20 import javax.servlet.http.HttpServletResponse JavaDoc;
21
22 /**
23  * Interface for web-based theme resolution strategies that allows for
24  * both theme resolution via the request and theme modification via
25  * request and response.
26  *
27  * <p>This interface allows for implementations based on session,
28  * cookies, etc. The default implementation is FixedThemeResolver,
29  * simply using a configured default theme.
30  *
31  * <p>Note that this resolver is only responsible for determining the
32  * current theme name. The Theme instance for the resolved theme name
33  * gets looked up by DispatcherServlet via the respective ThemeSource,
34  * i.e. the current WebApplicationContext.
35  *
36  * <p>Use RequestContext.getTheme() to retrieve the current theme in
37  * controllers or views, independent of the actual resolution strategy.
38  *
39  * @author Jean-Pierre Pawlak
40  * @author Juergen Hoeller
41  * @since 17.06.2003
42  * @see org.springframework.web.servlet.theme.FixedThemeResolver
43  * @see org.springframework.ui.context.Theme
44  * @see org.springframework.ui.context.ThemeSource
45  * @see org.springframework.web.servlet.support.RequestContext#getTheme
46  */

47 public interface ThemeResolver {
48
49   /**
50    * Resolve the current theme name via the given request.
51    * Should return a default theme as fallback in any case.
52    * @param request request to be used for resolution
53    * @return the current theme name
54    */

55     String JavaDoc resolveThemeName(HttpServletRequest JavaDoc request);
56
57   /**
58    * Set the current theme name to the given one.
59    * @param request request to be used for theme name modification
60    * @param response response to be used for theme name modification
61    * @param themeName the new theme name
62      * @throws UnsupportedOperationException if the ThemeResolver implementation
63      * does not support dynamic changing of the theme
64    */

65     void setThemeName(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response, String JavaDoc themeName);
66
67 }
68
Popular Tags