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
020/**
021 * Class that wraps an {@linkplain Request}, delegating all its methods.
022 * 
023 * @since 5.1.0.1
024 */
025public 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 List<String> getAttributeNames()
066    {
067        return request.getAttributeNames();
068    }
069
070    public String getContextPath()
071    {
072        return request.getContextPath();
073    }
074
075    public long getDateHeader(String name)
076    {
077        return request.getDateHeader(name);
078    }
079
080    public String getHeader(String name)
081    {
082        return request.getHeader(name);
083    }
084
085    public List<String> getHeaderNames()
086    {
087        return request.getHeaderNames();
088    }
089
090    public Locale getLocale()
091    {
092        return request.getLocale();
093    }
094
095    public String getMethod()
096    {
097        return request.getMethod();
098    }
099
100    public String getParameter(String name)
101    {
102        return request.getParameter(name);
103    }
104
105    public List<String> getParameterNames()
106    {
107        return request.getParameterNames();
108    }
109
110    public String[] getParameters(String name)
111    {
112        return request.getParameters(name);
113    }
114
115    public String getPath()
116    {
117        return request.getPath();
118    }
119
120    public String getServerName()
121    {
122        return request.getServerName();
123    }
124
125    public Session getSession(boolean create)
126    {
127        return request.getSession(create);
128    }
129
130    public boolean isRequestedSessionIdValid()
131    {
132        return request.isRequestedSessionIdValid();
133    }
134
135    public boolean isSecure()
136    {
137        return request.isSecure();
138    }
139
140    public boolean isXHR()
141    {
142        return request.isXHR();
143    }
144
145    public void setAttribute(String name, Object value)
146    {
147        request.setAttribute(name, value);
148    }
149
150    public int getLocalPort()
151    {
152        return request.getLocalPort();
153    }
154
155    public int getServerPort()
156    {
157        return request.getServerPort();
158    }
159
160    public String getRemoteHost()
161    {
162        return request.getRemoteHost();
163    }
164
165    public boolean isSessionInvalidated()
166    {
167        return request.isSessionInvalidated();
168    }
169}