Adding Copyright Missing files
[oam/tr069-adapter.git] / ves-agent / src / main / java / org / commscope / tr069adapter / vesagent / util / VesAgentUtils.java
1 /*
2  * ============LICENSE_START========================================================================
3  * ONAP : tr-069-adapter
4  * =================================================================================================
5  * Copyright (C) 2020 CommScope Inc Intellectual Property.
6  * =================================================================================================
7  * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
8  * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
9  * may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14  * either express or implied. See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ===============LICENSE_END=======================================================================
17  */
18
19 package org.commscope.tr069adapter.vesagent.util;\r
20 \r
21 import java.util.List;\r
22 import java.util.Map;\r
23 \r
24 import org.apache.commons.logging.Log;\r
25 import org.apache.commons.logging.LogFactory;\r
26 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
27 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
28 import org.commscope.tr069adapter.acs.common.OperationCode;\r
29 import org.commscope.tr069adapter.acs.common.OperationResponse;\r
30 import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
31 import org.commscope.tr069adapter.mapper.model.VESNotification;\r
32 import org.commscope.tr069adapter.vesagent.exception.VesAgentException;\r
33 \r
34 \r
35 public class VesAgentUtils {\r
36   private static final Log logger = LogFactory.getLog(VesAgentUtils.class);\r
37 \r
38   private static String errorMsg = null;\r
39 \r
40   public static boolean isNullOrEmpty(String object) {\r
41     return (null == object || object.isEmpty());\r
42   }\r
43 \r
44   public static Boolean isNullOrEmpty(List list) {\r
45     return (null == list || list.isEmpty());\r
46   }\r
47 \r
48   public static Boolean isNullOrEmpty(Map map) {\r
49     return (null == map || map.isEmpty());\r
50   }\r
51 \r
52   public static void validateDeviceId(String deviceId) throws VesAgentException {\r
53     if (null == deviceId || deviceId.isEmpty()) {\r
54       errorMsg = "Error: deviceId in request is null or empty";\r
55       logger.error(errorMsg);\r
56       throw new VesAgentException(errorMsg);\r
57     }\r
58   }\r
59 \r
60   public static void validateHeartBeatPeriod(Integer heartBeatPeriod) throws VesAgentException {\r
61     if (null == heartBeatPeriod) {\r
62       errorMsg = "Error: heartBeatPeriod in request is null or empty";\r
63       logger.error(errorMsg);\r
64       throw new VesAgentException(errorMsg);\r
65     }\r
66   }\r
67 \r
68 \r
69   public static void validateCountDownTimer(Integer countDownTimer) throws VesAgentException {\r
70     if (null == countDownTimer) {\r
71       errorMsg = "Error: countDownTimer in request is null or empty";\r
72       logger.error(errorMsg);\r
73       throw new VesAgentException(errorMsg);\r
74     }\r
75   }\r
76 \r
77   public static void validateDeviceRPCRequest(DeviceRPCRequest deviceRPCRequest)\r
78       throws VesAgentException {\r
79     if (null == deviceRPCRequest || null == deviceRPCRequest.getOpDetails()\r
80         || null == deviceRPCRequest.getOpDetails().getParmeters()\r
81         || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {\r
82       errorMsg = "Error: Input parameter list is null or empty";\r
83       logger.error(errorMsg);\r
84       throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
85     }\r
86 \r
87     if (null == deviceRPCRequest.getDeviceDetails()\r
88         || null == deviceRPCRequest.getDeviceDetails().getDeviceId()\r
89         || deviceRPCRequest.getDeviceDetails().getDeviceId().isEmpty()) {\r
90       errorMsg = "Error: Input deviceId is null or empty";\r
91       logger.error(errorMsg);\r
92       throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
93     }\r
94   }\r
95 \r
96   public static void validateVESNotification(VESNotification notification)\r
97       throws VesAgentException {\r
98     if (null == notification || null == notification.getDevnotification()\r
99         || null == notification.getDevnotification().getDeviceDetails()\r
100         || null == notification.getDevnotification().getDeviceDetails().getDeviceId()\r
101         || notification.getDevnotification().getDeviceDetails().getDeviceId().isEmpty()) {\r
102 \r
103       errorMsg = "Error: Input device details is null or empty";\r
104       logger.error(errorMsg);\r
105       throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
106     }\r
107   }\r
108 \r
109   public static void validateDelVESNotification(VESNotification notification)\r
110       throws VesAgentException {\r
111     if (null == notification || null == notification.getOperationDetails()\r
112         || null == notification.getOperationDetails().getParmeters()\r
113         || notification.getOperationDetails().getParmeters().isEmpty()) {\r
114       errorMsg = "Error: Input parameter list is null or empty";\r
115       logger.error(errorMsg);\r
116       throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
117     }\r
118 \r
119     if (null == notification.geteNodeBName() || notification.geteNodeBName().isEmpty()) {\r
120       errorMsg = "Error: Input deviceId/enodeBName is null or empty";\r
121       logger.error(errorMsg);\r
122       throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
123     }\r
124   }\r
125 \r
126 \r
127   public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,\r
128       String faultCode, String faultMessage) {\r
129     DeviceRPCResponse errorResponse = new DeviceRPCResponse();\r
130 \r
131     errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
132 \r
133     OperationResponse operationResponse = new OperationResponse();\r
134     operationResponse.setStatus(VesAgentConstants.RPC_FAILED);// device reachable...change value 1\r
135                                                               // to some constant or enum\r
136     operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
137 \r
138     errorResponse.setOperationResponse(operationResponse);\r
139     errorResponse.setFaultKey(faultCode);\r
140     errorResponse.setFaultString(faultMessage);\r
141 \r
142     return errorResponse;\r
143   }\r
144 \r
145   public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {\r
146     DeviceRPCResponse response = new DeviceRPCResponse();\r
147 \r
148     response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
149 \r
150     OperationResponse operationResponse = new OperationResponse();\r
151     operationResponse.setStatus(VesAgentConstants.RPC_SUCCESS);\r
152     operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
153     operationResponse.setParameterDTOs(deviceRPCRequest.getOpDetails().getParmeters());\r
154 \r
155     response.setOperationResponse(operationResponse);\r
156     return response;\r
157   }\r
158 \r
159   public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {\r
160     if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {\r
161       return false;\r
162     }\r
163 \r
164     if (deviceRPCResponse.getOperationResponse()\r
165         .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {\r
166       return true;\r
167     }\r
168 \r
169     return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()\r
170         .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));\r
171   }\r
172 \r
173   public static Boolean isVesNotificationRequest(ParameterDTO param) {\r
174     if (null == param.getParamName() || param.getParamName().isEmpty()) {\r
175       return false;\r
176     }\r
177 \r
178     return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());\r
179   }\r
180 \r
181 \r
182   public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {\r
183     return deviceId + "-" + opCode;\r
184   }\r
185 \r
186 }\r