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 / ModelInfoValidation.java
index e2a1bdc..ecc79c7 100644 (file)
@@ -29,109 +29,141 @@ import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.ModelType;
 import org.onap.so.serviceinstancebeans.RequestParameters;
 import org.onap.so.utils.UUIDChecker;
-public class ModelInfoValidation implements ValidationRule{
-       private static boolean empty(String s) {
-               return (s == null || s.trim().isEmpty());
-       }
-       @Override
-       public ValidationInformation validate(ValidationInformation info) throws ValidationException{
-               ModelInfo modelInfo = info.getSir().getRequestDetails().getModelInfo();
-               RequestParameters requestParameters = info.getReqParameters();
-               String requestScope = info.getRequestScope();
-               Actions action = info.getAction();
-               int reqVersion = info.getReqVersion();
-               Boolean aLaCarteFlag = info.getALaCarteFlag();
 
-               if(!requestScope.equals(ModelType.instanceGroup.toString())){
+public class ModelInfoValidation implements ValidationRule {
+    private static boolean empty(String s) {
+        return (s == null || s.trim().isEmpty());
+    }
 
-                       if(!empty(modelInfo.getModelNameVersionId())){
-                               modelInfo.setModelVersionId(modelInfo.getModelNameVersionId());
-                       }
-                       // modelCustomizationId is required when usePreLoad is false for v4 and higher for VF Module Create
-                       if(requestParameters != null && reqVersion >= 4 && requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.createInstance && !requestParameters.isUsePreload()) {
-                               if(!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId())) {
-                                       throw new ValidationException("modelCustomizationId");
-                               }
-                       }
+    @Override
+    public ValidationInformation validate(ValidationInformation info) throws ValidationException {
+        ModelInfo modelInfo = info.getSir().getRequestDetails().getModelInfo();
+        RequestParameters requestParameters = info.getReqParameters();
+        String requestScope = info.getRequestScope();
+        Actions action = info.getAction();
+        int reqVersion = info.getReqVersion();
+        Boolean aLaCarteFlag = info.getALaCarteFlag();
 
-                       // modelCustomizationId is required for v5 and higher for VF Module Replace
-                       if(requestParameters != null && reqVersion > 4 && requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.replaceInstance) {
-                               if(!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId())) {
-                                       throw new ValidationException("modelCustomizationId");
-                               }
-                       }
+        if (!requestScope.equals(ModelType.instanceGroup.toString())) {
 
-                       // modelCustomizationId or modelCustomizationName are required for VNF Replace
-                       if(requestParameters != null && reqVersion > 4 && requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.replaceInstance || action == Action.recreateInstance) {
-                               if(!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId()) && modelInfo.getModelCustomizationName() == null) {
-                                       throw new ValidationException("modelCustomizationId or modelCustomizationName");
-                               }
-                       }
+            if (!empty(modelInfo.getModelNameVersionId())) {
+                modelInfo.setModelVersionId(modelInfo.getModelNameVersionId());
+            }
+            // modelCustomizationId is required when usePreLoad is false for v4 and higher for VF Module Create
+            if (requestParameters != null && reqVersion >= 4 && requestScope.equalsIgnoreCase(ModelType.vfModule.name())
+                    && action == Action.createInstance && !requestParameters.isUsePreload()) {
+                if (!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId())) {
+                    throw new ValidationException("modelCustomizationId");
+                }
+            }
 
-                       //is required for serviceInstance delete macro when aLaCarte=false (v3)
-                       //create and updates except for network (except v4)
-                       if (empty (modelInfo.getModelInvariantId ()) && ((reqVersion >2 && (aLaCarteFlag != null && !aLaCarteFlag) && requestScope.equalsIgnoreCase(ModelType.service.name()) && action == Action.deleteInstance) ||
-                                       !(reqVersion < 4 && requestScope.equalsIgnoreCase (ModelType.network.name ())) && 
-                                       (action == Action.createInstance || action == Action.updateInstance || action == Action.enablePort || action == Action.disablePort || action == Action.addRelationships || action == Action.removeRelationships ||
-                                       (requestScope.equalsIgnoreCase(ModelType.configuration.name()) && (action == Action.activateInstance || action == Action.deactivateInstance))))) {
-                               throw new ValidationException ("modelInvariantId");
-                       }
-                       if(empty(modelInfo.getModelInvariantId()) && (requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.scaleOut)){
-                               throw new ValidationException("modelInvariantId");
-                       }
-                       if(empty(modelInfo.getModelInvariantId()) && (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.recreateInstance)){
-                               throw new ValidationException("modelInvariantId", true);
-                       }
-                       if (!empty (modelInfo.getModelInvariantId ()) && !UUIDChecker.isValidUUID (modelInfo.getModelInvariantId ())) {
-                               throw new ValidationException ("modelInvariantId format");
-                       }
+            // modelCustomizationId is required for v5 and higher for VF Module Replace
+            if (requestParameters != null && reqVersion > 4 && requestScope.equalsIgnoreCase(ModelType.vfModule.name())
+                    && action == Action.replaceInstance) {
+                if (!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId())) {
+                    throw new ValidationException("modelCustomizationId");
+                }
+            }
 
-                       if(reqVersion >= 4 && !(requestScope.equalsIgnoreCase(ModelType.configuration.name())) && empty (modelInfo.getModelName ()) && (action == Action.createInstance || action == Action.updateInstance || 
-                                       action == Action.addRelationships || action == Action.removeRelationships || action == Action.recreateInstance || ((action == Action.deleteInstance || action == Action.scaleOut) && (requestScope.equalsIgnoreCase (ModelType.vfModule.name ()))))){
-                               throw new ValidationException ("modelName", true);
-                       }
+            // modelCustomizationId or modelCustomizationName are required for VNF Replace
+            if (requestParameters != null && reqVersion > 4 && requestScope.equalsIgnoreCase(ModelType.vnf.name())
+                    && action == Action.replaceInstance || action == Action.recreateInstance) {
+                if (!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId())
+                        && modelInfo.getModelCustomizationName() == null) {
+                    throw new ValidationException("modelCustomizationId or modelCustomizationName");
+                }
+            }
 
