Java tutorial
package org.apache.http.message; import java.util.Locale; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; import org.apache.http.ProtocolVersion; import org.apache.http.ReasonPhraseCatalog; import org.apache.http.StatusLine; import org.apache.http.annotation.NotThreadSafe; import org.apache.http.util.Args; @NotThreadSafe public class BasicHttpResponse extends AbstractHttpMessage implements HttpResponse { private int code; private HttpEntity entity; private Locale locale; private final ReasonPhraseCatalog reasonCatalog; private String reasonPhrase; private StatusLine statusline; private ProtocolVersion ver; public BasicHttpResponse(StatusLine statusLine, ReasonPhraseCatalog reasonPhraseCatalog, Locale locale) { this.statusline = (StatusLine) Args.notNull(statusLine, "Status line"); this.ver = statusLine.getProtocolVersion(); this.code = statusLine.getStatusCode(); this.reasonPhrase = statusLine.getReasonPhrase(); this.reasonCatalog = reasonPhraseCatalog; this.locale = locale; } public BasicHttpResponse(StatusLine statusLine) { this.statusline = (StatusLine) Args.notNull(statusLine, "Status line"); this.ver = statusLine.getProtocolVersion(); this.code = statusLine.getStatusCode(); this.reasonPhrase = statusLine.getReasonPhrase(); this.reasonCatalog = null; this.locale = null; } public BasicHttpResponse(ProtocolVersion protocolVersion, int i, String str) { Args.notNegative(i, "Status code"); this.statusline = null; this.ver = protocolVersion; this.code = i; this.reasonPhrase = str; this.reasonCatalog = null; this.locale = null; } public ProtocolVersion getProtocolVersion() { return this.ver; } public StatusLine getStatusLine() { if (this.statusline == null) { this.statusline = new BasicStatusLine(this.ver != null ? this.ver : HttpVersion.HTTP_1_1, this.code, this.reasonPhrase != null ? this.reasonPhrase : getReason(this.code)); } return this.statusline; } public HttpEntity getEntity() { return this.entity; } public Locale getLocale() { return this.locale; } public void setStatusLine(StatusLine statusLine) { this.statusline = (StatusLine) Args.notNull(statusLine, "Status line"); this.ver = statusLine.getProtocolVersion(); this.code = statusLine.getStatusCode(); this.reasonPhrase = statusLine.getReasonPhrase(); } public void setStatusLine(ProtocolVersion protocolVersion, int i) { Args.notNegative(i, "Status code"); this.statusline = null; this.ver = protocolVersion; this.code = i; this.reasonPhrase = null; } public void setStatusLine(ProtocolVersion protocolVersion, int i, String str) { Args.notNegative(i, "Status code"); this.statusline = null; this.ver = protocolVersion; this.code = i; this.reasonPhrase = str; } public void setStatusCode(int i) { Args.notNegative(i, "Status code"); this.statusline = null; this.code = i; this.reasonPhrase = null; } public void setReasonPhrase(String str) { this.statusline = null; this.reasonPhrase = str; } public void setEntity(HttpEntity httpEntity) { this.entity = httpEntity; } public void setLocale(Locale locale) { this.locale = (Locale) Args.notNull(locale, "Locale"); this.statusline = null; } protected String getReason(int i) { if (this.reasonCatalog == null) { return null; } return this.reasonCatalog.getReason(i, this.locale != null ? this.locale : Locale.getDefault()); } public String toString() { return getStatusLine() + " " + this.headergroup; } }