001// Copyright 2005 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.tapestry.request;
016
017import javax.servlet.http.HttpServletRequest;
018import javax.servlet.http.HttpServletRequestWrapper;
019
020import org.apache.hivemind.util.Defense;
021
022/**
023 * A wrapper that uses a {@link org.apache.tapestry.request.DecodedRequest}to override default
024 * values for several HttpServletRequest properties.
025 * 
026 * @author Howard M. Lewis Ship
027 * @since 4.0
028 */
029public class DecodedRequestWrapper extends HttpServletRequestWrapper
030{
031    private final DecodedRequest _decoded;
032
033    public DecodedRequestWrapper(HttpServletRequest request, DecodedRequest decoded)
034    {
035        super(request);
036
037        Defense.notNull(decoded, "decoded");
038
039        _decoded = decoded;
040    }
041
042    public String getRequestURI()
043    {
044        return _decoded.getRequestURI();
045    }
046
047    public String getScheme()
048    {
049        return _decoded.getScheme();
050    }
051
052    public String getServerName()
053    {
054        return _decoded.getServerName();
055    }
056
057    public int getServerPort()
058    {
059        return _decoded.getServerPort();
060    }
061
062    public String toString()
063    {
064        return "<DecodedRequestWrapper for " + getRequest() + ">";
065    }
066}