Replaced all tabs with spaces in java and pom.xml
[so.git] / mso-api-handlers / mso-api-handler-infra / src / main / java / org / onap / so / apihandlerinfra / validation / RequestParametersValidation.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.so.apihandlerinfra.validation;
23
24 import org.onap.so.apihandlerinfra.Action;
25 import org.onap.so.apihandlerinfra.Actions;
26 import org.onap.so.exceptions.ValidationException;
27 import org.onap.so.serviceinstancebeans.ModelType;
28 import org.onap.so.serviceinstancebeans.RequestParameters;
29
30 public class RequestParametersValidation implements ValidationRule {
31     private static boolean empty(String s) {
32         return (s == null || s.trim().isEmpty());
33     }
34
35     @Override
36     public ValidationInformation validate(ValidationInformation info) throws ValidationException {
37         int reqVersion = info.getReqVersion();
38         String requestScope = info.getRequestScope();
39         Actions action = info.getAction();
40         RequestParameters requestParameters = info.getReqParameters();
41
42         if (requestScope.equalsIgnoreCase(ModelType.service.name())
43                 && (action == Action.createInstance || action == Action.assignInstance)) {
44             if (requestParameters == null) {
45                 throw new ValidationException("requestParameters");
46             }
47             if (empty(requestParameters.getSubscriptionServiceType())) {
48                 throw new ValidationException("subscriptionServiceType");
49             }
50         }
51         if (reqVersion >= 4) {
52             if (Action.addRelationships.equals(action) || Action.removeRelationships.equals(action)) {
53                 if (requestParameters == null || requestParameters.getALaCarte() == null) {
54                     throw new ValidationException("aLaCarte in requestParameters");
55                 }
56             }
57         }
58         if (requestParameters == null && !requestScope.equalsIgnoreCase(ModelType.service.name())) {
59             info.setALaCarteFlag(true);
60         }
61         if (requestParameters != null) {
62             if (requestScope.equalsIgnoreCase(ModelType.vnf.name())) {
63                 if (action == Action.updateInstance) {
64                     if (requestParameters.isUsePreload() == null) {
65                         requestParameters.setUsePreload(true);
66                     }
67                 }
68                 if (action == Action.replaceInstance) {
69                     if (requestParameters.getRebuildVolumeGroups() == null) {
70                         requestParameters.setRebuildVolumeGroups(false);
71                     }
72                 }
73             }
74             if (requestScope.equalsIgnoreCase(ModelType.vfModule.name())) {
75                 if (action == Action.createInstance || action == Action.updateInstance) {
76                     if (requestParameters.isUsePreload() == null) {
77                         if (reqVersion >= 4) {
78                             if (requestParameters.getALaCarte() == null || requestParameters.getALaCarte() == true) {
79                                 requestParameters.setUsePreload(true);
80                             } else {
81                                 requestParameters.setUsePreload(false);
82                             }
83                         } else {
84                             requestParameters.setUsePreload(true);
85                         }
86                     }
87                 }
88             }
89             if (requestScope.equalsIgnoreCase(ModelType.service.name())) {
90                 if (action == Action.createInstance) {
91                     if (requestParameters.isUsePreload() == null) {
92                         if (reqVersion >= 4) {
93                             if (requestParameters.getALaCarte() == null || requestParameters.getALaCarte() == false) {
94                                 requestParameters.setUsePreload(false);
95                             } else {
96                                 requestParameters.setUsePreload(true);
97                             }
98                         } else {
99                             requestParameters.setUsePreload(true);
100                         }
101                     }
102                 }
103             }
104             if (reqVersion >= 4) {
105                 if (requestParameters.getALaCarte() != null) {
106                     info.setALaCarteFlag(requestParameters.getALaCarte());
107                 } else if (requestScope.equalsIgnoreCase(ModelType.service.name())) {
108                     if (action == Action.createInstance || action == Action.deleteInstance
109                             || action == Action.activateInstance || action == Action.deactivateInstance) {
110                         if (requestParameters.getALaCarte() == null) {
111                             requestParameters.setaLaCarte(false);
112                             info.setALaCarteFlag(requestParameters.getALaCarte());
113                         }
114                     }
115                 } else {
116                     info.setALaCarteFlag(true);
117                 }
118             } else {
119                 info.setALaCarteFlag(true);
120             }
121         }
122         return info;
123     }
124 }