From: Robert Varga Date: Wed, 24 Jun 2020 10:05:52 +0000 (+0200) Subject: Use ImmutableMap collector in EnumStringCodec X-Git-Tag: v5.0.4~73 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=d3cd104d8a221ab7287a386845be0b8357155777;p=yangtools.git Use ImmutableMap collector in EnumStringCodec Reduce the use of intermediate structures by using a direct collector rather than collecting to a list and then performing Maps.uniqueIndex(). Change-Id: I0d200211daa240076394af1d3e33ec4df26c146e Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/EnumStringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/EnumStringCodec.java index 950acd12db..4f05d28529 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/EnumStringCodec.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/EnumStringCodec.java @@ -13,8 +13,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.base.Functions; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; -import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.data.api.codec.EnumCodec; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition; @@ -29,11 +27,10 @@ public final class EnumStringCodec extends TypeDefinitionAwareCodec pair.getName().intern()) - .collect(Collectors.toList()), Functions.identity()); + values = typeDef.getValues().stream() + // Intern the String to get wide reuse + .map(pair -> pair.getName().intern()) + .collect(ImmutableMap.toImmutableMap(Functions.identity(), Functions.identity())); } public static EnumStringCodec from(final EnumTypeDefinition normalizedType) {