--- /dev/null
+/*\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