001: /*
002: * $Id: GeneratorServletContext.java,v 1.2 2002/02/15 23:44:28 skavish Exp $
003: *
004: * ==========================================================================
005: *
006: * The JGenerator Software License, Version 1.0
007: *
008: * Copyright (c) 2000 Dmitry Skavish (skavish@usa.net). All rights reserved.
009: *
010: * Redistribution and use in source and binary forms, with or without
011: * modification, are permitted provided that the following conditions are met:
012: *
013: * 1. Redistributions of source code must retain the above copyright
014: * notice, this list of conditions and the following disclaimer.
015: *
016: * 2. Redistributions in binary form must reproduce the above copyright
017: * notice, this list of conditions and the following disclaimer in
018: * the documentation and/or other materials provided with the
019: * distribution.
020: *
021: * 3. The end-user documentation included with the redistribution, if
022: * any, must include the following acknowlegement:
023: * "This product includes software developed by Dmitry Skavish
024: * (skavish@usa.net, http://www.flashgap.com/)."
025: * Alternately, this acknowlegement may appear in the software itself,
026: * if and wherever such third-party acknowlegements normally appear.
027: *
028: * 4. The name "The JGenerator" must not be used to endorse or promote
029: * products derived from this software without prior written permission.
030: * For written permission, please contact skavish@usa.net.
031: *
032: * 5. Products derived from this software may not be called "The JGenerator"
033: * nor may "The JGenerator" appear in their names without prior written
034: * permission of Dmitry Skavish.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL DMITRY SKAVISH OR THE OTHER
040: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: *
049: */
050:
051: package org.openlaszlo.iv.flash.servlet;
052:
053: import java.io.*;
054: import java.net.*;
055: import java.util.*;
056:
057: import javax.servlet.*;
058: import javax.servlet.http.*;
059:
060: /**
061: * Generator servlet context<P>
062: *
063: * When servlet is invoked it stores its environment along
064: * with HttpRequest and HttpResponse in this context using
065: * current thread as a key, so that later on it can be retrieved
066: * from for example Java datasources.<P>
067: *
068: * Example:<P>
069: * <PRE><CODE>
070: * GeneratorServletContext context = GeneratorServletContext.getContext();
071: * HttpServletResponse response = context.getHttpServletResponse();
072: * HttpServletRequest request = context.getHttpServletRequest();
073: * HttpSession session = request.getSession();
074: * </CODE></PRE>
075: *
076: * @author Dmitry Skavish
077: */
078: public class GeneratorServletContext {
079:
080: private static Hashtable contexts = new Hashtable();
081:
082: private HttpServletRequest request;
083: private HttpServletResponse response;
084: private ServletConfig config;
085:
086: public static GeneratorServletContext getContext() {
087: return (GeneratorServletContext) contexts.get(Thread
088: .currentThread());
089: }
090:
091: public static GeneratorServletContext createContext() {
092: GeneratorServletContext context = new GeneratorServletContext();
093: contexts.put(Thread.currentThread(), context);
094: return context;
095: }
096:
097: public static void destroyContext() {
098: contexts.remove(Thread.currentThread());
099: }
100:
101: public HttpServletRequest getHttpServletRequest() {
102: return request;
103: }
104:
105: public HttpServletResponse getHttpServletResponse() {
106: return response;
107: }
108:
109: public ServletConfig getServletConfig() {
110: return config;
111: }
112:
113: public void setHttpServletRequest(HttpServletRequest request) {
114: this .request = request;
115: }
116:
117: public void setHttpServletResponse(HttpServletResponse response) {
118: this .response = response;
119: }
120:
121: public void setServletConfig(ServletConfig config) {
122: this.config = config;
123: }
124: }
|