Java tutorial
package org.apache.http.impl; import java.util.Locale; import org.apache.http.HttpResponse; import org.apache.http.HttpResponseFactory; import org.apache.http.ProtocolVersion; import org.apache.http.ReasonPhraseCatalog; import org.apache.http.StatusLine; import org.apache.http.annotation.Immutable; import org.apache.http.message.BasicHttpResponse; import org.apache.http.message.BasicStatusLine; import org.apache.http.protocol.HttpContext; import org.apache.http.util.Args; @Immutable public class DefaultHttpResponseFactory implements HttpResponseFactory { public static final DefaultHttpResponseFactory INSTANCE; protected final ReasonPhraseCatalog reasonCatalog; static { INSTANCE = new DefaultHttpResponseFactory(); } public DefaultHttpResponseFactory(ReasonPhraseCatalog reasonPhraseCatalog) { this.reasonCatalog = (ReasonPhraseCatalog) Args.notNull(reasonPhraseCatalog, "Reason phrase catalog"); } public DefaultHttpResponseFactory() { this(EnglishReasonPhraseCatalog.INSTANCE); } public HttpResponse newHttpResponse(ProtocolVersion protocolVersion, int i, HttpContext httpContext) { Args.notNull(protocolVersion, "HTTP version"); Locale determineLocale = determineLocale(httpContext); return new BasicHttpResponse( new BasicStatusLine(protocolVersion, i, this.reasonCatalog.getReason(i, determineLocale)), this.reasonCatalog, determineLocale); } public HttpResponse newHttpResponse(StatusLine statusLine, HttpContext httpContext) { Args.notNull(statusLine, "Status line"); return new BasicHttpResponse(statusLine, this.reasonCatalog, determineLocale(httpContext)); } protected Locale determineLocale(HttpContext httpContext) { return Locale.getDefault(); } }