Remove some useless code
[transportpce.git] / common / src / main / java / org / opendaylight / transportpce / common / crossconnect / CrossConnectImpl.java
index 6b55a2feda0325db15c366a7ae4e9b47a86c5f9e..b9a12e5881a760ef2a3949324dc9813d255293e8 100644 (file)
@@ -12,7 +12,6 @@ import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEV
 import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_2_2_1;
 import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_7_1;
 
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Optional;
 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
@@ -20,20 +19,34 @@ import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
 import org.opendaylight.transportpce.common.mapping.MappingUtils;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.OpticalControlMode;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.otn.renderer.input.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.otn.renderer.nodes.Nodes;
+import org.opendaylight.yangtools.yang.common.Decimal64;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Component
 public class CrossConnectImpl implements CrossConnect {
 
     private static final Logger LOG = LoggerFactory.getLogger(CrossConnectImpl.class);
 
-    protected CrossConnect crossConnect;
     private final MappingUtils mappingUtils;
     private CrossConnectImpl121 crossConnectImpl121;
     private CrossConnectImpl221 crossConnectImpl221;
     private CrossConnectImpl710 crossConnectImpl710;
 
+    @Activate
+    public CrossConnectImpl(@Reference DeviceTransactionManager deviceTransactionManager,
+                            @Reference MappingUtils mappingUtils) {
+        this(deviceTransactionManager, mappingUtils,
+            new CrossConnectImpl121(deviceTransactionManager),
+            new CrossConnectImpl221(deviceTransactionManager),
+            new CrossConnectImpl710(deviceTransactionManager));
+    }
+
+    // TODO: DeviceTransactionManager is not used here
     public CrossConnectImpl(DeviceTransactionManager deviceTransactionManager, MappingUtils mappingUtils,
                             CrossConnectImpl121 crossConnectImpl121,
                             CrossConnectImpl221 crossConnectImpl221,
@@ -42,42 +55,39 @@ public class CrossConnectImpl implements CrossConnect {
         this.crossConnectImpl121 = crossConnectImpl121;
         this.crossConnectImpl221 = crossConnectImpl221;
         this.crossConnectImpl710 = crossConnectImpl710;
-        this.crossConnect = null;
     }
 
     public Optional<?> getCrossConnect(String nodeId, String connectionNumber) {
-        String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId);
-        if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) {
-            return crossConnectImpl121.getCrossConnect(nodeId,connectionNumber);
-        }
-        else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) {
-            return crossConnectImpl221.getCrossConnect(nodeId,connectionNumber);
+        switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+            case OPENROADM_DEVICE_VERSION_1_2_1:
+                return crossConnectImpl121.getCrossConnect(nodeId,connectionNumber);
+            case OPENROADM_DEVICE_VERSION_2_2_1:
+                return crossConnectImpl221.getCrossConnect(nodeId,connectionNumber);
+            default:
+                return Optional.empty();
         }
-        return Optional.empty();
     }
 
 
     public Optional<String> postCrossConnect(String nodeId, String srcTp, String destTp,
             SpectrumInformation spectrumInformation) {
         String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId);
-        LOG.info("Cross Connect post request received for node {} with version {}",nodeId,openRoadmVersion);
-        if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) {
-            LOG.info("Device Version is 1.2.1");
-            return crossConnectImpl121.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation);
-        }
-        else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) {
-            LOG.info("Device Version is 2.2");
-            return crossConnectImpl221.postCrossConnect(nodeId, srcTp, destTp,
-                    spectrumInformation);
+        LOG.info("Cross Connect post request received for node {} with version {}", nodeId, openRoadmVersion);
+        switch (openRoadmVersion) {
+            case OPENROADM_DEVICE_VERSION_1_2_1:
+                LOG.info("Device Version is 1.2.1");
+                return crossConnectImpl121.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation);
+            case OPENROADM_DEVICE_VERSION_2_2_1:
+                LOG.info("Device Version is 2.2.1");
+                return crossConnectImpl221.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation);
+            default:
+                LOG.info("Device Version not found");
+                return Optional.empty();
         }
