1 /*
2 * Copyright 2012 The Netty Project
3 *
4 * The Netty Project licenses this file to you under the Apache License,
5 * version 2.0 (the "License"); you may not use this file except in compliance
6 * with the License. You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16 package org.jboss.netty.handler.codec.http;
17
18 import org.jboss.netty.util.internal.StringUtil;
19
20 /**
21 * The default {@link HttpRequest} implementation.
22 */
23 public class DefaultHttpRequest extends DefaultHttpMessage implements HttpRequest {
24
25 private HttpMethod method;
26 private String uri;
27
28 /**
29 * Creates a new instance.
30 *
31 * @param httpVersion the HTTP version of the request
32 * @param method the HTTP method of the request
33 * @param uri the URI or path of the request
34 */
35 public DefaultHttpRequest(HttpVersion httpVersion, HttpMethod method, String uri) {
36 super(httpVersion);
37 setMethod(method);
38 setUri(uri);
39 }
40
41 public HttpMethod getMethod() {
42 return method;
43 }
44
45 public void setMethod(HttpMethod method) {
46 if (method == null) {
47 throw new NullPointerException("method");
48 }
49 this.method = method;
50 }
51
52 public String getUri() {
53 return uri;
54 }
55
56 public void setUri(String uri) {
57 if (uri == null) {
58 throw new NullPointerException("uri");
59 }
60 this.uri = uri;
61 }
62
63 @Override
64 public String toString() {
65 StringBuilder buf = new StringBuilder();
66 buf.append(getClass().getSimpleName());
67 buf.append("(chunked: ");
68 buf.append(isChunked());
69 buf.append(')');
70 buf.append(StringUtil.NEWLINE);
71 buf.append(getMethod().toString());
72 buf.append(' ');
73 buf.append(getUri());
74 buf.append(' ');
75 buf.append(getProtocolVersion().getText());
76 buf.append(StringUtil.NEWLINE);
77 appendHeaders(buf);
78
79 // Remove the last newline.
80 buf.setLength(buf.length() - StringUtil.NEWLINE.length());
81 return buf.toString();
82 }
83 }