001    // Copyright 2006, 2007, 2008 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.tapestry.services;
016    
017    import javax.servlet.http.HttpServletRequest;
018    import javax.servlet.http.HttpServletResponse;
019    
020    /**
021     * Service used to store the current request objects, both the Servlet API versions, and the Tapestry generic versions.
022     * The service has a per-thread scope.
023     */
024    public interface RequestGlobals
025    {
026        /**
027         * Stores the servlet API request and response objects, for access via the properties.
028         */
029        void storeServletRequestResponse(HttpServletRequest request, HttpServletResponse response);
030    
031        /**
032         * The Servlet API Request. This is exposed as service HTTPServletRequest.
033         */
034        HttpServletRequest getHTTPServletRequest();
035    
036        HttpServletResponse getHTTPServletResponse();
037    
038        void storeRequestResponse(Request request, Response response);
039    
040        /**
041         * The current request. This is exposed as service Request.
042         */
043        Request getRequest();
044    
045        /**
046         * The current response. This is exposed as service Response.
047         */
048        Response getResponse();
049    }