29
29
import java .util .HashMap ;
30
30
import java .util .List ;
31
31
import java .util .Map ;
32
- import java .util .Objects ;
33
32
import java .util .Set ;
34
33
import java .util .function .BiConsumer ;
35
34
import java .util .function .Supplier ;
36
- import java .util .stream .Collectors ;
37
35
import org .openqa .selenium .internal .Require ;
38
36
39
37
abstract class HttpMessage <M extends HttpMessage <M >> {
@@ -92,11 +90,8 @@ public Iterable<String> getHeaderNames() {
92
90
* @return an iterable view of the values
93
91
*/
94
92
public Iterable <String > getHeaders (String name ) {
95
- return headers .entrySet ().stream ()
96
- .filter (e -> Objects .nonNull (e .getKey ()))
97
- .filter (e -> e .getKey ().equalsIgnoreCase (name .toLowerCase ()))
98
- .flatMap ((e ) -> e .getValue ().stream ())
99
- .collect (Collectors .toList ());
93
+ return Collections .unmodifiableCollection (
94
+ headers .getOrDefault (name .toLowerCase (), Collections .emptyList ()));
100
95
}
101
96
102
97
/**
@@ -106,12 +101,8 @@ public Iterable<String> getHeaders(String name) {
106
101
* @return the value
107
102
*/
108
103
public String getHeader (String name ) {
109
- return headers .entrySet ().stream ()
110
- .filter (e -> Objects .nonNull (e .getKey ()))
111
- .filter (e -> e .getKey ().equalsIgnoreCase (name .toLowerCase ()))
112
- .flatMap ((e ) -> e .getValue ().stream ())
113
- .findFirst ()
114
- .orElse (null );
104
+ List <String > values = headers .getOrDefault (name .toLowerCase (), Collections .emptyList ());
105
+ return !values .isEmpty () ? values .get (0 ) : null ;
115
106
}
116
107
117
108
/**
@@ -146,7 +137,7 @@ public M addHeader(String name, String value) {
146
137
* @return self
147
138
*/
148
139
public M removeHeader (String name ) {
149
- headers .keySet (). removeIf ( header -> header . equalsIgnoreCase ( name ));
140
+ headers .remove ( name . toLowerCase ( ));
150
141
return self ();
151
142
}
152
143
0 commit comments