mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-22 01:40:13 +01:00
Introduce EnumMapUtil
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2024 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.whispersystems.textsecuregcm.util;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class EnumMapUtil {
|
||||
|
||||
private EnumMapUtil() {}
|
||||
|
||||
public static <E extends Enum<E>, V> EnumMap<E, V> toEnumMap(final Class<E> enumClass, final Function<E, V> valueMapper) {
|
||||
return Arrays.stream(enumClass.getEnumConstants())
|
||||
.collect(Collectors.toMap(Function.identity(), valueMapper, (a, b) -> {
|
||||
throw new AssertionError("Duplicate enumeration key");
|
||||
},
|
||||
() -> new EnumMap<>(enumClass)));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user