VES Heartbeat and Software Management Feature
[oam/tr069-adapter.git] / mapper / src / main / java / org / commscope / tr069adapter / mapper / ves / impl / VesRequestHandlerImpl.java
diff --git a/mapper/src/main/java/org/commscope/tr069adapter/mapper/ves/impl/VesRequestHandlerImpl.java b/mapper/src/main/java/org/commscope/tr069adapter/mapper/ves/impl/VesRequestHandlerImpl.java
new file mode 100644 (file)
index 0000000..4d84243
--- /dev/null
@@ -0,0 +1,67 @@
+package org.commscope.tr069adapter.mapper.ves.impl;\r
+\r
+import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
+import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
+import org.commscope.tr069adapter.acs.common.OperationResponse;\r
+import org.commscope.tr069adapter.mapper.MapperConfigProperties;\r
+import org.commscope.tr069adapter.mapper.model.ErrorCodeDetails;\r
+import org.commscope.tr069adapter.mapper.sync.SynchronizedRequestHandler;\r
+import org.commscope.tr069adapter.mapper.util.ErrorCodeUtil;\r
+import org.commscope.tr069adapter.mapper.util.MapperConstants;\r
+import org.commscope.tr069adapter.mapper.ves.VesRequestHandler;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Component;\r
+\r
+@Component\r
+public class VesRequestHandlerImpl implements VesRequestHandler {\r
+\r
+  private static final Logger LOG = LoggerFactory.getLogger(VesRequestHandlerImpl.class);\r
+\r
+  @Autowired\r
+  SynchronizedRequestHandler syncHandler;\r
+\r
+  @Autowired\r
+  MapperConfigProperties config;\r
+\r
+  @Autowired\r
+  private ErrorCodeUtil errorCodeUtil;\r
+\r
+\r
+  @Override\r
+  public DeviceRPCResponse handleDeviceConnectivityRequest(DeviceRPCRequest deviceRPCRequest) {\r
+    DeviceRPCResponse deviceRPCResponse = syncHandler.performDeviceOperation(deviceRPCRequest);\r
+    if (null == deviceRPCResponse) {\r
+      return getTimeOutResponse(deviceRPCRequest);\r
+    }\r
+\r
+    return deviceRPCResponse;\r
+  }\r
+\r
+  private DeviceRPCResponse getTimeOutResponse(DeviceRPCRequest deviceRPCRequest) {\r
+    DeviceRPCResponse timeOutErrorResponse = new DeviceRPCResponse();\r
+\r
+    timeOutErrorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
+\r
+    OperationResponse operationResponse = new OperationResponse();\r
+    operationResponse.setStatus(MapperConstants.DEVICE_REACHABILITY_OP_FAILURE_CODE);// device\r
+                                                                                     // reachable...change\r
+                                                                                     // value 1 to\r
+                                                                                     // some\r
+                                                                                     // constant or\r
+                                                                                     // enum\r
+    operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
+\r
+    timeOutErrorResponse.setOperationResponse(operationResponse);\r
+    timeOutErrorResponse.setFaultKey(MapperConstants.DEVICE_TIMEOUT_STATUS_CODE);\r
+    ErrorCodeDetails errorCodeDetails =\r
+        errorCodeUtil.getErrorCodeMetaData(MapperConstants.DEVICE_TIMEOUT_STATUS_CODE);\r
+    if (null != errorCodeDetails) {\r
+      timeOutErrorResponse.setFaultString(errorCodeDetails.getErrorMessage());\r
+    } else {\r
+      timeOutErrorResponse.setFaultString(MapperConstants.DEFAULT_OP_TIMEOUT_MSG);\r
+    }\r
+    return timeOutErrorResponse;\r
+  }\r
+}\r