--- /dev/null
+package org.commscope.tr069adapter.vesagent.util;\r
+\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
+import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
+import org.commscope.tr069adapter.acs.common.OperationCode;\r
+import org.commscope.tr069adapter.acs.common.OperationResponse;\r
+import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
+import org.commscope.tr069adapter.mapper.model.VESNotification;\r
+import org.commscope.tr069adapter.vesagent.exception.VesAgentException;\r
+\r
+\r
+public class VesAgentUtils {\r
+ private static final Log logger = LogFactory.getLog(VesAgentUtils.class);\r
+\r
+ private static String errorMsg = null;\r
+\r
+ public static boolean isNullOrEmpty(String object) {\r
+ return (null == object || object.isEmpty());\r
+ }\r
+\r
+ public static Boolean isNullOrEmpty(List list) {\r
+ return (null == list || list.isEmpty());\r
+ }\r
+\r
+ public static Boolean isNullOrEmpty(Map map) {\r
+ return (null == map || map.isEmpty());\r
+ }\r
+\r
+ public static void validateDeviceId(String deviceId) throws VesAgentException {\r
+ if (null == deviceId || deviceId.isEmpty()) {\r
+ errorMsg = "Error: deviceId in request is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(errorMsg);\r
+ }\r
+ }\r
+\r
+ public static void validateHeartBeatPeriod(Integer heartBeatPeriod) throws VesAgentException {\r
+ if (null == heartBeatPeriod) {\r
+ errorMsg = "Error: heartBeatPeriod in request is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(errorMsg);\r
+ }\r
+ }\r
+\r
+\r
+ public static void validateCountDownTimer(Integer countDownTimer) throws VesAgentException {\r
+ if (null == countDownTimer) {\r
+ errorMsg = "Error: countDownTimer in request is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(errorMsg);\r
+ }\r
+ }\r
+\r
+ public static void validateDeviceRPCRequest(DeviceRPCRequest deviceRPCRequest)\r
+ throws VesAgentException {\r
+ if (null == deviceRPCRequest || null == deviceRPCRequest.getOpDetails()\r
+ || null == deviceRPCRequest.getOpDetails().getParmeters()\r
+ || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {\r
+ errorMsg = "Error: Input parameter list is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
+ }\r
+\r
+ if (null == deviceRPCRequest.getDeviceDetails()\r
+ || null == deviceRPCRequest.getDeviceDetails().getDeviceId()\r
+ || deviceRPCRequest.getDeviceDetails().getDeviceId().isEmpty()) {\r
+ errorMsg = "Error: Input deviceId is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
+ }\r
+ }\r
+\r
+ public static void validateVESNotification(VESNotification notification)\r
+ throws VesAgentException {\r
+ if (null == notification || null == notification.getDevnotification()\r
+ || null == notification.getDevnotification().getDeviceDetails()\r
+ || null == notification.getDevnotification().getDeviceDetails().getDeviceId()\r
+ || notification.getDevnotification().getDeviceDetails().getDeviceId().isEmpty()) {\r
+\r
+ errorMsg = "Error: Input device details is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
+ }\r
+ }\r
+\r
+ public static void validateDelVESNotification(VESNotification notification)\r
+ throws VesAgentException {\r
+ if (null == notification || null == notification.getOperationDetails()\r
+ || null == notification.getOperationDetails().getParmeters()\r
+ || notification.getOperationDetails().getParmeters().isEmpty()) {\r
+ errorMsg = "Error: Input parameter list is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
+ }\r
+\r
+ if (null == notification.geteNodeBName() || notification.geteNodeBName().isEmpty()) {\r
+ errorMsg = "Error: Input deviceId/enodeBName is null or empty";\r
+ logger.error(errorMsg);\r
+ throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
+ }\r
+ }\r
+\r
+\r
+ public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,\r
+ String faultCode, String faultMessage) {\r
+ DeviceRPCResponse errorResponse = new DeviceRPCResponse();\r
+\r
+ errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
+\r
+ OperationResponse operationResponse = new OperationResponse();\r
+ operationResponse.setStatus(VesAgentConstants.RPC_FAILED);// device reachable...change value 1\r
+ // to some constant or enum\r
+ operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
+\r
+ errorResponse.setOperationResponse(operationResponse);\r
+ errorResponse.setFaultKey(faultCode);\r
+ errorResponse.setFaultString(faultMessage);\r
+\r
+ return errorResponse;\r
+ }\r
+\r
+ public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {\r
+ DeviceRPCResponse response = new DeviceRPCResponse();\r
+\r
+ response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
+\r
+ OperationResponse operationResponse = new OperationResponse();\r
+ operationResponse.setStatus(VesAgentConstants.RPC_SUCCESS);\r
+ operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
+ operationResponse.setParameterDTOs(deviceRPCRequest.getOpDetails().getParmeters());\r
+\r
+ response.setOperationResponse(operationResponse);\r
+ return response;\r
+ }\r
+\r
+ public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {\r
+ if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {\r
+ return false;\r
+ }\r
+\r
+ if (deviceRPCResponse.getOperationResponse()\r
+ .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {\r
+ return true;\r
+ }\r
+\r
+ return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()\r
+ .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));\r
+ }\r
+\r
+ public static Boolean isVesNotificationRequest(ParameterDTO param) {\r
+ if (null == param.getParamName() || param.getParamName().isEmpty()) {\r
+ return false;\r
+ }\r
+\r
+ return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());\r
+ }\r
+\r
+\r
+ public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {\r
+ return deviceId + "-" + opCode;\r
+ }\r
+\r
+}\r