001    /*
002    * Copyright 2004 The Apache Software Foundation
003    *
004    * Licensed under the Apache License, Version 2.0 (the "License");
005    * you may not use this file except in compliance with the License.
006    * You may obtain a copy of the License at
007    *
008    *     http://www.apache.org/licenses/LICENSE-2.0
009    *
010    * Unless required by applicable law or agreed to in writing, software
011    * distributed under the License is distributed on an "AS IS" BASIS,
012    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013    * See the License for the specific language governing permissions and
014    * limitations under the License.
015    */
016    package javax.servlet.http;
017    
018    import java.io.IOException;
019    
020    import javax.servlet.ServletResponseWrapper;
021    
022    /**
023     * 
024     * Provides a convenient implementation of the HttpServletResponse interface that
025     * can be subclassed by developers wishing to adapt the response from a Servlet.
026     * This class implements the Wrapper or Decorator pattern. Methods default to
027     * calling through to the wrapped response object.
028     * 
029     * @author      Various
030     * @version     $Version$
031      * @since      v 2.3
032     *
033     * @see         javax.servlet.http.HttpServletResponse
034     *
035     */
036    
037    public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse {
038    
039    
040        /** 
041        * Constructs a response adaptor wrapping the given response.
042        * @throws java.lang.IllegalArgumentException if the response is null
043        */
044        public HttpServletResponseWrapper(HttpServletResponse response) {
045                super(response);
046        }
047        
048        private HttpServletResponse _getHttpServletResponse() {
049            return (HttpServletResponse) super.getResponse();
050        }
051        
052        /**
053         * The default behavior of this method is to call addCookie(Cookie cookie)
054         * on the wrapped response object.
055         */
056        public void addCookie(Cookie cookie) {
057            this._getHttpServletResponse().addCookie(cookie);
058        }
059    
060        /**
061         * The default behavior of this method is to call containsHeader(String name)
062         * on the wrapped response object.
063         */
064    
065     
066        public boolean containsHeader(String name) {
067            return this._getHttpServletResponse().containsHeader(name);
068        }
069        
070        /**
071         * The default behavior of this method is to call encodeURL(String url)
072         * on the wrapped response object.
073         */
074        public String encodeURL(String url) {
075            return this._getHttpServletResponse().encodeURL(url);
076        }
077    
078        /**
079         * The default behavior of this method is to return encodeRedirectURL(String url)
080         * on the wrapped response object.
081         */
082        public String encodeRedirectURL(String url) {
083            return this._getHttpServletResponse().encodeRedirectURL(url);
084        }
085    
086        /**
087         * The default behavior of this method is to call encodeUrl(String url)
088         * on the wrapped response object.
089         */
090        public String encodeUrl(String url) {
091            return this._getHttpServletResponse().encodeUrl(url);
092        }
093        
094        /**
095         * The default behavior of this method is to return encodeRedirectUrl(String url)
096         * on the wrapped response object.
097         */
098        public String encodeRedirectUrl(String url) {
099            return this._getHttpServletResponse().encodeRedirectUrl(url);
100        }
101        
102        /**
103         * The default behavior of this method is to call sendError(int sc, String msg)
104         * on the wrapped response object.
105         */
106        public void sendError(int sc, String msg) throws IOException {
107            this._getHttpServletResponse().sendError(sc, msg);
108        }
109    
110        /**
111         * The default behavior of this method is to call sendError(int sc)
112         * on the wrapped response object.
113         */
114    
115    
116        public void sendError(int sc) throws IOException {
117            this._getHttpServletResponse().sendError(sc);
118        }
119    
120        /**
121         * The default behavior of this method is to return sendRedirect(String location)
122         * on the wrapped response object.
123         */
124        public void sendRedirect(String location) throws IOException {
125            this._getHttpServletResponse().sendRedirect(location);
126        }
127        
128        /**
129         * The default behavior of this method is to call setDateHeader(String name, long date)
130         * on the wrapped response object.
131         */
132        public void setDateHeader(String name, long date) {
133            this._getHttpServletResponse().setDateHeader(name, date);
134        }
135        
136        /**
137         * The default behavior of this method is to call addDateHeader(String name, long date)
138         * on the wrapped response object.
139         */
140       public void addDateHeader(String name, long date) {
141            this._getHttpServletResponse().addDateHeader(name, date);
142        }
143        
144        /**
145         * The default behavior of this method is to return setHeader(String name, String value)
146         * on the wrapped response object.
147         */
148        public void setHeader(String name, String value) {
149            this._getHttpServletResponse().setHeader(name, value);
150        }
151        
152        /**
153         * The default behavior of this method is to return addHeader(String name, String value)
154         * on the wrapped response object.
155         */
156         public void addHeader(String name, String value) {
157            this._getHttpServletResponse().addHeader(name, value);
158        }
159        
160        /**
161         * The default behavior of this method is to call setIntHeader(String name, int value)
162         * on the wrapped response object.
163         */
164        public void setIntHeader(String name, int value) {
165            this._getHttpServletResponse().setIntHeader(name, value);
166        }
167        
168        /**
169         * The default behavior of this method is to call addIntHeader(String name, int value)
170         * on the wrapped response object.
171         */
172        public void addIntHeader(String name, int value) {
173            this._getHttpServletResponse().addIntHeader(name, value);
174        }
175    
176        /**
177         * The default behavior of this method is to call setStatus(int sc)
178         * on the wrapped response object.
179         */
180    
181    
182        public void setStatus(int sc) {
183            this._getHttpServletResponse().setStatus(sc);
184        }
185        
186        /**
187         * The default behavior of this method is to call setStatus(int sc, String sm)
188         * on the wrapped response object.
189         */
190         public void setStatus(int sc, String sm) {
191            this._getHttpServletResponse().setStatus(sc, sm);
192        }
193    
194       
195    }