    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
    015package org.apache.tapestry5.util;
    016
    017import java.io.IOException;
    018import java.io.OutputStream;
    019import java.io.PrintWriter;
    020
    021import org.apache.tapestry5.Link;
    022import 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 */
    028public 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 addHeader(String name, String value)
    084    {
    085        response.addHeader(name, value);
    086    }
    087
    088    public void setIntHeader(String name, int value)
    089    {
    090        response.setIntHeader(name, value);
    091    }
    092
    093    public String encodeURL(String URL)
    094    {
    095        return response.encodeURL(URL);
    096    }
    097
    098    public String encodeRedirectURL(String URL)
    099    {
    100        return response.encodeRedirectURL(URL);
    101    }
    102
    103    public boolean isCommitted()
    104    {
    105        return response.isCommitted();
    106    }
    107
    108    public void disableCompression()
    109    {
    110        response.disableCompression();
    111    }
    112}