Introduce EnumMapUtil

This commit is contained in:
Jon Chambers
2024-10-10 16:29:20 -04:00
committed by GitHub
parent 38d25f9a9b
commit 240a406964
3 changed files with 32 additions and 34 deletions

View File

@@ -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)));
}
}