Consolidate PolicyRestAdapter setup
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / controller / OptimizationDictionaryController.java
index 3d1dba9..52394ba 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP-PAP-REST
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.policy.pap.xacml.rest.controller;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.Gson;
+
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -46,18 +52,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.Gson;
-
 @Controller
 public class OptimizationDictionaryController {
     private static CommonClassDao commonClassDao;
 
     private static String operation = "operation";
-    private LinkedHashMap<String,MSAttributeObject > classMap;
-    private static String dictionaryFields ="dictionaryFields";
+    private LinkedHashMap<String, MSAttributeObject> classMap;
+    private static String dictionaryFields = "dictionaryFields";
     private static String duplicateResponseString = "Duplicate";
     private static String optimizationModelsDictionaryDatas = "optimizationModelsDictionaryDatas";
     private static String modelName = "modelName";
@@ -67,19 +68,19 @@ public class OptimizationDictionaryController {
     private static String classMapData = "classMap";
     private static final String UPDATE = "update";
 
-
-    public OptimizationDictionaryController(){
+    public OptimizationDictionaryController() {
         super();
-    }  
+    }
 
-    private DictionaryUtils getDictionaryUtilsInstance(){
+    private DictionaryUtils getDictionaryUtilsInstance() {
         return DictionaryUtils.getDictionaryUtils();
     }
-    
+
     @Autowired
-    public OptimizationDictionaryController(CommonClassDao commonClassDao){
+    public OptimizationDictionaryController(CommonClassDao commonClassDao) {
         setCommonClassDao(commonClassDao);
     }
+
     public static void setCommonClassDao(CommonClassDao commonClassDao) {
         OptimizationDictionaryController.commonClassDao = commonClassDao;
     }
@@ -88,20 +89,27 @@ public class OptimizationDictionaryController {
 
     private OptimizationModels newModel;
 
-    @RequestMapping(value={"/get_OptimizationModelsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-    public void getOptimizationModelsDictionaryEntityData(HttpServletResponse response){
+    @RequestMapping(
+            value = {"/get_OptimizationModelsData"},
+            method = {RequestMethod.GET},
+            produces = MediaType.APPLICATION_JSON_VALUE)
+    public void getOptimizationModelsDictionaryEntityData(HttpServletResponse response) {
         DictionaryUtils dUtils = getDictionaryUtilsInstance();
         dUtils.getData(response, optimizationModelsDictionaryDatas, OptimizationModels.class);
     }
 
-    @RequestMapping(value={"/get_OptimizationModelsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-    public void getOptimizationModelsDictionaryByNameEntityData(HttpServletResponse response){
+    @RequestMapping(
+            value = {"/get_OptimizationModelsDataByName"},
+            method = {RequestMethod.GET},
+            produces = MediaType.APPLICATION_JSON_VALUE)
+    public void getOptimizationModelsDictionaryByNameEntityData(HttpServletResponse response) {
         DictionaryUtils dUtils = getDictionaryUtilsInstance();
         dUtils.getDataByEntity(response, optimizationModelsDictionaryDatas, modelName, OptimizationModels.class);
     }
 
-    @RequestMapping(value={"/oof_dictionary/save_model"}, method={RequestMethod.POST})
-    public ModelAndView saveOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+    @RequestMapping(value = {"/oof_dictionary/save_model"}, method = {RequestMethod.POST})
+    public ModelAndView saveOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response)
+            throws IOException {
         DictionaryUtils dUtils = getDictionaryUtilsInstance();
         try {
             this.newModel = new OptimizationModels();
@@ -113,24 +121,27 @@ public class OptimizationDictionaryController {
             String userId = null;
 
             String dataOrderInfo = null;
-            if(root.has("dataOrderInfo")){
+            if (root.has("dataOrderInfo")) {
                 dataOrderInfo = root.get("dataOrderInfo").toString();
             }
 
-            if(root.has("modelType")){
+            if (root.has("modelType")) {
                 JsonNode dataType = root.get("modelType");
-                String modelType= dataType.toString();
-                if(modelType.contains("yml")){
-                    if (root.has(optimizationModelsDictionaryData)){
-                        if (root.get(optimizationModelsDictionaryData).has(description)){
-                            optimizationModels.setDescription(root.get(optimizationModelsDictionaryData).get(description).asText().replace("\"", ""));
+                String modelType = dataType.toString();
+                if (modelType.contains("yml")) {
+                    if (root.has(optimizationModelsDictionaryData)) {
+                        if (root.get(optimizationModelsDictionaryData).has(description)) {
+                            optimizationModels.setDescription(root.get(optimizationModelsDictionaryData)
+                                    .get(description).asText().replace("\"", ""));
                         }
-                        if (root.get(optimizationModelsDictionaryData).has(modelName)){
-                            optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName).asText().replace("\"", ""));
+                        if (root.get(optimizationModelsDictionaryData).has(modelName)) {
+                            optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName)
+                                    .asText().replace("\"", ""));
                             this.newModel.setModelName(optimizationModels.getModelName());
                         }
-                        if (root.get(optimizationModelsDictionaryData).has(version)){
-                            optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
+                        if (root.get(optimizationModelsDictionaryData).has(version)) {
+                            optimizationModels.setVersion(
+                                    root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
                             this.newModel.setVersion(optimizationModels.getVersion());
                         }
                     }
@@ -138,13 +149,13 @@ public class OptimizationDictionaryController {
                     classMap = new LinkedHashMap<>();
                     JsonNode data = root.get(classMapData);
                     ObjectMapper mapper1 = new ObjectMapper();
-                    String data1 = data.toString().substring(1, data.toString().length()-1);
+                    String data1 = data.toString().substring(1, data.toString().length() - 1);
                     data1 = data1.replace("\\", "");
-                    data1=data1.replace("\"{","{");
-                    data1=data1.replace("}\"","}");
+                    data1 = data1.replace("\"{", "{");
+                    data1 = data1.replace("}\"", "}");
                     JSONObject jsonObject = new JSONObject(data1);
                     Set<String> keys = jsonObject.keySet();
-                    for(String key : keys){
+                    for (String key : keys) {
                         String value = jsonObject.get(key).toString();
                         MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
                         classMap.put(key, msAttributeObject);
@@ -155,44 +166,51 @@ public class OptimizationDictionaryController {
                     this.newModel.setDependency("[]");
                     String value = new Gson().toJson(mainClass.getSubClass());
                     this.newModel.setSubattributes(value);
-                    String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
-                    int equalsIndexForAttributes= attributes.indexOf('=');
-                    String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1, attributes.length()-1);
+                    String attributes = mainClass.getAttribute().toString().replace("{", "").replace("}", "");
+                    int equalsIndexForAttributes = attributes.indexOf('=');
+                    String atttributesAfterFirstEquals =
+                            attributes.substring(equalsIndexForAttributes + 1, attributes.length() - 1);
                     this.newModel.setAttributes(atttributesAfterFirstEquals);
-                    String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
-                    int equalsIndex= refAttributes.indexOf('=');
-                    String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1, refAttributes.length()-1);
+                    String refAttributes = mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
+                    int equalsIndex = refAttributes.indexOf('=');
+                    String refAttributesAfterFirstEquals =
+                            refAttributes.substring(equalsIndex + 1, refAttributes.length() - 1);
                     this.newModel.setRefattributes(refAttributesAfterFirstEquals);
                     this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
-                    this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+                    this.newModel
+                            .setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
 
-                }else{
+                } else {
                     if (fromAPI) {
-                        optimizationModels = mapper.readValue(root.get(dictionaryFields).toString(), OptimizationModels.class);
+                        optimizationModels =
+                                mapper.readValue(root.get(dictionaryFields).toString(), OptimizationModels.class);
                         userId = "API";
                     } else {
-                        if (root.has(optimizationModelsDictionaryData)){
-                            if (root.get(optimizationModelsDictionaryData).has(description)){
-                                optimizationModels.setDescription(root.get(optimizationModelsDictionaryData).get(description).asText().replace("\"", ""));
+                        if (root.has(optimizationModelsDictionaryData)) {
+                            if (root.get(optimizationModelsDictionaryData).has(description)) {
+                                optimizationModels.setDescription(root.get(optimizationModelsDictionaryData)
+                                        .get(description).asText().replace("\"", ""));
                             }
-                            if (root.get(optimizationModelsDictionaryData).has(modelName)){
-                                optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName).asText().replace("\"", ""));
+                            if (root.get(optimizationModelsDictionaryData).has(modelName)) {
+                                optimizationModels.setModelName(root.get(optimizationModelsDictionaryData)
+                                        .get(modelName).asText().replace("\"", ""));
                                 this.newModel.setModelName(optimizationModels.getModelName());
                             }
-                            if (root.get(optimizationModelsDictionaryData).has(version)){
-                                optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
+                            if (root.get(optimizationModelsDictionaryData).has(version)) {
+                                optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version)
+                                        .asText().replace("\"", ""));
                                 this.newModel.setVersion(optimizationModels.getVersion());
                             }
                         }
-                        if(root.has(classMapData)){
+                        if (root.has(classMapData)) {
                             classMap = new LinkedHashMap<>();
                             JsonNode data = root.get(classMapData);
                             ObjectMapper mapper1 = new ObjectMapper();
-                            String data1 = data.toString().substring(1, data.toString().length()-1);
+                            String data1 = data.toString().substring(1, data.toString().length() - 1);
                             data1 = data1.replace("\\", "");
                             JSONObject jsonObject = new JSONObject(data1);
                             Set<String> keys = jsonObject.keySet();
-                            for(String key : keys){
+                            for (String key : keys) {
                                 String value = jsonObject.get(key).toString();
                                 MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
                                 classMap.put(key, msAttributeObject);
@@ -212,80 +230,83 @@ public class OptimizationDictionaryController {
             optimizationModels.setEnumValues(this.newModel.getEnumValues());
             optimizationModels.setAnnotation(this.newModel.getAnnotation());
 
-            if(dataOrderInfo != null){
+            if (dataOrderInfo != null) {
                 optimizationModels.setDataOrderInfo(dataOrderInfo);
             }
 
             String checkName = optimizationModels.getModelName() + ":" + optimizationModels.getVersion();
-            List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(checkName, "modelName:version", OptimizationModels.class);
+            List<Object> duplicateData =
+                    commonClassDao.checkDuplicateEntry(checkName, "modelName:version", OptimizationModels.class);
             boolean duplicateflag = false;
-            if(duplicateData!=null && !duplicateData.isEmpty()){
+            if (duplicateData != null && !duplicateData.isEmpty()) {
                 OptimizationModels data = (OptimizationModels) duplicateData.get(0);
-                if(request.getParameter(operation) != null && UPDATE.equals(request.getParameter(operation))){
+                if (request.getParameter(operation) != null && UPDATE.equals(request.getParameter(operation))) {
                     optimizationModels.setId(data.getId());
-                }else if((request.getParameter(operation) != null && !UPDATE.equals(request.getParameter(operation))) ||
-                        (request.getParameter(operation) == null && (data.getId() != optimizationModels.getId()))){
+                } else if ((request.getParameter(operation) != null && !UPDATE.equals(request.getParameter(operation)))
+                        || (request.getParameter(operation) == null && (data.getId() != optimizationModels.getId()))) {
                     duplicateflag = true;
                 }
             }
             UserInfo userInfo = dUtils.getUserInfo(userId);
 
             String responseString = null;
-            if(!duplicateflag){
+            if (!duplicateflag) {
                 optimizationModels.setUserCreatedBy(userInfo);
-                if(optimizationModels.getId() == 0){
+                if (optimizationModels.getId() == 0) {
                     commonClassDao.save(optimizationModels);
-                }else{
+                } else {
                     commonClassDao.update(optimizationModels);
                 }
                 responseString = mapper.writeValueAsString(commonClassDao.getData(OptimizationModels.class));
-            }else{
+            } else {
                 responseString = duplicateResponseString;
             }
-            if(fromAPI){
+            if (fromAPI) {
                 return dUtils.getResultForApi(responseString);
-            }else{
+            } else {
                 dUtils.setResponseData(response, optimizationModelsDictionaryDatas, responseString);
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             dUtils.setErrorResponseData(response, e);
         }
         return null;
     }
 
-    @RequestMapping(value={"/oof_dictionary/remove_model"}, method={RequestMethod.POST})
-    public void removeOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+    @RequestMapping(value = {"/oof_dictionary/remove_model"}, method = {RequestMethod.POST})
+    public void removeOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response)
+            throws IOException {
         DictionaryUtils dUtils = getDictionaryUtilsInstance();
         dUtils.removeData(request, response, optimizationModelsDictionaryDatas, OptimizationModels.class);
     }
 
-    private void addValuesToNewModel(HashMap<String,MSAttributeObject > classMap) {
-        //Loop  through the classmap and pull out the required info for the new file.
+    private void addValuesToNewModel(HashMap<String, MSAttributeObject> classMap) {
+        // Loop through the classmap and pull out the required info for the new file.
         String subAttribute = null;
 
         MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
 
-        if (mainClass !=null){
-            String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
+        if (mainClass != null) {
+            String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[] {"[", "]", " "},
+                    new String[] {"", "", ""});
             ArrayList<String> dependency = new ArrayList<>(Arrays.asList(dependTemp.split(",")));
             dependency = getFullDependencyList(dependency);
-            for (String element : dependency){
+            for (String element : dependency) {
                 MSAttributeObject temp = classMap.get(element);
-                if (temp!=null){
+                if (temp != null) {
                     mainClass.addAllRefAttribute(temp.getRefAttribute());
                     mainClass.addAllAttribute(temp.getAttribute());
                 }
             }
             subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName());
-        }else{
+        } else {
             subAttribute = "{}";
             this.newModel.setDependency("");
         }
 
-        if (mainClass != null && mainClass.getDependency()==null){
+        if (mainClass != null && mainClass.getDependency() == null) {
             mainClass.setDependency("");
         }
-        if(mainClass != null){
+        if (mainClass != null) {
             this.newModel.setDependency(mainClass.getDependency());
             this.newModel.setSubattributes(subAttribute);
             this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", ""));
@@ -299,13 +320,14 @@ public class OptimizationDictionaryController {
         ArrayList<String> returnList = new ArrayList<>();
         ArrayList<String> workingList;
         returnList.addAll(dependency);
-        for (String element : dependency ){
-            if (classMap.containsKey(element)){
+        for (String element : dependency{
+            if (classMap.containsKey(element)) {
                 MSAttributeObject value = classMap.get(element);
-                String rawValue = StringUtils.replaceEach(value.getDependency(), new String[]{"[", "]"}, new String[]{"", ""});
+                String rawValue =
+                        StringUtils.replaceEach(value.getDependency(), new String[] {"[", "]"}, new String[] {"", ""});
                 workingList = new ArrayList<>(Arrays.asList(rawValue.split(",")));
-                for(String depend : workingList){
-                    if (!returnList.contains(depend) && !depend.isEmpty()){
+                for (String depend : workingList) {
+                    if (!returnList.contains(depend) && !depend.isEmpty()) {
                         returnList.add(depend.trim());
                     }
                 }