001// Copyright 2004, 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;
018
019/**
020 * Contains properties of an {@link javax.servlet.http.HttpServletRequest}that have been extracted
021 * from the request (or otherwise determined). An instance of this is created by an
022 * {@link org.apache.tapestry.request.IRequestDecoder}. The decoder must set the serverName and
023 * requestURI properties, and should set the scheme and server port properties.
024 * 
025 * @see IRequestDecoder
026 * @author Howard Lewis Ship
027 * @since 2.2
028 */
029
030public class DecodedRequest
031{
032    private String _scheme = "http";
033
034    private String _serverName;
035
036    private String _requestURI;
037
038    private int _serverPort = 80;
039
040    public DecodedRequest()
041    {
042    }
043
044    /**
045     * Initializes default values for the properties from the request provided.
046     * 
047     * @since 4.0
048     */
049
050    public DecodedRequest(HttpServletRequest request)
051    {
052        _scheme = request.getScheme();
053        _serverName = request.getServerName();
054        _requestURI = request.getRequestURI();
055        _serverPort = request.getServerPort();
056    }
057
058    /**
059     * Default value is 80.
060     */
061
062    public int getServerPort()
063    {
064        return _serverPort;
065    }
066
067    /**
068     * Default value is 'http'.
069     */
070
071    public String getScheme()
072    {
073        return _scheme;
074    }
075
076    /**
077     * No default, a value must be set by the decoder.
078     */
079
080    public String getServerName()
081    {
082        return _serverName;
083    }
084
085    /**
086     * No default, a value must be set by the decoder.
087     */
088
089    public String getRequestURI()
090    {
091        return _requestURI;
092    }
093
094    public void setServerPort(int serverPort)
095    {
096        _serverPort = serverPort;
097    }
098
099    public void setScheme(String scheme)
100    {
101        _scheme = scheme;
102    }
103
104    public void setServerName(String serverName)
105    {
106        _serverName = serverName;
107    }
108
109    public void setRequestURI(String URI)
110    {
111        _requestURI = URI;
112    }
113
114}