    001// Copyright 2009, 2010, 2011, 2012 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.services;
    016
    017import java.util.List;
    018import java.util.Locale;
    019
    020import org.apache.tapestry5.http.services.Request;
    021import org.apache.tapestry5.http.services.Session;
    022
    023/**
    024 * Class that wraps an {@linkplain Request}, delegating all its methods.
    025 *
    026 * @since 5.1.0.1
    027 */
    028public class DelegatingRequest implements Request
    029{
    030
    031    private Request request;
    032
    033    /**
    034     * No-arg constructor. It should only be used for testing purposes.
    035     */
    036    public DelegatingRequest()
    037    {
    038    }
    039
    040    /**
    041     * Constructor that receives a {@linkplain Request}.
    042     *
    043     * @param request
    044     *            a {@link Request}. It cannot be null.
    045     */
    046    public DelegatingRequest(Request request)
    047    {
    048        setRequest(request);
    049    }
    050
    051    /**
    052     * Sets the delegate request.
    053     *
    054     * @param request
    055     *            a {@link Request}. It cannot be null.
    056     */
    057    public void setRequest(Request request)
    058    {
    059        assert request != null;
    060        this.request = request;
    061    }
    062
    063    public Object getAttribute(String name)
    064    {
    065        return request.getAttribute(name);
    066    }
    067
    068    public List<String> getAttributeNames()
    069    {
    070        return request.getAttributeNames();
    071    }
    072
    073    public String getContextPath()
    074    {
    075        return request.getContextPath();
    076    }
    077
    078    public long getDateHeader(String name)
    079    {
    080        return request.getDateHeader(name);
    081    }
    082
    083    public String getHeader(String name)
    084    {
    085        return request.getHeader(name);
    086    }
    087
    088    public List<String> getHeaderNames()
    089    {
    090        return request.getHeaderNames();
    091    }
    092
    093    public Locale getLocale()
    094    {
    095        return request.getLocale();
    096    }
    097
    098    public String getMethod()
    099    {
    100        return request.getMethod();
    101    }
    102
    103    public String getParameter(String name)
    104    {
    105        return request.getParameter(name);
    106    }
    107
    108    public List<String> getParameterNames()
    109    {
    110        return request.getParameterNames();
    111    }
    112
    113    public String[] getParameters(String name)
    114    {
    115        return request.getParameters(name);
    116    }
    117
    118    public String getPath()
    119    {
    120        return request.getPath();
    121    }
    122
    123    public String getServerName()
    124    {
    125        return request.getServerName();
    126    }
    127
    128    public Session getSession(boolean create)
    129    {
    130        return request.getSession(create);
    131    }
    132
    133    public boolean isRequestedSessionIdValid()
    134    {
    135        return request.isRequestedSessionIdValid();
    136    }
    137
    138    public boolean isSecure()
    139    {
    140        return request.isSecure();
    141    }
    142
    143    public boolean isXHR()
    144    {
    145        return request.isXHR();
    146    }
    147
    148    public void setAttribute(String name, Object value)
    149    {
    150        request.setAttribute(name, value);
    151    }
    152
    153    public int getLocalPort()
    154    {
    155        return request.getLocalPort();
    156    }
    157
    158    public int getServerPort()
    159    {
    160        return request.getServerPort();
    161    }
    162
    163    public String getRemoteHost()
    164    {
    165        return request.getRemoteHost();
    166    }
    167
    168    public boolean isSessionInvalidated()
    169    {
    170        return request.isSessionInvalidated();
    171    }
    172}