Use ImmutableMap for PCEPErrors 46/80846/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 14 Mar 2019 10:13:14 +0000 (11:13 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 14 Mar 2019 11:01:09 +0000 (12:01 +0100)
This prevents coding mistakes like duplicate stores and makes
the search a bit more efficient.

Change-Id: I250a8d6a2934f25171183ae0da79c5bc93429a78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPErrors.java

index cafcce23bf109dbd02ca47dafe4ab32a97b848c0..4dea524dc05f6d87699206e0912b3f1c48dde678 100644 (file)
@@ -7,8 +7,9 @@
  */
 package org.opendaylight.protocol.pcep.spi;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
-import java.util.Map;
+import java.util.Arrays;
 
 /**
  * Possible errors listed in RFC5440, RFC 5455 and stateful draft.
@@ -346,15 +347,10 @@ public enum PCEPErrors {
      */
     INVALID_LSP_DB_VERSION(20, 7);
 
-    private PCEPErrorIdentifier errorId;
-    private static final Map<PCEPErrorIdentifier, PCEPErrors> VALUE_MAP;
+    private static final ImmutableMap<PCEPErrorIdentifier, PCEPErrors> VALUE_MAP = Maps.uniqueIndex(
+        Arrays.asList(values()), PCEPErrors::getErrorIdentifier);
 
-    static {
-        VALUE_MAP = Maps.newHashMap();
-        for (final PCEPErrors enumItem : PCEPErrors.values()) {
-            VALUE_MAP.put(enumItem.getErrorIdentifier(), enumItem);
-        }
-    }
+    private PCEPErrorIdentifier errorId;
 
     public static PCEPErrors forValue(final short errorType, final short errorValue) {
         return VALUE_MAP.get(new PCEPErrorIdentifier(errorType, errorValue));