1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.mortbay.jetty.client;
15
16 import java.io.IOException;
17
18 import org.mortbay.io.Buffer;
19 import org.mortbay.jetty.HttpFields;
20
21
22
23
24
25
26
27 public class CachedExchange extends HttpExchange
28 {
29 protected int _responseStatus;
30 protected HttpFields _responseFields;
31
32 public CachedExchange(boolean cacheFields)
33 {
34 if (cacheFields)
35 _responseFields = new HttpFields();
36 }
37
38
39 public int getResponseStatus()
40 {
41 if (getStatus() < HttpExchange.STATUS_PARSING_HEADERS)
42 throw new IllegalStateException("Response not received");
43 return _responseStatus;
44 }
45
46
47 public HttpFields getResponseFields()
48 {
49 if (getStatus() < HttpExchange.STATUS_PARSING_HEADERS)
50 throw new IllegalStateException("Headers not complete");
51 return _responseFields;
52 }
53
54
55 protected void onResponseStatus(Buffer version, int status, Buffer reason) throws IOException
56 {
57 _responseStatus = status;
58 super.onResponseStatus(version,status,reason);
59 }
60
61
62 protected void onResponseHeader(Buffer name, Buffer value) throws IOException
63 {
64 if (_responseFields != null)
65 _responseFields.add(name,value);
66 super.onResponseHeader(name,value);
67 }
68
69 }