-                       if (empty (modelInfo.getModelVersion ()) && !(requestScope.equalsIgnoreCase(ModelType.configuration.name())) && 
-                                       (!(reqVersion < 4 && requestScope.equalsIgnoreCase (ModelType.network.name ())) 
-                                                       && (action == Action.createInstance || action == Action.updateInstance || action == Action.addRelationships || action == Action.removeRelationships || action == Action.scaleOut))) {
-                               throw new ValidationException ("modelVersion");
-                       }
+            // is required for serviceInstance delete macro when aLaCarte=false (v3)
+            // create and updates except for network (except v4)
+            if (empty(modelInfo.getModelInvariantId()) && ((reqVersion > 2 && (aLaCarteFlag != null && !aLaCarteFlag)
+                    && requestScope.equalsIgnoreCase(ModelType.service.name()) && action == Action.deleteInstance)
+                    || !(reqVersion < 4 && requestScope.equalsIgnoreCase(ModelType.network.name()))
+                            && (action == Action.createInstance || action == Action.updateInstance
+                                    || action == Action.enablePort || action == Action.disablePort
+                                    || action == Action.addRelationships || action == Action.removeRelationships
+                                    || (requestScope.equalsIgnoreCase(ModelType.configuration.name())
+                                            && (action == Action.activateInstance
+                                                    || action == Action.deactivateInstance))))) {
+                throw new ValidationException("modelInvariantId");
+            }
+            if (empty(modelInfo.getModelInvariantId())
+                    && (requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.scaleOut)) {
+                throw new ValidationException("modelInvariantId");
+            }
+            if (empty(modelInfo.getModelInvariantId())
+                    && (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.recreateInstance)) {
+                throw new ValidationException("modelInvariantId", true);
+            }
+            if (!empty(modelInfo.getModelInvariantId()) && !UUIDChecker.isValidUUID(modelInfo.getModelInvariantId())) {
+                throw new ValidationException("modelInvariantId format");
+            }
 
-                       if(empty(modelInfo.getModelVersion()) && (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.recreateInstance)){
-                               throw new ValidationException("modelVersion", true);
-                       }
+            if (reqVersion >= 4 && !(requestScope.equalsIgnoreCase(ModelType.configuration.name()))
+                    && empty(modelInfo.getModelName())
+                    && (action == Action.createInstance || action == Action.updateInstance
+                            || action == Action.addRelationships || action == Action.removeRelationships
+                            || action == Action.recreateInstance
+                            || ((action == Action.deleteInstance || action == Action.scaleOut)
+                                    && (requestScope.equalsIgnoreCase(ModelType.vfModule.name()))))) {
+                throw new ValidationException("modelName", true);
+            }
 
