Frames | No Frames |
1: /* 2: * Response.java 3: * Copyright (C) 2004 The Free Software Foundation 4: * 5: * This file is part of GNU inetlib, a library. 6: * 7: * GNU inetlib is free software; you can redistribute it and/or modify 8: * it under the terms of the GNU General Public License as published by 9: * the Free Software Foundation; either version 2 of the License, or 10: * (at your option) any later version. 11: * 12: * GNU inetlib is distributed in the hope that it will be useful, 13: * but WITHOUT ANY WARRANTY; without even the implied warranty of 14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: * GNU General Public License for more details. 16: * 17: * You should have received a copy of the GNU General Public License 18: * along with this library; if not, write to the Free Software 19: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20: * 21: * Linking this library statically or dynamically with other modules is 22: * making a combined work based on this library. Thus, the terms and 23: * conditions of the GNU General Public License cover the whole 24: * combination. 25: * 26: * As a special exception, the copyright holders of this library give you 27: * permission to link this library with independent modules to produce an 28: * executable, regardless of the license terms of these independent 29: * modules, and to copy and distribute the resulting executable under 30: * terms of your choice, provided that you also meet, for each linked 31: * independent module, the terms and conditions of the license of that 32: * module. An independent module is a module which is not derived from 33: * or based on this library. If you modify this library, you may extend 34: * this exception to your version of the library, but you are not 35: * obliged to do so. If you do not wish to do so, delete this 36: * exception statement from your version. 37: */ 38: 39: package gnu.inet.http; 40: 41: import java.util.Date; 42: 43: /** 44: * An HTTP response. 45: * 46: * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a> 47: */ 48: public class Response 49: { 50: 51: /** 52: * The HTTP major version of the server issuing the response. 53: */ 54: protected final int majorVersion; 55: 56: /** 57: * The HTTP minor version of the server issuing the response. 58: */ 59: protected final int minorVersion; 60: 61: /** 62: * The HTTP status code of the response. 63: */ 64: protected final int code; 65: 66: /** 67: * The class of the response. This is the most significant digit of the 68: * status code. 69: * <dl> 70: * <dt><code>1xx</code></dt> <dd>Informational response</dd> 71: * <dt><code>2xx</code></dt> <dd>Success</dd> 72: * <dt><code>3xx</code></dt> <dd>Redirection</dd> 73: * <dt><code>4xx</code></dt> <dd>Client error</dd> 74: * <dt><code>5xx</code></dt> <dd>Server error</dd> 75: * </dl> 76: */ 77: protected final int codeClass; 78: 79: /** 80: * Human-readable text of the response. 81: */ 82: protected final String message; 83: 84: /** 85: * The response headers. 86: */ 87: protected final Headers headers; 88: 89: /** 90: * Constructs a new response with the specified parameters. 91: */ 92: protected Response(int majorVersion, int minorVersion, int code, 93: int codeClass, String message, 94: Headers headers) 95: { 96: this.majorVersion = majorVersion; 97: this.minorVersion = minorVersion; 98: this.code = code; 99: this.codeClass = codeClass; 100: this.message = message; 101: this.headers = headers; 102: } 103: 104: /** 105: * Returns the HTTP major version of the server issuing the response. 106: * @see #majorVersion 107: */ 108: public int getMajorVersion() 109: { 110: return majorVersion; 111: } 112: 113: /** 114: * Returns the HTTP minor version of the server issuing the response. 115: * @see #minorVersion 116: */ 117: public int getMinorVersion() 118: { 119: return minorVersion; 120: } 121: 122: /** 123: * Returns the HTTP status code of the response. 124: * @see #code 125: */ 126: public int getCode() 127: { 128: return code; 129: } 130: 131: /** 132: * Returns the class of the response. 133: * @see #codeClass 134: */ 135: public int getCodeClass() 136: { 137: return codeClass; 138: } 139: 140: /** 141: * Returns the human-readable text of the response. 142: * @see #message 143: */ 144: public String getMessage() 145: { 146: return message; 147: } 148: 149: /** 150: * Returns the headers in the response. 151: */ 152: public Headers getHeaders() 153: { 154: return headers; 155: } 156: 157: /** 158: * Returns the header value for the specified name. 159: * @param name the header name 160: */ 161: public String getHeader(String name) 162: { 163: return headers.getValue(name); 164: } 165: 166: /** 167: * Returns the header value for the specified name as an integer. 168: * @param name the header name 169: */ 170: public int getIntHeader(String name) 171: { 172: return headers.getIntValue(name); 173: } 174: 175: /** 176: * Returns the header value for the specified name as a date. 177: * @param name the header name 178: */ 179: public Date getDateHeader(String name) 180: { 181: return headers.getDateValue(name); 182: } 183: 184: }