001    package org.apache.turbine.services.rundata;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *   http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import javax.servlet.ServletConfig;
023    import javax.servlet.http.HttpServletRequest;
024    import javax.servlet.http.HttpServletResponse;
025    
026    import org.apache.fulcrum.parser.CookieParser;
027    import org.apache.fulcrum.parser.ParameterParser;
028    import org.apache.fulcrum.pool.Recyclable;
029    import org.apache.turbine.util.RunData;
030    import org.apache.turbine.util.ServerData;
031    
032    /**
033     * TurbineRunData is an extension to the RunData interface to be
034     * implemented by RunData implementations to be distributed by
035     * the Turbine RunData Service. The extensions define methods
036     * that are used by the service for initilizing the implementation,
037     * but which are not meant to be called by the actual client objects.
038     *
039     * <p>TurbineRunData extends also the Recyclable interface making
040     * it possible to pool its implementations for recycling.
041     *
042     * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
043     * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
044     * @author <a href="mailto:bhoeneis@ee.ethz.ch">Bernie Hoeneisen</a>
045     * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
046     * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
047     * @version $Id: TurbineRunData.java 1066938 2011-02-03 20:14:53Z ludwig $
048     */
049    public interface TurbineRunData
050        extends RunData,
051                Recyclable
052    {
053        /**
054         * Gets the parameter parser without parsing the parameters.
055         *
056         * @return the parameter parser.
057         */
058        ParameterParser getParameterParser();
059    
060        /**
061         * Sets the parameter parser.
062         *
063         * @param parser a parameter parser.
064         */
065        void setParameterParser(ParameterParser parser);
066    
067        /**
068         * Gets the cookie parser without parsing the cookies.
069         *
070         * @return the cookie parser.
071         */
072        CookieParser getCookieParser();
073    
074        /**
075         * Sets the cookie parser.
076         *
077         * @param parser a cookie parser.
078         */
079        void setCookieParser(CookieParser parser);
080    
081        /**
082         * Sets the servlet request.
083         *
084         * @param req a request.
085         */
086        void setRequest(HttpServletRequest req);
087    
088        /**
089         * Sets the servlet response.
090         *
091         * @param res a response.
092         */
093        void setResponse(HttpServletResponse res);
094    
095        /**
096         * Sets the servlet configuration used during servlet init.
097         *
098         * @param config a configuration.
099         */
100        void setServletConfig(ServletConfig config);
101    
102        /**
103         * Sets the server data of the request.
104         *
105         * @param serverData server data.
106         */
107        void setServerData(ServerData serverData);
108    }