src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/ImmutableHeaders.java
branchhttp-client-branch
changeset 55763 634d8e14c172
parent 47216 71c04702a3d5
child 55792 0936888d5a4a
equal deleted inserted replaced
55762:e947a3a50a95 55763:634d8e14c172
    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 }