You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by gg...@apache.org on 2017/12/14 15:46:58 UTC

httpcomponents-core git commit: [HTTPCORE-499] Make interface Header extend NameValuePair. BasicHeader does not extend BasicNameValuePair. Don't create a new empty array all the time since it is immutable.

Repository: httpcomponents-core
Updated Branches:
  refs/heads/4.4.x 134de6f72 -> f316e527e


[HTTPCORE-499] Make interface Header extend NameValuePair. BasicHeader
does not extend BasicNameValuePair. Don't create a new empty array all
the time since it is immutable.


Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/f316e527
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/f316e527
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/f316e527

Branch: refs/heads/4.4.x
Commit: f316e527e0e3dfde1e79666bad14a17f0d4d8575
Parents: 134de6f
Author: Gary Gregory <gg...@apache.org>
Authored: Thu Dec 14 08:46:55 2017 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Thu Dec 14 08:46:55 2017 -0700

----------------------------------------------------------------------
 .../org/apache/http/message/BasicHeader.java    | 38 ++++++++++++++------
 1 file changed, 28 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/f316e527/httpcore/src/main/java/org/apache/http/message/BasicHeader.java
----------------------------------------------------------------------
diff --git a/httpcore/src/main/java/org/apache/http/message/BasicHeader.java b/httpcore/src/main/java/org/apache/http/message/BasicHeader.java
index c77f2b1..0eae883 100644
--- a/httpcore/src/main/java/org/apache/http/message/BasicHeader.java
+++ b/httpcore/src/main/java/org/apache/http/message/BasicHeader.java
@@ -27,6 +27,8 @@
 
 package org.apache.http.message;
 
+import java.io.Serializable;
+
 import org.apache.http.Header;
 import org.apache.http.HeaderElement;
 import org.apache.http.ParseException;
@@ -35,29 +37,34 @@ import org.apache.http.annotation.ThreadingBehavior;
 import org.apache.http.util.Args;
 
 /**
- * Basic implementation of {@link Header}.
+ * Implements a basic {@link Header}.
  *
  * @since 4.0
  */
 @Contract(threading = ThreadingBehavior.IMMUTABLE)
-public class BasicHeader extends BasicNameValuePair implements Header {
+public class BasicHeader implements Header, Cloneable, Serializable {
+
+    private static final HeaderElement[] EMPTY_HEADER_ELEMENTS = new HeaderElement[] {};
 
     private static final long serialVersionUID = -5427236326487562174L;
 
+    private final String name;
+    private final String value;
+
     /**
-     * Constructor with name and value
+     * Constructs with name and value.
      *
      * @param name the header name
      * @param value the header value
      */
     public BasicHeader(final String name, final String value) {
-        super(Args.notNull(name, "Name"), value);
+        this.name = Args.notNull(name, "Name");
+        this.value = value;
     }
 
     @Override
-    public String toString() {
-        // no need for non-default formatting in toString()
-        return BasicLineFormatter.INSTANCE.formatHeader(null, this).toString();
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
     }
 
     @Override
@@ -66,12 +73,23 @@ public class BasicHeader extends BasicNameValuePair implements Header {
             // result intentionally not cached, it's probably not used again
             return BasicHeaderValueParser.parseElements(this.getValue(), null);
         }
-        return new HeaderElement[] {};
+        return EMPTY_HEADER_ELEMENTS;
     }
 
     @Override
-    public Object clone() throws CloneNotSupportedException {
-        return super.clone();
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public String toString() {
+        // no need for non-default formatting in toString()
+        return BasicLineFormatter.INSTANCE.formatHeader(null, this).toString();
     }
 
 }