KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > chain > web > portlet > PortletWebContext


1 /*
2  * Copyright 1999-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.commons.chain.web.portlet;
17
18
19 import java.util.Collections JavaDoc;
20 import java.util.Map JavaDoc;
21 import javax.portlet.PortletContext;
22 import javax.portlet.PortletRequest;
23 import javax.portlet.PortletResponse;
24 import org.apache.commons.chain.web.WebContext;
25
26
27 /**
28  * <p>Concrete implementation of {@link WebContext} suitable for use in
29  * portlets. The abstract methods are mapped to the appropriate
30  * collections of the underlying portlet context, request, and response
31  * instances that are passed to the constructor (or the initialize method).</p>
32  *
33  * @author Craig R. McClanahan
34  * @version $Revision: 1.6 $ $Date: 2004/02/25 00:01:06 $
35  */

36
37 public class PortletWebContext extends WebContext {
38
39
40     // ------------------------------------------------------------ Constructors
41

42
43     /**
44      * <p>Construct an uninitialized {@link PortletWebContext} instance.</p>
45      */

46     public PortletWebContext() {
47
48         ;
49
50     }
51
52
53     /**
54      * <p>Construct a {@link PortletWebContext} instance that is initialized
55      * with the specified Portlet API objects.</p>
56      *
57      * @param context The <code>PortletContext</code> for this web application
58      * @param request The <code>PortletRequest</code> for this request
59      * @param response The <code>PortletResponse</code> for this request
60      */

61     public PortletWebContext(PortletContext context,
62                              PortletRequest request,
63                              PortletResponse response) {
64
65         initialize(context, request, response);
66
67     }
68
69
70     // ------------------------------------------------------ Instance Variables
71

72
73     /**
74      * <p>The lazily instantiated <code>Map</code> of application scope
75      * attributes.</p>
76      */

77     private Map JavaDoc applicationScope = null;
78
79
80     /**
81      * <p>The <code>PortletContext</code> for this web application.</p>
82      */

83     protected PortletContext context = null;
84
85
86     /**
87      * <p>The lazily instantiated <code>Map</code> of header name-value
88      * combinations (immutable).</p>
89      */

90     private Map JavaDoc header = null;
91
92
93     /**
94      * <p>The lazily instantitated <code>Map</code> of header name-values
95      * combinations (immutable).</p>
96      */

97     private Map JavaDoc headerValues = null;
98
99
100     /**
101      * <p>The lazily instantiated <code>Map</code> of context initialization
102      * parameters.</p>
103      */

104     private Map JavaDoc initParam = null;
105
106
107     /**
108      * <p>The lazily instantiated <code>Map</code> of request
109      * parameter name-value.</p>
110      */

111     private Map JavaDoc param = null;
112
113
114     /**
115      * <p>The lazily instantiated <code>Map</code> of request
116      * parameter name-values.</p>
117      */

118     private Map JavaDoc paramValues = null;
119
120
121     /**
122      * <p>The <code>PortletRequest</code> for this request.</p>
123      */

124     protected PortletRequest request = null;
125
126
127     /**
128      * <p>The lazily instantiated <code>Map</code> of request scope
129      * attributes.</p>
130      */

131     private Map JavaDoc requestScope = null;
132
133
134     /**
135      * <p>The <code>PortletResponse</code> for this request.</p>
136      */

137     protected PortletResponse response = null;
138
139
140     /**
141      * <p>The lazily instantiated <code>Map</code> of session scope
142      * attributes.</p>
143      */

144     private Map JavaDoc sessionScope = null;
145
146
147     // ---------------------------------------------------------- Public Methods
148

149
150     /**
151      * <p>Return the {@link PortletContext} for this context.</p>
152      */

153     public PortletContext getContext() {
154
155     return (this.context);
156
157     }
158
159
160     /**
161      * <p>Return the {@link PortletRequest} for this context.</p>
162      */

163     public PortletRequest getRequest() {
164
165     return (this.request);
166
167     }
168
169
170     /**
171      * <p>Return the {@link PortletResponse} for this context.</p>
172      */

173     public PortletResponse getResponse() {
174
175     return (this.response);
176
177     }
178
179
180     /**
181      * <p>Initialize (or reinitialize) this {@link PortletWebContext} instance
182      * for the specified Portlet API objects.</p>
183      *
184      * @param context The <code>PortletContext</code> for this web application
185      * @param request The <code>PortletRequest</code> for this request
186      * @param response The <code>PortletResponse</code> for this request
187      */

188     public void initialize(PortletContext context,
189                            PortletRequest request,
190                            PortletResponse response) {
191
192         // Save the specified Portlet API object references
193
this.context = context;
194         this.request = request;
195         this.response = response;
196
197         // Perform other setup as needed
198

199     }
200
201
202     /**
203      * <p>Release references to allocated resources acquired in
204      * <code>initialize()</code> of via subsequent processing. After this
205      * method is called, subsequent calls to any other method than
206      * <code>initialize()</code> will return undefined results.</p>
207      */

208     public void release() {
209
210         // Release references to allocated collections
211
applicationScope = null;
212         header = null;
213         headerValues = null;
214         initParam = null;
215         param = null;
216         paramValues = null;
217         requestScope = null;
218         sessionScope = null;
219
220         // Release references to Portlet API objects
221
context = null;
222         request = null;
223         response = null;
224
225     }
226
227
228
229     // ------------------------------------------------------ WebContext Methods
230

231
232     public Map JavaDoc getApplicationScope() {
233
234         if ((applicationScope == null) && (context != null)) {
235             applicationScope = new PortletApplicationScopeMap(context);
236         }
237         return (applicationScope);
238
239     }
240
241
242     public Map JavaDoc getHeader() {
243
244         if ((header == null) && (request != null)) {
245         // header = new PortletHeaderMap(request);
246
header = Collections.EMPTY_MAP;
247         }
248         return (header);
249
250     }
251
252
253     public Map JavaDoc getHeaderValues() {
254
255         if ((headerValues == null) && (request != null)) {
256         // headerValues = new PortletHeaderValuesMap(request);
257
headerValues = Collections.EMPTY_MAP;
258         }
259         return (headerValues);
260
261     }
262
263
264     public Map JavaDoc getInitParam() {
265
266         if ((initParam == null) && (context != null)) {
267             initParam = new PortletInitParamMap(context);
268         }
269         return (initParam);
270
271     }
272
273
274     public Map JavaDoc getParam() {
275
276         if ((param == null) && (request != null)) {
277             param = new PortletParamMap(request);
278         }
279         return (param);
280
281     }
282
283
284     public Map JavaDoc getParamValues() {
285
286         if ((paramValues == null) && (request != null)) {
287             paramValues = new PortletParamValuesMap(request);
288         }
289         return (paramValues);
290
291     }
292
293
294     public Map JavaDoc getRequestScope() {
295
296         if ((requestScope == null) && (request != null)) {
297             requestScope = new PortletRequestScopeMap(request);
298         }
299         return (requestScope);
300
301     }
302
303
304     public Map JavaDoc getSessionScope() {
305
306         if ((sessionScope == null) && (request != null)) {
307             sessionScope =
308         new PortletSessionScopeMap(request.getPortletSession());
309         }
310         return (sessionScope);
311
312     }
313
314
315
316 }
317
Popular Tags