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