Initial source code
[oam/tr069-adapter.git] / acs / cpe / src / main / java / org / commscope / tr069adapter / acs / cpe / builder / DeviceRPCResponseBuilder.java
diff --git a/acs/cpe/src/main/java/org/commscope/tr069adapter/acs/cpe/builder/DeviceRPCResponseBuilder.java b/acs/cpe/src/main/java/org/commscope/tr069adapter/acs/cpe/builder/DeviceRPCResponseBuilder.java
new file mode 100644 (file)
index 0000000..758ef5a
--- /dev/null
@@ -0,0 +1,227 @@
+/*\r
+ * ============LICENSE_START========================================================================\r
+ * ONAP : tr-069-adapter\r
+ * =================================================================================================\r
+ * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
+ * =================================================================================================\r
+ * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
+ * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
+ * may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
+ * either express or implied. See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ===============LICENSE_END=======================================================================\r
+ */\r
+\r
+package org.commscope.tr069adapter.acs.cpe.builder;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Map.Entry;\r
+\r
+import org.commscope.tr069adapter.acs.common.OperationResponse;\r
+import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
+import org.commscope.tr069adapter.acs.common.dto.ParameterAttributeDTO;\r
+import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
+import org.commscope.tr069adapter.acs.cpe.TR069RPC;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.AddObjectResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.DeleteObjectResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.DownloadResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.FactoryResetResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.GetParameterAttributesResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.GetParameterAttributesResponse.ParameterAttributeStruct;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.GetParameterValuesResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.RebootResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.SetParameterAttributesResponse;\r
+import org.commscope.tr069adapter.acs.cpe.rpc.SetParameterValuesResponse;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.springframework.stereotype.Component;\r
+\r
+@Component\r
+public class DeviceRPCResponseBuilder {\r
+\r
+  private static final Logger logger = LoggerFactory.getLogger(DeviceRPCResponseBuilder.class);\r
+\r
+  /**\r
+   * @param message\r
+   * @return\r
+   */\r
+  public OperationResponse constructDeviceRPCResponse(TR069RPC message) {\r
+    OperationResponse operationResponse = null;\r
+    if (message instanceof SetParameterValuesResponse) {\r
+      logger.debug("Response Msg is SPVResponse");\r
+      SetParameterValuesResponse values = (SetParameterValuesResponse) message;\r
+      operationResponse = buildSetParameterValuesResponse(values.getStatus());\r
+    } else if (message instanceof GetParameterValuesResponse) {\r
+      logger.debug("Response Msg is GPVResponse");\r
+      GetParameterValuesResponse values = (GetParameterValuesResponse) message;\r
+      operationResponse = buildGetParameterValuesResponse(values.getValues());\r
+    } else if (message instanceof SetParameterAttributesResponse) {\r
+      logger.debug("Response Msg is SPAResponse");\r
+      operationResponse = buildSetParameterAttributesResponse();\r
+    } else if (message instanceof GetParameterAttributesResponse) {\r
+      logger.debug("Response Msg is GPAResponse");\r
+      GetParameterAttributesResponse values = (GetParameterAttributesResponse) message;\r
+      operationResponse = buildGetParameterAttributeResponse(values.getAttributes());\r
+    } else if (message instanceof AddObjectResponse) {\r
+      logger.debug("Response Msg is AOResponse");\r
+      AddObjectResponse values = (AddObjectResponse) message;\r
+      operationResponse = buildAddObjectResponse(values.getInstanceNumber(), values.getStatus());\r
+    } else if (message instanceof DeleteObjectResponse) {\r
+      logger.debug("Response Msg is DOResponse");\r
+      DeleteObjectResponse values = (DeleteObjectResponse) message;\r
+      operationResponse = buildDeleteObjectResponse(values.getStatus());\r
+    } else if (message instanceof FactoryResetResponse) {\r
+      logger.debug("Response Msg is FRResponse");\r
+      operationResponse = buildFactoryResetResponse();\r
+    } else if (message instanceof RebootResponse) {\r
+      logger.debug("Response Msg is RebootResponse");\r
+      operationResponse = buildRebootResponse();\r
+    } else if (message instanceof DownloadResponse) {\r
+      logger.debug("Response Msg is DownloadResponse");\r
+      DownloadResponse values = (DownloadResponse) message;\r
+      operationResponse = buildDownloadResponse(values.getStatus());\r
+    }\r
+\r
+    return operationResponse;\r
+  }\r
+\r
+  /**\r
+   * @param status\r
+   * @return\r
+   */\r
+  private OperationResponse buildSetParameterValuesResponse(int status) {\r
+    org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse setParameterValueResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse();\r
+    setParameterValueResponse.setStatus(status);\r
+    setParameterValueResponse.setOperationCode(TR069OperationCode.SET_PARAMETER_VALUES);\r
+\r
+    return setParameterValueResponse;\r
+  }\r
+\r
+  /**\r
+   * @param parameterList\r
+   * @return\r
+   */\r
+  private OperationResponse buildGetParameterValuesResponse(Map<String, String> parameterList) {\r
+    org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse getParameterValuesResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse();\r
+\r
+    List<ParameterDTO> parameterDTOs = new ArrayList<>();\r
+    for (Entry<String, String> entry : parameterList.entrySet()) {\r
+      ParameterDTO parameterDTO = new ParameterDTO();\r
+      parameterDTO.setParamName(entry.getKey());\r
+      parameterDTO.setParamValue(entry.getValue());\r
+      parameterDTOs.add(parameterDTO);\r
+    }\r
+\r
+    getParameterValuesResponse.setParameterDTOs(parameterDTOs);\r
+    getParameterValuesResponse.setOperationCode(TR069OperationCode.GET_PARAMETER_VALUES);\r
+\r
+    return getParameterValuesResponse;\r
+  }\r
+\r
+  /**\r
+   * @return\r
+   */\r
+  private OperationResponse buildSetParameterAttributesResponse() {\r
+    org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse setParameterAttributeResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse();\r
+    setParameterAttributeResponse.setOperationCode(TR069OperationCode.SET_PARAMETER_ATTRIBUTES);\r
+    return setParameterAttributeResponse;\r
+  }\r
+\r
+  /**\r
+   * @param attributes\r
+   * @return\r
+   */\r
+  private OperationResponse buildGetParameterAttributeResponse(\r
+      ParameterAttributeStruct[] attributes) {\r
+    org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse getParameterAttributeResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse();\r
+\r
+    List<ParameterDTO> parameterAttributeList = new ArrayList<>();\r
+    for (int i = 0; i < attributes.length; i++) {\r
+      ParameterAttributeStruct parameterAttributeStruct = attributes[i];\r
+      ParameterAttributeDTO parameterAttributeDTO = new ParameterAttributeDTO();\r
+      parameterAttributeDTO.setParamName(parameterAttributeStruct.getName());\r
+      parameterAttributeDTO.setNotification(parameterAttributeStruct.getNotification());\r
+      parameterAttributeDTO.setAccessList(parameterAttributeStruct.getAccessList());\r
+      parameterAttributeList.add(parameterAttributeDTO);\r
+    }\r
+\r
+    getParameterAttributeResponse.setParameterDTOs(parameterAttributeList);\r
+    getParameterAttributeResponse.setOperationCode(TR069OperationCode.GET_PARAMETER_ATTRIBUTES);\r
+\r
+    return getParameterAttributeResponse;\r
+  }\r
+\r
+  /**\r
+   * @param instanceNumber\r
+   * @param status\r
+   * @return\r
+   */\r
+  private OperationResponse buildAddObjectResponse(long instanceNumber, int status) {\r
+    org.commscope.tr069adapter.acs.common.response.AddObjectResponse addObjectResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.AddObjectResponse();\r
+    addObjectResponse.setInstanceNumber(instanceNumber);\r
+    addObjectResponse.setStatus(status);\r
+    addObjectResponse.setOperationCode(TR069OperationCode.ADD_OBJECT);\r
+\r
+    return addObjectResponse;\r
+  }\r
+\r
+  /**\r
+   * @param status\r
+   * @return\r
+   */\r
+  private OperationResponse buildDeleteObjectResponse(int status) {\r
+    org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse deleteObjectResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse();\r
+    deleteObjectResponse.setStatus(status);\r
+    deleteObjectResponse.setOperationCode(TR069OperationCode.DELETE_OBJECT);\r
+\r
+    return deleteObjectResponse;\r
+  }\r
+\r
+  /**\r
+   * @return\r
+   */\r
+  private OperationResponse buildFactoryResetResponse() {\r
+    org.commscope.tr069adapter.acs.common.response.FactoryResetResponse factoryResetResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.FactoryResetResponse();\r
+    factoryResetResponse.setOperationCode(TR069OperationCode.FACTORY_RESET);\r
+\r
+    return factoryResetResponse;\r
+  }\r
+\r
+  /**\r
+   * @return\r
+   */\r
+  private OperationResponse buildRebootResponse() {\r
+    org.commscope.tr069adapter.acs.common.response.RebootResponse rebootResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.RebootResponse();\r
+    rebootResponse.setOperationCode(TR069OperationCode.REBOOT);\r
+\r
+    return rebootResponse;\r
+  }\r
+\r
+  /**\r
+   * @param status\r
+   * @return\r
+   */\r
+  private OperationResponse buildDownloadResponse(int status) {\r
+    org.commscope.tr069adapter.acs.common.response.DownloadResponse downloadResponse =\r
+        new org.commscope.tr069adapter.acs.common.response.DownloadResponse();\r
+    downloadResponse.setStatus(status);\r
+    downloadResponse.setOperationCode(TR069OperationCode.DOWNLOAD);\r
+\r
+    return downloadResponse;\r
+  }\r
+\r
+}\r