    001    // Copyright 2009, 2010 The Apache Software Foundation
    002    //
    003    // Licensed under the Apache License, Version 2.0 (the "License");
    004    // you may not use this file except in compliance with the License.
    005    // You may obtain a copy of the License at
    006    //
    007    // http://www.apache.org/licenses/LICENSE-2.0
    008    //
    009    // Unless required by applicable law or agreed to in writing, software
    010    // distributed under the License is distributed on an "AS IS" BASIS,
    011    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    012    // See the License for the specific language governing permissions and
    013    // limitations under the License.
    014
    015    package org.apache.tapestry5.util;
    016
    017    import java.io.IOException;
    018    import java.io.OutputStream;
    019    import java.io.PrintWriter;
    020
    021    import org.apache.tapestry5.Link;
    022    import org.apache.tapestry5.services.Response;
    023
    024    /**
    025     * Implementation of {@link org.apache.tapestry5.services.Response} that delegates all method invocations to a delegate
    026     * instance. This is used as a base class for overriding just some behaviors of Response.
    027     */
    028    public class ResponseWrapper implements Response
    029    {
    030        protected final Response response;
    031
    032        public ResponseWrapper(Response response)
    033        {
    034            assert response != null;
    035            this.response = response;
    036        }
    037
    038        public PrintWriter getPrintWriter(String contentType) throws IOException
    039        {
    040            return response.getPrintWriter(contentType);
    041        }
    042
    043        public OutputStream getOutputStream(String contentType) throws IOException
    044        {
    045            return response.getOutputStream(contentType);
    046        }
    047
    048        public void sendRedirect(String URL) throws IOException
    049        {
    050            response.sendRedirect(URL);
    051        }
    052
    053        public void sendRedirect(Link link) throws IOException
    054        {
    055            response.sendRedirect(link);
    056        }
    057
    058        public void setStatus(int sc)
    059        {
    060            response.setStatus(sc);
    061        }
    062
    063        public void sendError(int sc, String message) throws IOException
    064        {
    065            response.sendError(sc, message);
    066        }
    067
    068        public void setContentLength(int length)
    069        {
    070            response.setContentLength(length);
    071        }
    072
    073        public void setDateHeader(String name, long date)
    074        {
    075            response.setDateHeader(name, date);
    076        }
    077
    078        public void setHeader(String name, String value)
    079        {
    080            response.setHeader(name, value);
    081        }
    082
    083        public void setIntHeader(String name, int value)
    084        {
    085            response.setIntHeader(name, value);
    086        }
    087
    088        public String encodeURL(String URL)
    089        {
    090            return response.encodeURL(URL);
    091        }
    092
    093        public String encodeRedirectURL(String URL)
    094        {
    095            return response.encodeRedirectURL(URL);
    096        }
    097
    098        public boolean isCommitted()
    099        {
    100            return response.isCommitted();
    101        }
    102
    103        public void disableCompression()
    104        {
    105            response.disableCompression();
    106        }
    107    }