1 /*
2 * $Header: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/server/RequestLine.java,v 1.1.2.3 2004/02/22 18:21:18 olegk Exp $
3 * $Revision: 1.1.2.3 $
4 * $Date: 2004/02/22 18:21:18 $
5 *
6 * ====================================================================
7 *
8 * Copyright 1999-2004 The Apache Software Foundation
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
21 * ====================================================================
22 *
23 * This software consists of voluntary contributions made by many
24 * individuals on behalf of the Apache Software Foundation. For more
25 * information on the Apache Software Foundation, please see
26 * <http://www.apache.org/>.
27 *
28 * [Additional notices, if required by prior licensing conditions]
29 *
30 */
31
32 package org.apache.commons.httpclient.server;
33
34 import java.util.NoSuchElementException;
35 import java.util.StringTokenizer;
36
37 /***
38 * Defines a HTTP request-line, consisting of method name, URI and protocol.
39 * Instances of this class are immutable.
40 *
41 * @author Christian Kohlschuetter
42 */
43 public class RequestLine {
44 private String method, uri, protocol;
45
46 public static RequestLine parseLine(String l) {
47 String method = null;
48 String uri = null;
49 String protocol = null;
50 try {
51 StringTokenizer st = new StringTokenizer(l, " ");
52 method = st.nextToken();
53 uri = st.nextToken();
54 protocol = st.nextToken();
55 } catch (NoSuchElementException e) {
56 }
57
58 return new RequestLine(method, uri, protocol);
59 }
60
61 public RequestLine(String method, String uri, String protocol) {
62 this.method = method;
63 this.uri = uri;
64 this.protocol = protocol;
65 }
66
67 public String getMethod() {
68 return method;
69 }
70
71 public String getProtocol() {
72 return protocol;
73 }
74
75 public String getUri() {
76 return uri;
77 }
78
79 public String toString() {
80 StringBuffer sb = new StringBuffer();
81 if(method != null) {
82 sb.append(method);
83 if(uri != null) {
84 sb.append(" ");
85 sb.append(uri);
86 if(protocol != null) {
87 sb.append(" ");
88 sb.append(protocol);
89 }
90 }
91 }
92 return sb.toString();
93 }
94 }