Fix sonar issues
[dcaegen2/platform.git] / mod / bpgenerator / onap / src / main / java / org / onap / blueprintgenerator / service / common / AppConfigService.java
index c6d744c..a64c297 100644 (file)
@@ -4,6 +4,9 @@
  *  *  org.onap.dcae
  *  *  ================================================================================
  *  *  Copyright (c) 2020  AT&T Intellectual Property. All rights reserved.
+ *  *  Copyright (c) 2021  Nokia. All rights reserved.
+ *  *  ================================================================================
+ *  *  Modifications Copyright (c) 2021 Nokia
  *  *  ================================================================================
  *  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  *  you may not use this file except in compliance with the License.
 
 package org.onap.blueprintgenerator.service.common;
 
-import org.onap.blueprintgenerator.constants.Constants;
 import org.onap.blueprintgenerator.model.common.Appconfig;
-import org.onap.blueprintgenerator.model.common.Dmaap;
+import org.onap.blueprintgenerator.model.common.BaseStream;
 import org.onap.blueprintgenerator.model.common.GetInput;
 import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec;
 import org.onap.blueprintgenerator.model.componentspec.common.Calls;
 import org.onap.blueprintgenerator.model.componentspec.common.Parameters;
-import org.onap.blueprintgenerator.model.componentspec.common.Publishes;
-import org.onap.blueprintgenerator.model.componentspec.common.Subscribes;
 import org.onap.blueprintgenerator.service.base.BlueprintHelperService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,12 +43,8 @@ import java.util.TreeMap;
 
 /**
  * @author : Ravi Mantena
- * @date 10/16/2020
- * Application: ONAP - Blueprint Generator
- * Common ONAP Service used by ONAP and DMAAP Blueprint to create App Config
+ * @date 10/16/2020 Application: ONAP - Blueprint Generator Common ONAP Service used to create App Config
  */
