001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.commons.chain.web.faces; 018 019 020 import java.util.Map; 021 import javax.faces.context.FacesContext; 022 import org.apache.commons.chain.web.WebContext; 023 024 025 /** 026 * <p>Concrete implementation of {@link WebContext} suitable for use in 027 * JavaServer Faces apps. The abstract methods are mapped to the appropriate 028 * collections of the underlying <code>FacesContext</code> instance 029 * that is passed to the constructor (or the initialize method).</p> 030 * 031 * @author Craig R. McClanahan 032 * @version $Revision: 480477 $ $Date: 2006-11-29 08:34:52 +0000 (Wed, 29 Nov 2006) $ 033 */ 034 035 public class FacesWebContext extends WebContext { 036 037 038 // ------------------------------------------------------------ Constructors 039 040 041 /** 042 * <p>Construct an uninitialized {@link FacesWebContext} instance.</p> 043 */ 044 public FacesWebContext() { 045 } 046 047 048 /** 049 * <p>Construct a {@link FacesWebContext} instance that is initialized 050 * with the specified JavaServer Faces API objects.</p> 051 * 052 * @param context The <code>FacesContext</code> for this request 053 */ 054 public FacesWebContext(FacesContext context) { 055 056 initialize(context); 057 058 } 059 060 061 // ------------------------------------------------------ Instance Variables 062 063 064 /** 065 * <p>The <code>FacesContext</code> instance for the request represented 066 * by this {@link WebContext}.</p> 067 */ 068 private FacesContext context = null; 069 070 071 // ---------------------------------------------------------- Public Methods 072 073 074 /** 075 * <p>Return the <code>FacesContext</code> instance for the request 076 * associated with this {@link FacesWebContext}.</p> 077 * 078 * @return The <code>FacesContext</code> for this request 079 */ 080 public FacesContext getContext() { 081 082 return (this.context); 083 084 } 085 086 087 /** 088 * <p>Initialize (or reinitialize) this {@link FacesWebContext} instance 089 * for the specified JavaServer Faces API objects.</p> 090 * 091 * @param context The <code>FacesContext</code> for this request 092 */ 093 public void initialize(FacesContext context) { 094 095 this.context = context; 096 097 } 098 099 100 /** 101 * <p>Release references to allocated resources acquired in 102 * <code>initialize()</code> of via subsequent processing. After this 103 * method is called, subsequent calls to any other method than 104 * <code>initialize()</code> will return undefined results.</p> 105 */ 106 public void release() { 107 108 context = null; 109 110 } 111 112 113 114 // ------------------------------------------------------ WebContext Methods 115 116 117 /** 118 * See the {@link WebContext}'s Javadoc. 119 * 120 * @return Application scope Map. 121 */ 122 public Map getApplicationScope() { 123 124 return (context.getExternalContext().getApplicationMap()); 125 126 } 127 128 129 /** 130 * See the {@link WebContext}'s Javadoc. 131 * 132 * @return Header values Map. 133 */ 134 public Map getHeader() { 135 136 return (context.getExternalContext().getRequestHeaderMap()); 137 138 } 139 140 141 /** 142 * See the {@link WebContext}'s Javadoc. 143 * 144 * @return Header values Map. 145 */ 146 public Map getHeaderValues() { 147 148 return (context.getExternalContext().getRequestHeaderValuesMap()); 149 150 } 151 152 153 /** 154 * See the {@link WebContext}'s Javadoc. 155 * 156 * @return Initialization parameter Map. 157 */ 158 public Map getInitParam() { 159 160 return (context.getExternalContext().getInitParameterMap()); 161 162 } 163 164 165 /** 166 * See the {@link WebContext}'s Javadoc. 167 * 168 * @return Request parameter Map. 169 */ 170 public Map getParam() { 171 172 return (context.getExternalContext().getRequestParameterMap()); 173 174 } 175 176 177 /** 178 * See the {@link WebContext}'s Javadoc. 179 * 180 * @return Request parameter Map. 181 */ 182 public Map getParamValues() { 183 184 return (context.getExternalContext().getRequestParameterValuesMap()); 185 186 } 187 188 189 /** 190 * See the {@link WebContext}'s Javadoc. 191 * 192 * @return Map of Cookies. 193 * @since Chain 1.1 194 */ 195 public Map getCookies() { 196 197 return (context.getExternalContext().getRequestCookieMap()); 198 199 } 200 201 202 /** 203 * See the {@link WebContext}'s Javadoc. 204 * 205 * @return Request scope Map. 206 */ 207 public Map getRequestScope() { 208 209 return (context.getExternalContext().getRequestMap()); 210 211 } 212 213 214 /** 215 * See the {@link WebContext}'s Javadoc. 216 * 217 * @return Session scope Map. 218 */ 219 public Map getSessionScope() { 220 221 return (context.getExternalContext().getSessionMap()); 222 223 } 224 225 226 227 }