Generalize supporting interface (B100G) in port-mapping
[transportpce.git] / common / src / main / java / org / opendaylight / transportpce / common / mapping / MappingUtilsImpl.java
index f07f104a29a2f99115df34e1478fb1da7d4b2814..6f3608710e9183a85f41f1565a274b477ebe7213 100644 (file)
@@ -8,18 +8,20 @@
 package org.opendaylight.transportpce.common.mapping;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.ReadTransaction;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.StringConstants;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mc.capabilities.McCapabilities;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfo;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.Network;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mc.capabilities.McCapabilities;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.nodes.NodeInfo;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GE;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GE;
@@ -42,6 +44,22 @@ public class MappingUtilsImpl implements MappingUtils {
 
     private final DataBroker dataBroker;
 
+    private static Map<String, Class<? extends SupportedIfCapability>> capTypeClassMap = new HashMap<>() {
+        {
+            put("IfOTUCnODUCn", IfOTUCnODUCn.class);
+            put("IfOCHOTU4ODU4", IfOCHOTU4ODU4.class);
+            put("IfOCH", IfOCH.class);
+            put("If100GEODU4", If100GEODU4.class);
+            put("If10GEODU2e", If10GEODU2e.class);
+            put("If10GEODU2", If10GEODU2.class);
+            put("If1GEODU0", If1GEODU0.class);
+            put("If400GE", If400GE.class);
+            put("If100GE", If100GE.class);
+            put("If10GE", If10GE.class);
+            put("If1GE", If1GE.class);
+        }
+    };
+
     public MappingUtilsImpl(DataBroker dataBroker) {
 
         this.dataBroker = dataBroker;
@@ -107,31 +125,9 @@ public class MappingUtilsImpl implements MappingUtils {
     }
 
     public static Class<? extends SupportedIfCapability> convertSupIfCapa(String ifCapType) {
-        switch (ifCapType) {
-            case "IfOTUCnODUCn":
-                return IfOTUCnODUCn.class;
-            case "IfOCHOTU4ODU4":
-                return IfOCHOTU4ODU4.class;
-            case "IfOCH":
-                return IfOCH.class;
-            case "If100GEODU4":
-                return If100GEODU4.class;
-            case "If10GEODU2e":
-                return If10GEODU2e.class;
-            case "If10GEODU2":
-                return If10GEODU2.class;
-            case "If1GEODU0":
-                return If1GEODU0.class;
-            case "If400GE":
-                return If400GE.class;
-            case "If100GE":
-                return If100GE.class;
-            case "If10GE":
-                return If10GE.class;
-            case "If1GE":
-                return If1GE.class;
-            default:
-                return null;
+        if (!capTypeClassMap.containsKey(ifCapType)) {
+            return null;
         }
+        return capTypeClassMap.get(ifCapType);
     }
 }