From d3cd104d8a221ab7287a386845be0b8357155777 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 24 Jun 2020 12:05:52 +0200 Subject: [PATCH] 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 --- .../yang/data/impl/codec/EnumStringCodec.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) 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) { -- 2.36.6