-        LOG.info("Device Version not found");
-        return Optional.empty();
-
     }
 
 
     public List<String> deleteCrossConnect(String nodeId, String connectionNumber, Boolean isOtn) {
-
         switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
             case OPENROADM_DEVICE_VERSION_1_2_1:
                 return crossConnectImpl121.deleteCrossConnect(nodeId, connectionNumber);
@@ -93,45 +103,52 @@ public class CrossConnectImpl implements CrossConnect {
     public List<?> getConnectionPortTrail(String nodeId, String srcTp, String destTp, int lowerSpectralSlotNumber,
             int higherSpectralSlotNumber)
             throws OpenRoadmInterfaceException {
-        String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId);
-        if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) {
-            return crossConnectImpl121.getConnectionPortTrail(nodeId, srcTp, destTp,
-                    lowerSpectralSlotNumber, higherSpectralSlotNumber);
-        }
-        else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) {
-            return crossConnectImpl221
+        switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+            case OPENROADM_DEVICE_VERSION_1_2_1:
+                return crossConnectImpl121
+                    .getConnectionPortTrail(nodeId, srcTp, destTp, lowerSpectralSlotNumber, higherSpectralSlotNumber);
+            case OPENROADM_DEVICE_VERSION_2_2_1:
+                return crossConnectImpl221
                     .getConnectionPortTrail(nodeId, srcTp, destTp, lowerSpectralSlotNumber, higherSpectralSlotNumber);
+            default:
+                return null;
         }
-        return null;
     }
 
-    public boolean setPowerLevel(String nodeId, String mode, BigDecimal powerValue, String connectionNumber) {
-        String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId);
-        if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion) && OpticalControlMode.forName(mode).isPresent()) {
-            return crossConnectImpl121.setPowerLevel(nodeId,OpticalControlMode.forName(mode).get(),
-                powerValue,connectionNumber);
-        }
-        else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)
-            && org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode.forName(mode)
-            .isPresent()) {
-            return crossConnectImpl221.setPowerLevel(nodeId,
-                org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode.forName(mode)
-                .get(), powerValue,connectionNumber);
+    @Override
+    public boolean setPowerLevel(String nodeId, String mode, Decimal64 powerValue, String connectionNumber) {
+        switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+            case OPENROADM_DEVICE_VERSION_1_2_1:
+                if (OpticalControlMode.forName(mode) == null) {
+                    return false;
+                }
+                return crossConnectImpl121.setPowerLevel(nodeId,
+                    OpticalControlMode.forName(mode),
+                    powerValue, connectionNumber);
+            case OPENROADM_DEVICE_VERSION_2_2_1:
+                if (org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode
+                        .forName(mode) == null) {
+                    return false;
+                }
+                return crossConnectImpl221.setPowerLevel(nodeId,
+                    org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode
+                        .forName(mode),
+                    powerValue, connectionNumber);
+            default:
+                return false;
         }
-        return false;
     }
 
     @Override
     public Optional<String> postOtnCrossConnect(List<String> createdOduInterfaces, Nodes node)
             throws OpenRoadmInterfaceException {
-        String openRoadmVersion = mappingUtils.getOpenRoadmVersion(node.getNodeId());
-
-        if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) {
-            return crossConnectImpl221.postOtnCrossConnect(createdOduInterfaces, node);
-        }
-        else if (OPENROADM_DEVICE_VERSION_7_1.equals(openRoadmVersion)) {
-            return crossConnectImpl710.postOtnCrossConnect(createdOduInterfaces, node);
+        switch (mappingUtils.getOpenRoadmVersion(node.getNodeId())) {
+            case OPENROADM_DEVICE_VERSION_2_2_1:
+                return crossConnectImpl221.postOtnCrossConnect(createdOduInterfaces, node);
+            case OPENROADM_DEVICE_VERSION_7_1:
+                return crossConnectImpl710.postOtnCrossConnect(createdOduInterfaces, node);
+            default:
+                return Optional.empty();
         }
-        return Optional.empty();
     }
 }