1 package org.commscope.tr069adapter.vesagent.util;
\r
3 import java.util.List;
\r
4 import java.util.Map;
\r
6 import org.apache.commons.logging.Log;
\r
7 import org.apache.commons.logging.LogFactory;
\r
8 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
\r
9 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
\r
10 import org.commscope.tr069adapter.acs.common.OperationCode;
\r
11 import org.commscope.tr069adapter.acs.common.OperationResponse;
\r
12 import org.commscope.tr069adapter.acs.common.ParameterDTO;
\r
13 import org.commscope.tr069adapter.mapper.model.VESNotification;
\r
14 import org.commscope.tr069adapter.vesagent.exception.VesAgentException;
\r
17 public class VesAgentUtils {
\r
18 private static final Log logger = LogFactory.getLog(VesAgentUtils.class);
\r
20 private static String errorMsg = null;
\r
22 public static boolean isNullOrEmpty(String object) {
\r
23 return (null == object || object.isEmpty());
\r
26 public static Boolean isNullOrEmpty(List list) {
\r
27 return (null == list || list.isEmpty());
\r
30 public static Boolean isNullOrEmpty(Map map) {
\r
31 return (null == map || map.isEmpty());
\r
34 public static void validateDeviceId(String deviceId) throws VesAgentException {
\r
35 if (null == deviceId || deviceId.isEmpty()) {
\r
36 errorMsg = "Error: deviceId in request is null or empty";
\r
37 logger.error(errorMsg);
\r
38 throw new VesAgentException(errorMsg);
\r
42 public static void validateHeartBeatPeriod(Integer heartBeatPeriod) throws VesAgentException {
\r
43 if (null == heartBeatPeriod) {
\r
44 errorMsg = "Error: heartBeatPeriod in request is null or empty";
\r
45 logger.error(errorMsg);
\r
46 throw new VesAgentException(errorMsg);
\r
51 public static void validateCountDownTimer(Integer countDownTimer) throws VesAgentException {
\r
52 if (null == countDownTimer) {
\r
53 errorMsg = "Error: countDownTimer in request is null or empty";
\r
54 logger.error(errorMsg);
\r
55 throw new VesAgentException(errorMsg);
\r
59 public static void validateDeviceRPCRequest(DeviceRPCRequest deviceRPCRequest)
\r
60 throws VesAgentException {
\r
61 if (null == deviceRPCRequest || null == deviceRPCRequest.getOpDetails()
\r
62 || null == deviceRPCRequest.getOpDetails().getParmeters()
\r
63 || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
64 errorMsg = "Error: Input parameter list is null or empty";
\r
65 logger.error(errorMsg);
\r
66 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
69 if (null == deviceRPCRequest.getDeviceDetails()
\r
70 || null == deviceRPCRequest.getDeviceDetails().getDeviceId()
\r
71 || deviceRPCRequest.getDeviceDetails().getDeviceId().isEmpty()) {
\r
72 errorMsg = "Error: Input deviceId is null or empty";
\r
73 logger.error(errorMsg);
\r
74 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
78 public static void validateVESNotification(VESNotification notification)
\r
79 throws VesAgentException {
\r
80 if (null == notification || null == notification.getDevnotification()
\r
81 || null == notification.getDevnotification().getDeviceDetails()
\r
82 || null == notification.getDevnotification().getDeviceDetails().getDeviceId()
\r
83 || notification.getDevnotification().getDeviceDetails().getDeviceId().isEmpty()) {
\r
85 errorMsg = "Error: Input device details is null or empty";
\r
86 logger.error(errorMsg);
\r
87 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
91 public static void validateDelVESNotification(VESNotification notification)
\r
92 throws VesAgentException {
\r
93 if (null == notification || null == notification.getOperationDetails()
\r
94 || null == notification.getOperationDetails().getParmeters()
\r
95 || notification.getOperationDetails().getParmeters().isEmpty()) {
\r
96 errorMsg = "Error: Input parameter list is null or empty";
\r
97 logger.error(errorMsg);
\r
98 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
101 if (null == notification.geteNodeBName() || notification.geteNodeBName().isEmpty()) {
\r
102 errorMsg = "Error: Input deviceId/enodeBName is null or empty";
\r
103 logger.error(errorMsg);
\r
104 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
109 public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,
\r
110 String faultCode, String faultMessage) {
\r
111 DeviceRPCResponse errorResponse = new DeviceRPCResponse();
\r
113 errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
\r
115 OperationResponse operationResponse = new OperationResponse();
\r
116 operationResponse.setStatus(VesAgentConstants.RPC_FAILED);// device reachable...change value 1
\r
117 // to some constant or enum
\r
118 operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
\r
120 errorResponse.setOperationResponse(operationResponse);
\r
121 errorResponse.setFaultKey(faultCode);
\r
122 errorResponse.setFaultString(faultMessage);
\r
124 return errorResponse;
\r
127 public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {
\r
128 DeviceRPCResponse response = new DeviceRPCResponse();
\r
130 response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
\r
132 OperationResponse operationResponse = new OperationResponse();
\r
133 operationResponse.setStatus(VesAgentConstants.RPC_SUCCESS);
\r
134 operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
\r
135 operationResponse.setParameterDTOs(deviceRPCRequest.getOpDetails().getParmeters());
\r
137 response.setOperationResponse(operationResponse);
\r
141 public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {
\r
142 if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {
\r
146 if (deviceRPCResponse.getOperationResponse()
\r
147 .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {
\r
151 return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()
\r
152 .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));
\r
155 public static Boolean isVesNotificationRequest(ParameterDTO param) {
\r
156 if (null == param.getParamName() || param.getParamName().isEmpty()) {
\r
160 return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());
\r
164 public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {
\r
165 return deviceId + "-" + opCode;
\r