001: /*
002: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/web/Attic/TKHttp.java,v 1.10 2001/06/11 09:14:11 alex Exp $
003: *
004: */
005: package com.teamkonzept.web;
006:
007: import java.io.*;
008:
009: import com.teamkonzept.lib.*;
010:
011: /**
012: * Methoden und variablen vom Interface TKHttpInterface und OracleWRBInterface werden
013: * zusanmmengefuehrt.
014: * siehe: TKHttpInterface in TKHttp.java
015: * siehe: Methoden in OracleWRBInterface.java
016: * Das Interface wurde in OracleWRBInterface implementiert und wird in der Klasse
017: * TKHttp oeffentlich zur Verfuegung gestellt.
018: *
019: * Hierbei sind alle Methoden:
020: * 1. static (globale Klassenmethoden)
021: * 2.final(die Methoden koennen nicht mehr ueberschrieben werden)
022: *
023: * Aufruf der Methoden: TKHttp.methodennamen()
024: */
025: public class TKHttp {
026:
027: public TKHttpInterface httpInterface;
028: public TKHttpThread httpThread;
029: public PrintStream out;
030:
031: static public PrintStream _out = System.out;
032:
033: public TKHttp(TKHttpThread httpThread, TKHttpInterface httpInterface) {
034:
035: this .httpInterface = httpInterface;
036: this .httpThread = httpThread;
037:
038: /* Kann man sich auch schenken, aber aus Performance-Gr¸nden doch
039: vielleicht separat halten, soviel Threads gleichzeitig werden's
040: schon nicht werden (singh)
041: */
042: //this.out = httpThread.out;
043: }
044:
045: /************************************************************************
046: hier beginnt der statische Teil der Klasse
047: ************************************************************************/
048:
049: public static TKHashtable lookup = new TKHashtable();
050:
051: public static TKHttp setup(Thread myThread,
052: TKHttpThread ahttpThread, TKHttpInterface aInterface) {
053:
054: if (myThread == null)
055: myThread = Thread.currentThread();
056: if (lookup == null)
057: lookup = new TKHashtable();
058:
059: TKHttp http = (TKHttp) lookup.get(myThread);
060: if (http != null) {
061: http.httpInterface = aInterface;
062: http.httpThread = ahttpThread;
063: return http;
064: }
065:
066: http = new TKHttp(ahttpThread, aInterface);
067: lookup.put(myThread, http);
068:
069: return http;
070: }
071:
072: public static TKHttp setup(TKHttpThread ahttpThread,
073: TKHttpInterface aInterface) {
074:
075: return setup(Thread.currentThread(), ahttpThread, aInterface);
076: }
077:
078: public static void cleanup(Thread myThread) {
079:
080: if (myThread == null)
081: myThread = Thread.currentThread();
082: if (lookup != null)
083: lookup.remove(myThread);
084: }
085:
086: public static void cleanup() {
087:
088: cleanup(Thread.currentThread());
089: }
090:
091: /**
092: * Die Klassenvariable httpInterface wird gestzt.
093: *
094: * @param Thread thread, es wird ein Thread-Objekt benoetigt
095: * @param TKHttpInterface aInterface , Templateparameter und Enviroment
096: */
097: static public final void register(Thread thread,
098: TKHttpThread ahttpThread, TKHttpInterface aInterface) {
099: setup(thread, ahttpThread, aInterface);
100: }
101:
102: /**
103: * Die Klassenvariable httpInterface wird auf null gestzt
104: *
105: * @param Thread thread, es wird ein Thread-Objekt benoetigt
106: */
107: static public final void deregister(Thread thread) {
108: cleanup(thread);
109: }
110:
111: /**
112: * Das zum laufenden Thread gehrige lookup-Object wird zur¸ckgegeben
113: *
114: */
115:
116: static public final TKHttp getContext() {
117:
118: Thread myThread = Thread.currentThread();
119: return (TKHttp) (lookup != null ? lookup.get(myThread) : null);
120: }
121:
122: /**
123: * Der aktuelle out-PrintStream wird zur¸ckgegeben
124: *
125: * @return PrintStream
126: */
127:
128: static public final PrintStream out() {
129:
130: TKHttp http = getContext();
131: return http != null ? http.out : _out;
132: }
133:
134: /**
135: * Der aktuelle out-PrintStream wird gesetzt
136: *
137: * @return PrintStream
138: */
139:
140: static public final void out(PrintStream ps) {
141:
142: if (ps != null)
143: _out = ps;
144:
145: }
146:
147: /**
148: * Die aktulelle Klassenvariable httpInterface wird zurueckgegeben
149: *
150: * @return httpInterface
151: */
152: static public final TKHttpInterface getInterface() {
153: TKHttp http = getContext();
154: return http != null ? http.httpInterface : null;
155: }
156:
157: /**
158: * Der Klassenvariablen httpInterface wird das uebergebende Objekt
159: * vom Typ TKHttpInterface zugewiesen.
160: *
161: * @param TKHttpInterface aInterface
162: */
163: static public final void setInterface(TKHttpInterface aInterface) {
164: TKHttp http = getContext();
165: if (http != null)
166: http.httpInterface = aInterface;
167: }
168:
169: /**
170: * Die Methode getParams gibt einen Hash zurueck, der die in einer
171: * URL enthaltenen Parameter zurckgibt.
172: *
173: * @return TKHashtable, Parameter einer URL
174: */
175: static public final TKHashtable getParams() {
176: TKHttp http = getContext();
177: return http != null ? http.httpInterface.getParams() : null;
178: }
179:
180: /**
181: * Die Methode getEnviroment gibt einen Hash zurueck, der die
182: * aktuellen Enviroment-Variablen enthaelt.
183: *
184: * @return TKHashtable, Enviroment-Variablen
185: */
186: static public final TKHashtable getEnvironment() {
187: TKHttp http = getContext();
188: return http != null ? http.httpInterface.getEnvironment()
189: : null;
190: }
191:
192: /**
193: * Die Methode getParams gibt einen Hash zurueck, der die in einer
194: * URL enthaltenen Parameter zurckgibt
195: *
196: * @return TKHashtable, Parameter einer URL
197: */
198: /*
199: static public final OutputStream getOutputStream()
200: {
201: TKHttp http = getContext();
202: return http != null ? http.httpInterface.getOutputStream() : null;
203: }
204: */
205: /**
206: * PATH_INFO der CGI-Enviroment Variablen
207: *
208: * @return /Name der laufenden Applikation
209: */
210: static public final String getOwnName() {
211: TKHttp http = getContext();
212: return http != null ? http.httpInterface.getOwnName() : null;
213: }
214:
215: /**
216: * SCRIPT_NAME+PATH_INFO der CGI-Enviroment Variablen
217: * /java/Applikationsname
218: *
219: * @return /Name der laufenden Applikation und PATH_INFO
220: */
221: static public final String getOwnURL() {
222: TKHttp http = getContext();
223: return http != null ? http.httpInterface.getOwnURL() : null;
224: }
225:
226: /**
227: *
228: * @return gemeinsame Documentroot fuer verschiedene Benutzer
229: */
230: static public final String getDocumentRoot() {
231: TKHttp http = getContext();
232: return http != null ? http.httpInterface.getDocumentRoot()
233: : null;
234: }
235:
236: /**
237: *
238: * @return den Servernamen
239: */
240: static public final String getServerName() {
241: TKHttp http = getContext();
242: return http != null ? http.httpInterface.getServerName() : null;
243: }
244:
245: /**
246: *
247: * @return Ergebnis z.B.: oracle.owas.wrb.services.logger.OutputLogStream@ed310af0
248: */
249: static public final OutputStream getLogStream() {
250: TKHttp http = getContext();
251: return http != null ? http.httpInterface.getLogStream() : null;
252: }
253: }
|