-
-
 @Service("onapAppConfigService")
 public class AppConfigService {
 
@@ -58,77 +54,47 @@ public class AppConfigService {
     @Autowired
     private BlueprintHelperService blueprintHelperService;
 
-    public Map<String,Object> createAppconfig(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override, boolean isDmaap) {
-
-        Map<String,Object> response = new HashMap<>();
+    @Autowired
+    private StreamService streamService;
+
+
+    /**
+     * Creates Inputs section under App Config with Publishes, Subscribes, Parameters sections by checking
+     * Datarouter/MessageRouter/override/Dmaap values
+     *
+     * @param inputs            Inputs
+     * @param onapComponentSpec Onap Component Specification
+     * @param isDmaap           Dmaap Argument
+     * @return
+     */
+    public Map<String, Object> createAppconfig(
+        Map<String, Map<String, Object>> inputs,
+        OnapComponentSpec onapComponentSpec,
+        boolean isDmaap) {
+
+        Map<String, Object> response = new HashMap<>();
         Appconfig appconfig = new Appconfig();
 
         Calls[] call = new Calls[0];
         appconfig.setService_calls(call);
 
-        Map<String, Dmaap> streamPublishes = new TreeMap<>();
-        if(onapComponentSpec.getStreams() != null) {
-            if (onapComponentSpec.getStreams().getPublishes() != null) {
-                for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) {
-                    if (blueprintHelperService.isDataRouterType(publishes.getType())) {
-                        String config = publishes.getConfig_key();
-                        String name = config + Constants._FEED;
-                        Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapDataRouter(inputs, config, name, isDmaap);
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs");
-                        Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap");
-                        dmaap.setType(publishes.getType());
-                        streamPublishes.put(config, dmaap);
-                    } else if (blueprintHelperService.isMessageRouterType(publishes.getType())) {
-                        String config = publishes.getConfig_key();
-                        String name = config + Constants._TOPIC;
-                        Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapMessageRouter(inputs, config, 'p', name, name, isDmaap);
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs");
-                        Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap");
-                        dmaap.setType(publishes.getType());
-                        streamPublishes.put(config, dmaap);
-                    }
-                }
-            }
-        }
-
-        Map<String, Dmaap> streamSubscribes = new TreeMap<>();
-
-        if(onapComponentSpec.getStreams() != null) {
-            if (onapComponentSpec.getStreams().getSubscribes() != null) {
-                for (Subscribes subscribes : onapComponentSpec.getStreams().getSubscribes()) {
-                    if (blueprintHelperService.isDataRouterType(subscribes.getType())) {
-                        String config = subscribes.getConfig_key();
-                        String name = config + Constants._FEED;
-                        Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapDataRouter(inputs, config, name, isDmaap);
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs");
-                        Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap");
-                        dmaap.setType(subscribes.getType());
-                        streamSubscribes.put(config, dmaap);
-                    } else if (blueprintHelperService.isMessageRouterType(subscribes.getType())) {
-                        String config = subscribes.getConfig_key();
-                        String name = config + Constants._TOPIC;
-                        Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapMessageRouter(inputs, config, 's', name, name, isDmaap);
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs");
-                        Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap");
-                        dmaap.setType(subscribes.getType());
-                        streamSubscribes.put(config, dmaap);
-                    }
-                }
-            }
-        }
+        Map<String, BaseStream> streamPublishes = streamService.createStreamPublishes(
+            onapComponentSpec, blueprintHelperService, dmaapService, inputs, isDmaap);
+        Map<String, BaseStream> streamSubscribes = streamService.createStreamSubscribes(
+            onapComponentSpec, blueprintHelperService, dmaapService, inputs, isDmaap);
 
         appconfig.setStreams_publishes(streamPublishes);
         appconfig.setStreams_subscribes(streamSubscribes);
 
         Map<String, Object> parameters = new TreeMap<>();
-        for(Parameters p: onapComponentSpec.getParameters()) {
+        for (Parameters p : onapComponentSpec.getParameters()) {
             String pName = p.getName();
-            if(p.isSourced_at_deployment()) {
+            if (p.isSourced_at_deployment()) {
                 GetInput paramInput = new GetInput();
                 paramInput.setBpInputName(pName);
                 parameters.put(pName, paramInput);
-                if(!"".equals(p.getValue())) {
-                    LinkedHashMap<String, Object> pInputs =  blueprintHelperService.createStringInput( p.getValue());
+                if (!"".equals(p.getValue())) {
+                    Map<String, Object> pInputs = createInputFromParameter(p);
                     inputs.put(pName, pInputs);
                 } else {
                     LinkedHashMap<String, Object> pInputs = new LinkedHashMap<>();
@@ -136,31 +102,29 @@ public class AppConfigService {
                     inputs.put(pName, pInputs);
                 }
             } else {
-                if("string".equals(p.getType())) {
-                    String val  =(String) p.getValue();
+                if ("string".equals(p.getType())) {
+                    String val (String) p.getValue();
                     val = '"' + val + '"';
                     parameters.put(pName, val);
-                }
-                else {
+                } else {
                     parameters.put(pName, p.getValue());
                     // Updated code to resolve the issue of missing \ for collector.schema.file
-                    //parameters.put(pName, pName.equals("collector.schema.file") ? ((String)p.getValue()).replace("\"", "\\\"") : p.getValue());
+                    // parameters.put(pName, pName.equals("collector.schema.file") ?
+                    // ((String)p.getValue()).replace("\"", "\\\"") : p.getValue());
                 }
             }
         }
-        if(override != null) {
-            GetInput ov = new GetInput();
-            ov.setBpInputName(Constants.SERVICE_COMPONENT_NAME_OVERRIDE);
-            parameters.put(Constants.SERVICE_COMPONENT_NAME_OVERRIDE, ov);
-            LinkedHashMap<String, Object> over =  blueprintHelperService.createStringInput( override);
-            inputs.put(Constants.SERVICE_COMPONENT_NAME_OVERRIDE, over);
-        }
+
         appconfig.setParams(parameters);
 
         response.put("appconfig", appconfig);
         response.put("inputs", inputs);
         return response;
-
     }
 
+    private Map<String, Object> createInputFromParameter(Parameters parameter) {
+        String inputType = parameter.getType() == null ? "string" : parameter.getType();
+
+        return blueprintHelperService.createInputByType(inputType, parameter.getValue());
+    }
 }