src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/ImmutableHeaders.java
equal
deleted
inserted
replaced
36 import static java.util.Collections.emptyMap; |
36 import static java.util.Collections.emptyMap; |
37 import static java.util.Collections.unmodifiableList; |
37 import static java.util.Collections.unmodifiableList; |
38 import static java.util.Collections.unmodifiableMap; |
38 import static java.util.Collections.unmodifiableMap; |
39 import static java.util.Objects.requireNonNull; |
39 import static java.util.Objects.requireNonNull; |
40 |
40 |
41 final class ImmutableHeaders implements HttpHeaders { |
41 final class ImmutableHeaders extends HttpHeaders { |
42 |
42 |
43 private final Map<String, List<String>> map; |
43 private final Map<String, List<String>> map; |
44 |
44 |
45 public static ImmutableHeaders empty() { |
45 public static ImmutableHeaders empty() { |
46 return of(emptyMap()); |
46 return of(emptyMap()); |
70 ); |
70 ); |
71 this.map = unmodifiableMap(m); |
71 this.map = unmodifiableMap(m); |
72 } |
72 } |
73 |
73 |
74 @Override |
74 @Override |
75 public Optional<String> firstValue(String name) { |
|
76 return allValues(name).stream().findFirst(); |
|
77 } |
|
78 |
|
79 @Override |
|
80 public OptionalLong firstValueAsLong(String name) { |
|
81 return allValues(name).stream().mapToLong(Long::valueOf).findFirst(); |
|
82 } |
|
83 |
|
84 @Override |
|
85 public List<String> allValues(String name) { |
|
86 requireNonNull(name); |
|
87 List<String> values = map.get(name); |
|
88 // Making unmodifiable list out of empty in order to make a list which |
|
89 // throws UOE unconditionally |
|
90 return values != null ? values : unmodifiableList(emptyList()); |
|
91 } |
|
92 |
|
93 @Override |
|
94 public Map<String, List<String>> map() { |
75 public Map<String, List<String>> map() { |
95 return map; |
76 return map; |
96 } |
77 } |
97 } |
78 } |