Add a portmapping method to create Xpdr LCP names
[transportpce.git] / common / src / main / java / org / opendaylight / transportpce / common / mapping / PortMappingVersion710.java
index 98d5fdafa70d75a8dc96a5394cb61629b45abc5c..3bf2b46f77b41ffe250c140a3dfb1d7c7167a68d 100644 (file)
@@ -99,11 +99,19 @@ import org.slf4j.LoggerFactory;
 // some mutualization would be helpful
 public class PortMappingVersion710 {
     private static final Logger LOG = LoggerFactory.getLogger(PortMappingVersion710.class);
+    private static final Map<Direction, String> SUFFIX;
 
     private final DataBroker dataBroker;
     private final DeviceTransactionManager deviceTransactionManager;
     private final OpenRoadmInterfaces openRoadmInterfaces;
 
+    static {
+        SUFFIX =  Map.of(
+            Direction.Tx, "TX",
+            Direction.Rx, "RX",
+            Direction.Bidirectional, "TXRX");
+    }
+
     public PortMappingVersion710(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager,
         OpenRoadmInterfaces openRoadmInterfaces) {
         this.dataBroker = dataBroker;
@@ -246,7 +254,7 @@ public class PortMappingVersion710 {
                     switch (port.getPortQual()) {
 
                         case XpdrClient:
-                            String lcp0 = "XPDR1-" + StringConstants.CLIENT_TOKEN + client;
+                            String lcp0 = createXpdrLogicalConnectionPort(1, client, StringConstants.CLIENT_TOKEN);
                             lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0);
                             mappingMap.put(lcp0,
                                 createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null, null));
@@ -256,7 +264,7 @@ public class PortMappingVersion710 {
 
                         case XpdrNetwork:
                             if (port.getPortDirection().getIntValue() == Direction.Bidirectional.getIntValue()) {
-                                String lcp = "XPDR1-" + StringConstants.NETWORK_TOKEN + line;
+                                String lcp = createXpdrLogicalConnectionPort(1, line, StringConstants.NETWORK_TOKEN);
                                 lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp);
                                 mappingMap.put(lcp,
                                     createXpdrMappingObject(nodeId, port, circuitPackName, lcp, null, null, null, null)
@@ -264,8 +272,6 @@ public class PortMappingVersion710 {
                                 line++;
                                 continue;
                             }
-                            // TODO PortDirection treatment here is similar to the one in createPpPortMapping.
-                            //      Some code alignment must be considered.
 
                             if (!checkPartnerPortNotNull(port)) {
                                 LOG.warn("Error in the configuration of port {} of {} for {}",
@@ -300,11 +306,8 @@ public class PortMappingVersion710 {
                                     circuitPackName);
                                 continue;
                             }
-                            String lcp1 = "XPDR1-" + StringConstants.NETWORK_TOKEN + line;
-                            String lcp2 = new StringBuilder("XPDR1-")
-                                .append(StringConstants.NETWORK_TOKEN)
-                                .append(line + 1)
-                                .toString();
+                            String lcp1 = createXpdrLogicalConnectionPort(1, line, StringConstants.NETWORK_TOKEN);
+                            String lcp2 = createXpdrLogicalConnectionPort(1, line + 1, StringConstants.NETWORK_TOKEN);
                             if (lcpMap.containsKey(lcp1) || lcpMap.containsKey(lcp2)) {
                                 LOG.warn("mapping already exists for {} or {}", lcp1, lcp2);
                                 line += 2;
@@ -372,7 +375,8 @@ public class PortMappingVersion710 {
 
                         case XpdrClient:
                         case SwitchClient:
-                            String lcp0 = "XPDR" + xponderNb + "-" + StringConstants.CLIENT_TOKEN + client;
+                            String lcp0 =
+                                createXpdrLogicalConnectionPort(xponderNb , client, StringConstants.CLIENT_TOKEN);
                             lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0);
                             mappingMap.put(lcp0,
                                 createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null, null));
@@ -383,7 +387,8 @@ public class PortMappingVersion710 {
                         case XpdrNetwork:
                         case SwitchNetwork:
                             if (port.getPortDirection().getIntValue() == Direction.Bidirectional.getIntValue()) {
-                                String lcp = "XPDR" + xponderNb + "-" + StringConstants.NETWORK_TOKEN + line;
+                                String lcp =
+                                    createXpdrLogicalConnectionPort(xponderNb , line, StringConstants.NETWORK_TOKEN);
                                 lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp);
                                 mappingMap.put(lcp,
                                     createXpdrMappingObject(nodeId, port, circuitPackName, lcp, null, null, null,
@@ -391,8 +396,6 @@ public class PortMappingVersion710 {
                                 line++;
                                 continue;
                             }
-                            // TODO PortDirection treatment here is similar to the one in createPpPortMapping.
-                            //      Some code alignment must be considered.
 
                             if (!checkPartnerPortNotNull(port)) {
                                 LOG.warn("Error in the configuration of port {} of {} for {}",
@@ -429,13 +432,10 @@ public class PortMappingVersion710 {
                                     circuitPackName);
                                 continue;
                             }
-                            String lcp1 = "XPDR" + xponderNb + "-" + StringConstants.NETWORK_TOKEN + line;
-                            String lcp2 = new StringBuilder("XPDR")
-                                .append(xponderNb)
-                                .append("-")
-                                .append(StringConstants.NETWORK_TOKEN)
-                                .append(line + 1)
-                                .toString();
+                            String lcp1 =
+                                createXpdrLogicalConnectionPort(xponderNb , line, StringConstants.NETWORK_TOKEN);
+                            String lcp2 =
+                                createXpdrLogicalConnectionPort(xponderNb , line + 1, StringConstants.NETWORK_TOKEN);
                             if (lcpMap.containsKey(lcp1) || lcpMap.containsKey(lcp2)) {
                                 LOG.warn("mapping already exists for {} or {}", lcp1, lcp2);
                                 line += 2;
@@ -695,21 +695,18 @@ public class PortMappingVersion710 {
     }
 
     private String createLogicalConnectionPort(Ports port, int index, int portIndex) {
-        String lcp = null;
-        switch (port.getPortDirection()) {
-            case Tx:
-                lcp = "SRG" + index + "-PP" + portIndex + "-TX";
-                break;
-            case Rx:
-                lcp = "SRG" + index + "-PP" + portIndex + "-RX";
-                break;
-            case Bidirectional:
-                lcp = "SRG" + index + "-PP" + portIndex + "-TXRX";
-                break;
-            default:
-                LOG.error("Unsupported port direction for port {} : {}", port, port.getPortDirection());
+        if (SUFFIX.containsKey(port.getPortDirection())) {
+            return String.join("-", "SRG" + index, "PP" + portIndex, SUFFIX.get(port.getPortDirection()));
         }
-        return lcp;
+        LOG.error("port {} : Unsupported port direction {}", port, port.getPortDirection());
+        return null;
+    }
+
+    private String createXpdrLogicalConnectionPort(int xponderNb, int lcpNb, String token) {
+        return new StringBuilder("XPDR").append(xponderNb)
+                .append("-")
+                .append(token).append(lcpNb)
+                .toString();
     }
 
     private Map<McCapabilityProfileKey, McCapabilityProfile> getMcCapabilityProfiles(String deviceId, Info ordmInfo) {