01: /*
02: * Copyright 2005-2007 Noelios Consulting.
03: *
04: * The contents of this file are subject to the terms of the Common Development
05: * and Distribution License (the "License"). You may not use this file except in
06: * compliance with the License.
07: *
08: * You can obtain a copy of the license at
09: * http://www.opensource.org/licenses/cddl1.txt See the License for the specific
10: * language governing permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL HEADER in each file and
13: * include the License file at http://www.opensource.org/licenses/cddl1.txt If
14: * applicable, add the following below this CDDL HEADER, with the fields
15: * enclosed by brackets "[]" replaced with your own identifying information:
16: * Portions Copyright [yyyy] [name of copyright owner]
17: */
18:
19: package com.noelios.restlet.http;
20:
21: import org.restlet.data.Request;
22: import org.restlet.data.Response;
23: import org.restlet.data.ServerInfo;
24: import org.restlet.data.Status;
25:
26: import com.noelios.restlet.Engine;
27:
28: /**
29: * Response wrapper for server HTTP calls.
30: *
31: * @author Jerome Louvel (contact@noelios.com)
32: */
33: public class HttpResponse extends Response {
34: /** The low-level HTTP call. */
35: private HttpServerCall httpCall;
36:
37: /** Indicates if the server data was parsed and added. */
38: private boolean serverAdded;
39:
40: /**
41: * Constructor.
42: *
43: * @param httpCall
44: * The low-level HTTP server call.
45: * @param request
46: * The associated high-level request.
47: */
48: public HttpResponse(HttpServerCall httpCall, Request request) {
49: super (request);
50: this .serverAdded = false;
51: this .httpCall = httpCall;
52:
53: // Set the properties
54: setStatus(Status.SUCCESS_OK);
55: }
56:
57: /**
58: * Returns the low-level HTTP call.
59: *
60: * @return The low-level HTTP call.
61: */
62: public HttpServerCall getHttpCall() {
63: return this .httpCall;
64: }
65:
66: /**
67: * Returns the server-specific information.
68: *
69: * @return The server-specific information.
70: */
71: public ServerInfo getServerInfo() {
72: ServerInfo result = super .getServerInfo();
73:
74: if (!this .serverAdded) {
75: result.setAddress(httpCall.getServerAddress());
76: result.setAgent(Engine.VERSION_HEADER);
77: result.setPort(httpCall.getServerPort());
78: this .serverAdded = true;
79: }
80:
81: return result;
82: }
83:
84: }
|