Skip to content

Commit a5d9b14

Browse files
[java] Undoing removal of Java 8 code
Will submit separate PR
1 parent f1bace1 commit a5d9b14

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

java/src/org/openqa/selenium/PersistentCapabilities.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717

1818
package org.openqa.selenium;
1919

20+
import java.util.Collections;
2021
import java.util.Map;
2122
import java.util.Set;
2223
import java.util.function.Function;
24+
import java.util.stream.Collector;
2325
import java.util.stream.Collectors;
2426
import java.util.stream.Stream;
2527
import org.openqa.selenium.internal.Require;
@@ -56,7 +58,7 @@ public PersistentCapabilities setCapability(String name, Object value) {
5658
@Override
5759
public Map<String, Object> asMap() {
5860
return getCapabilityNames().stream()
59-
.collect(Collectors.toUnmodifiableMap(Function.identity(), this::getCapability));
61+
.collect(toUnmodifiableMap(Function.identity(), this::getCapability));
6062
}
6163

6264
@Override
@@ -79,7 +81,19 @@ public Capabilities merge(Capabilities other) {
7981
public Set<String> getCapabilityNames() {
8082
return Stream.concat(
8183
caps.getCapabilityNames().stream(), overrides.getCapabilityNames().stream())
82-
.collect(Collectors.toUnmodifiableSet());
84+
.collect(toUnmodifiableSet());
85+
}
86+
87+
// Needed, since we're dependent on Java 8 as a minimum version
88+
private <T, K, U> Collector<T, ?, Map<K, U>> toUnmodifiableMap(
89+
Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper) {
90+
return Collectors.collectingAndThen(
91+
Collectors.toMap(keyMapper, valueMapper), Collections::unmodifiableMap);
92+
}
93+
94+
// Needed, since we're dependent on Java 8 as a minimum version
95+
private <T> Collector<T, ?, Set<T>> toUnmodifiableSet() {
96+
return Collectors.collectingAndThen(Collectors.toSet(), Collections::unmodifiableSet);
8397
}
8498

8599
@Override

0 commit comments

Comments
 (0)