X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fcontroller%2FOptimizationDictionaryController.java;h=52394bab0a62de319133f91f31241d7a50c77145;hp=3d1dba905d8e97b5dfc6770dcb8da1b7f5e58535;hb=1e61676b77dd09659027b8984f050df7e8538526;hpb=f18fbfc026de9cf02126f57844c37abfee607394 diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java index 3d1dba905..52394bab0 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java @@ -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. @@ -17,8 +17,14 @@ * 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 classMap; - private static String dictionaryFields ="dictionaryFields"; + private LinkedHashMap 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 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 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 duplicateData = commonClassDao.checkDuplicateEntry(checkName, "modelName:version", OptimizationModels.class); + List 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 classMap) { - //Loop through the classmap and pull out the required info for the new file. + private void addValuesToNewModel(HashMap 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 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 returnList = new ArrayList<>(); ArrayList 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()); } }