gt:         return getStatusLine() + " " + this.headergroup;
context: /*
   * ====================================================================
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
   *   http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing,
   * software distributed under the License is distributed on an
   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   * KIND, either express or implied.  See the License for the
   * specific language governing permissions and limitations
   * under the License.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  
  package ch.boye.httpclientandroidlib.message;
  
  import java.util.Locale;
  
  import ch.boye.httpclientandroidlib.HttpEntity;
  import ch.boye.httpclientandroidlib.HttpResponse;
  import ch.boye.httpclientandroidlib.HttpVersion;
  import ch.boye.httpclientandroidlib.ProtocolVersion;
  import ch.boye.httpclientandroidlib.ReasonPhraseCatalog;
  import ch.boye.httpclientandroidlib.StatusLine;
  import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
  import ch.boye.httpclientandroidlib.util.Args;
  
  /**
   * Basic implementation of {@link HttpResponse}.
   *
   * @see ch.boye.httpclientandroidlib.impl.DefaultHttpResponseFactory
   *
   * @since 4.0
   */
  @NotThreadSafe
  public class BasicHttpResponse extends AbstractHttpMessage implements HttpResponse {
  
      private StatusLine          statusline;
      private ProtocolVersion     ver;
      private int                 code;
      private String              reasonPhrase;
      private HttpEntity          entity;
      private final ReasonPhraseCatalog reasonCatalog;
      private Locale              locale;
  
      /**
       * Creates a new response.
       * This is the constructor to which all others map.
       *
       * @param statusline        the status line
       * @param catalog           the reason phrase catalog, or
       *                          <code>null</code> to disable automatic
       *                          reason phrase lookup
       * @param locale            the locale for looking up reason phrases, or
       *                          <code>null</code> for the system locale
       */
      public BasicHttpResponse(final StatusLine statusline,
                               final ReasonPhraseCatalog catalog,
                               final Locale locale) {
          super();
          this.statusline = Args.notNull(statusline, "Status line");
          this.ver = statusline.getProtocolVersion();
          this.code = statusline.getStatusCode();
          this.reasonPhrase = statusline.getReasonPhrase();
          this.reasonCatalog = catalog;
          this.locale = locale;
      }
  
      /**
       * Creates a response from a status line.
       * The response will not have a reason phrase catalog and
       * use the system default locale.
       *
       * @param statusline        the status line
       */
      public BasicHttpResponse(final StatusLine statusline) {
          super();
          this.statusline = Args.notNull(statusline, "Status line");
          this.ver = statusline.getProtocolVersion();
          this.code = statusline.getStatusCode();
          this.reasonPhrase = statusline.getReasonPhrase();
          this.reasonCatalog = null;
          this.locale = null;
      }
  
      /**
       * Creates a response from elements of a status line.
       * The response will not have a reason phrase catalog and
       * use the system default locale.
       *
       * @param ver       the protocol version of the response
       * @param code      the status code of the response
       * @param reason    the reason phrase to the status code, or
       *                  <code>null</code>
       */
      public BasicHttpResponse(final ProtocolVersion ver,
                               final int code,
                               final String reason) {
          super();
          Args.notNegative(code, "Status code");
          this.statusline = null;
          this.ver = ver;
          this.code = code;
          this.reasonPhrase = reason;
          this.reasonCatalog = null;
          this.locale = null;
      }
  
  
      // non-javadoc, see interface HttpMessage
      public ProtocolVersion getProtocolVersion() {
          return this.ver;
      }
  
      // non-javadoc, see interface HttpResponse
      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;
      }
  
      // non-javadoc, see interface HttpResponse
      public HttpEntity getEntity() {
          return this.entity;
      }
  
      public Locale getLocale() {
          return this.locale;
      }
  
      // non-javadoc, see interface HttpResponse
      public void setStatusLine(final StatusLine statusline) {
          this.statusline = Args.notNull(statusline, "Status line");
          this.ver = statusline.getProtocolVersion();
          this.code = statusline.getStatusCode();
          this.reasonPhrase = statusline.getReasonPhrase();
      }
  
      // non-javadoc, see interface HttpResponse
      public void setStatusLine(final ProtocolVersion ver, final int code) {
          Args.notNegative(code, "Status code");
          this.statusline = null;
          this.ver = ver;
          this.code = code;
          this.reasonPhrase = null;
      }
  
      // non-javadoc, see interface HttpResponse
      public void setStatusLine(
              final ProtocolVersion ver, final int code, final String reason) {
          Args.notNegative(code, "Status code");
          this.statusline = null;
          this.ver = ver;
          this.code = code;
          this.reasonPhrase = reason;
      }
  
      // non-javadoc, see interface HttpResponse
      public void setStatusCode(final int code) {
          Args.notNegative(code, "Status code");
          this.statusline = null;
          this.code = code;
          this.reasonPhrase = null;
      }
  
      // non-javadoc, see interface HttpResponse
      public void setReasonPhrase(final String reason) {
          this.statusline = null;
          this.reasonPhrase = reason;
      }
  
      // non-javadoc, see interface HttpResponse
      public void setEntity(final HttpEntity entity) {
          this.entity = entity;
      }
  
      public void setLocale(final Locale locale) {
          this.locale =  Args.notNull(locale, "Locale");
          this.statusline = null;
      }
  
      /**
       * Looks up a reason phrase.
       * This method evaluates the currently set catalog and locale.
       * It also handles a missing catalog.
       *
       * @param code      the status code for which to look up the reason
       *
       * @return  the reason phrase, or <code>null</code> if there is none
       */
      protected String getReason(final int code) {
          return this.reasonCatalog != null ? this.reasonCatalog.getReason(code,
                  this.locale != null ? this.locale : Locale.getDefault()) : null;
      }
  
      @Override
      public String toString() {
  