fc1128d9207c986c158bd23f5897b95c710ca310
[oam/tr069-adapter.git] / ves-agent / src / main / java / org / commscope / tr069adapter / vesagent / util / VesAgentUtils.java
1 package org.commscope.tr069adapter.vesagent.util;\r
2 \r
3 import java.util.List;\r
4 import java.util.Map;\r
5 \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
15 \r
16 \r
17 public class VesAgentUtils {\r
18   private static final Log logger = LogFactory.getLog(VesAgentUtils.class);\r
19 \r
20   private static String errorMsg = null;\r
21 \r
22   public static boolean isNullOrEmpty(String object) {\r
23     return (null == object || object.isEmpty());\r
24   }\r
25 \r
26   public static Boolean isNullOrEmpty(List list) {\r
27     return (null == list || list.isEmpty());\r
28   }\r
29 \r
30   public static Boolean isNullOrEmpty(Map map) {\r
31     return (null == map || map.isEmpty());\r
32   }\r
33 \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
39     }\r
40   }\r
41 \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
47     }\r
48   }\r
49 \r
50 \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
56     }\r
57   }\r
58 \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
67     }\r
68 \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
75     }\r
76   }\r
77 \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
84 \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
88     }\r
89   }\r
90 \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
99     }\r
100 \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
105     }\r
106   }\r
107 \r
108 \r
109   public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,\r
110       String faultCode, String faultMessage) {\r
111     DeviceRPCResponse errorResponse = new DeviceRPCResponse();\r
112 \r
113     errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
114 \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
119 \r
120     errorResponse.setOperationResponse(operationResponse);\r
121     errorResponse.setFaultKey(faultCode);\r
122     errorResponse.setFaultString(faultMessage);\r
123 \r
124     return errorResponse;\r
125   }\r
126 \r
127   public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {\r
128     DeviceRPCResponse response = new DeviceRPCResponse();\r
129 \r
130     response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
131 \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
136 \r
137     response.setOperationResponse(operationResponse);\r
138     return response;\r
139   }\r
140 \r
141   public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {\r
142     if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {\r
143       return false;\r
144     }\r
145 \r
146     if (deviceRPCResponse.getOperationResponse()\r
147         .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {\r
148       return true;\r
149     }\r
150 \r
151     return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()\r
152         .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));\r
153   }\r
154 \r
155   public static Boolean isVesNotificationRequest(ParameterDTO param) {\r
156     if (null == param.getParamName() || param.getParamName().isEmpty()) {\r
157       return false;\r
158     }\r
159 \r
160     return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());\r
161   }\r
162 \r
163 \r
164   public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {\r
165     return deviceId + "-" + opCode;\r
166   }\r
167 \r
168 }\r