KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > transports > http > AbstractHTTPServerOutputStreamContext


1 package org.objectweb.celtix.bus.transports.http;
2
3 import java.io.ByteArrayOutputStream JavaDoc;
4 import java.io.FilterOutputStream JavaDoc;
5 import java.io.IOException JavaDoc;
6 import java.io.OutputStream JavaDoc;
7
8 import javax.xml.ws.handler.MessageContext;
9
10 import org.objectweb.celtix.context.InputStreamMessageContext;
11 import org.objectweb.celtix.context.MessageContextWrapper;
12 import org.objectweb.celtix.context.OutputStreamMessageContext;
13
14 public abstract class AbstractHTTPServerOutputStreamContext
15     extends MessageContextWrapper
16     implements OutputStreamMessageContext {
17     
18     protected final AbstractHTTPServerTransport transport;
19     protected WrappedOutputStream origOut;
20     protected OutputStream JavaDoc out;
21     
22     public AbstractHTTPServerOutputStreamContext(AbstractHTTPServerTransport tr, MessageContext ctx)
23         throws IOException JavaDoc {
24         
25         super(ctx);
26         transport = tr;
27         origOut = new WrappedOutputStream();
28         out = origOut;
29     }
30     
31     protected abstract void flushHeaders() throws IOException JavaDoc;
32     
33     public void setFault(boolean isFault) {
34         if (isFault) {
35             put(HTTP_RESPONSE_CODE, 500);
36         } else {
37             put(HTTP_RESPONSE_CODE, 200);
38         }
39     }
40
41     public boolean isFault() {
42         return ((Integer JavaDoc)get(HTTP_RESPONSE_CODE)).intValue() == 500;
43     }
44
45     public void setOneWay(boolean isOneWay) {
46         put(ONEWAY_MESSAGE_TF, isOneWay);
47     }
48     
49     public boolean isOneWay() {
50         Boolean JavaDoc b = (Boolean JavaDoc)get(ONEWAY_MESSAGE_TF);
51         return b == null ? false : b.booleanValue();
52     }
53
54     public OutputStream JavaDoc getOutputStream() {
55         return out;
56     }
57     
58     public void setOutputStream(OutputStream JavaDoc o) {
59         out = o;
60     }
61     
62     public InputStreamMessageContext getCorrespondingInputStreamContext()
63         throws IOException JavaDoc {
64         return null;
65     }
66     
67     protected class WrappedOutputStream extends FilterOutputStream JavaDoc {
68         WrappedOutputStream() {
69             super(new ByteArrayOutputStream JavaDoc());
70         }
71         public void resetOut(OutputStream JavaDoc newOut) throws IOException JavaDoc {
72             ByteArrayOutputStream JavaDoc bout = (ByteArrayOutputStream JavaDoc)out;
73             if (bout.size() > 0) {
74                 bout.writeTo(newOut);
75             }
76             out = newOut;
77         }
78     }
79 }
Popular Tags