-                       // is required for serviceInstance delete macro when aLaCarte=false in v4
-                       if (reqVersion >= 4 && empty (modelInfo.getModelVersionId()) && (((aLaCarteFlag != null && !aLaCarteFlag) && requestScope.equalsIgnoreCase(ModelType.service.name()) && action == Action.deleteInstance) ||
-                                       (action == Action.createInstance || action == Action.updateInstance || action == Action.enablePort || action == Action.disablePort || action == Action.addRelationships || action == Action.removeRelationships ||
-                                       (requestScope.equalsIgnoreCase(ModelType.configuration.name()) && (action == Action.activateInstance || action == Action.deactivateInstance))))) {
-                               throw new ValidationException ("modelVersionId");
-                       }
-                       if(empty(modelInfo.getModelVersionId()) && (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.recreateInstance)){
-                               throw new ValidationException("modelVersionId", true);
-                       }
-                       if(empty(modelInfo.getModelVersionId()) && (requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.scaleOut)){
-                               throw new ValidationException("modelVersionId");
-                       }
+            if (empty(modelInfo.getModelVersion()) && !(requestScope.equalsIgnoreCase(ModelType.configuration.name()))
+                    && (!(reqVersion < 4 && requestScope.equalsIgnoreCase(ModelType.network.name()))
+                            && (action == Action.createInstance || action == Action.updateInstance
+                                    || action == Action.addRelationships || action == Action.removeRelationships
+                                    || action == Action.scaleOut))) {
+                throw new ValidationException("modelVersion");
+            }
 
-                       if(requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action != Action.deleteInstance && empty (modelInfo.getModelCustomizationName ())) {
-                               if (!UUIDChecker.isValidUUID (modelInfo.getModelCustomizationId())) {
-                                       throw new ValidationException ("modelCustomizationId or modelCustomizationName");
-                               }
-                       }
+            if (empty(modelInfo.getModelVersion())
+                    && (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.recreateInstance)) {
+                throw new ValidationException("modelVersion", true);
+            }
 
-                       if(reqVersion >= 4 && (!UUIDChecker.isValidUUID (modelInfo.getModelCustomizationId())) && (requestScope.equalsIgnoreCase (ModelType.network.name ()) || requestScope.equalsIgnoreCase(ModelType.configuration.name()))
-                                       && (action == Action.updateInstance || action == Action.createInstance)){
-                               throw new ValidationException ("modelCustomizationId");
-                       }
-                       if(empty(modelInfo.getModelCustomizationId()) && requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.scaleOut && !(requestParameters.getTestApi() == TestApi.VNF_API.name() && requestParameters.isUsePreload() == true)){
-                               throw new ValidationException ("modelCustomizationId");
-                       }
-               }else{
-                       if(empty(modelInfo.getModelVersionId()) && action == Action.createInstance){
-                               throw new ValidationException("modelVersionId", true);
-                       }
-               }
-               return info;
-       }
+            // is required for serviceInstance delete macro when aLaCarte=false in v4
+            if (reqVersion >= 4 && empty(modelInfo.getModelVersionId()) && (((aLaCarteFlag != null && !aLaCarteFlag)
+                    && requestScope.equalsIgnoreCase(ModelType.service.name()) && action == Action.deleteInstance)
+                    || (action == Action.createInstance || action == Action.updateInstance
+                            || action == Action.enablePort || action == Action.disablePort
+                            || action == Action.addRelationships || action == Action.removeRelationships
+                            || (requestScope.equalsIgnoreCase(ModelType.configuration.name())
+                                    && (action == Action.activateInstance || action == Action.deactivateInstance))))) {
+                throw new ValidationException("modelVersionId");
+            }
+            if (empty(modelInfo.getModelVersionId())
+                    && (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action == Action.recreateInstance)) {
+                throw new ValidationException("modelVersionId", true);
+            }
+            if (empty(modelInfo.getModelVersionId())
+                    && (requestScope.equalsIgnoreCase(ModelType.vfModule.name()) && action == Action.scaleOut)) {
+                throw new ValidationException("modelVersionId");
+            }
+
+            if (requestScope.equalsIgnoreCase(ModelType.vnf.name()) && action != Action.deleteInstance
+                    && empty(modelInfo.getModelCustomizationName())) {
+                if (!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId())) {
+                    throw new ValidationException("modelCustomizationId or modelCustomizationName");
+                }
+            }
+
+            if (reqVersion >= 4 && (!UUIDChecker.isValidUUID(modelInfo.getModelCustomizationId()))
+                    && (requestScope.equalsIgnoreCase(ModelType.network.name())
+                            || requestScope.equalsIgnoreCase(ModelType.configuration.name()))
+                    && (action == Action.updateInstance || action == Action.createInstance)) {
+                throw new ValidationException("modelCustomizationId");
+            }
+            if (empty(modelInfo.getModelCustomizationId()) && requestScope.equalsIgnoreCase(ModelType.vfModule.name())
+                    && action == Action.scaleOut && !(requestParameters.getTestApi() == TestApi.VNF_API.name()
+                            && requestParameters.isUsePreload() == true)) {
+                throw new ValidationException("modelCustomizationId");
+            }
+        } else {
+            if (empty(modelInfo.getModelVersionId()) && action == Action.createInstance) {
+                throw new ValidationException("modelVersionId", true);
+            }
+        }
+        return info;
+    }
 }