X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontroller%2FCreateBRMSParamController.java;h=40cceead50aea707ce92411ac4d1a352dc5226cc;hb=1cb0fbfc4993c1f47f31b061d70b64f53247df95;hp=33c58837e244b7f83305f27b445b73ecd585cde4;hpb=aa9e865ccf191e814b50b8b4b51d516fc359d948;p=policy%2Fengine.git diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java index 33c58837e..40cceead5 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -85,7 +86,9 @@ public class CreateBRMSParamController extends RestrictedBaseController { CreateBRMSParamController.commonClassDao = commonClassDao; } - public CreateBRMSParamController(){} + public CreateBRMSParamController(){ + // Empty constructor + } protected PolicyRestAdapter policyAdapter = null; private HashMap dynamicLayoutMap; @@ -131,7 +134,7 @@ public class CreateBRMSParamController extends RestrictedBaseController { StringBuilder params = new StringBuilder(""); Boolean flag = false; Boolean comment = false; - String lines[] = rule.split("\n"); + String[] lines = rule.split("\n"); for(String line : lines){ if (line.isEmpty() || line.startsWith("//")) { continue; @@ -173,7 +176,7 @@ public class CreateBRMSParamController extends RestrictedBaseController { if (flag) { params.append(line); } - if (line.contains("declare PapParams")) { + if (line.contains("declare Params")) { params.append(line); flag = true; } @@ -181,11 +184,11 @@ public class CreateBRMSParamController extends RestrictedBaseController { break; } } - params = new StringBuilder(params.toString().replace("declare PapParams", "").replace("end", "").replaceAll("\\s+", "")); + params = new StringBuilder(params.toString().replace("declare Params", "").replace("end", "").replaceAll("\\s+", "")); String[] components = params.toString().split(":"); String caption = ""; for (int i = 0; i < components.length; i++) { - String type = ""; + String type; if (i == 0) { caption = components[i]; } @@ -361,6 +364,17 @@ public class CreateBRMSParamController extends RestrictedBaseController { value = value.replace(brmsTemplateVlaue, ""); policyAdapter.setRuleName(value); } + if(line.contains("<%$Values=")) { + String value = line.substring(line.indexOf("<%$"), line.indexOf("$%>")); + value = value.replaceAll("<%\\$Values=", ""); + for( String keyValue : value.split(":\\|:")) { + String[] pair = keyValue.split(":-:"); + if (pair != null && pair.length > 0) { + dynamicLayoutMap.put(pair[0], (pair.length > 1) ? pair[1] : ""); + } + } + return; + } if (line.startsWith("/*")) { comment = true; continue; @@ -400,7 +414,7 @@ public class CreateBRMSParamController extends RestrictedBaseController { if (flag) { params.append(line); } - if (line.contains("rule") && line.contains(".PapParams\"")) { + if (line.contains("rule") && line.contains(".Params\"")) { params.append(line); flag = true; } @@ -408,14 +422,14 @@ public class CreateBRMSParamController extends RestrictedBaseController { break; } } - params = new StringBuilder(params.substring(params.indexOf(".PapParams\"")+ 11)); - params = new StringBuilder(params.toString().replaceAll("\\s+", "").replace("salience1000whenthenPapParamsparams=newPapParams();","") + params = new StringBuilder(params.substring(params.indexOf(".Params\"")+ 11)); + params = new StringBuilder(params.toString().replaceAll("\\s+", "").replace("salience1000whenthenParamsparams=newParams();","") .replace("insert(params);end", "") .replace("params.set", "")); String[] components = params.toString().split("\\);"); if(components!= null && components.length > 0){ for (int i = 0; i < components.length; i++) { - String value = null; + String value; components[i] = components[i]+")"; String caption = components[i].substring(0, components[i].indexOf('(')); @@ -456,31 +470,24 @@ public class CreateBRMSParamController extends RestrictedBaseController { policyData.setEditPolicy(true); } - String body = ""; - - body = "/* Autogenerated Code Please Don't change/remove this comment section. This is for the UI purpose. \n\t " + - brmsTemplateVlaue + policyData.getRuleName() + "%$> \n */ \n"; - body = body + findRule((String) policyData.getRuleName()) + "\n"; - StringBuilder generatedRule = new StringBuilder(); - generatedRule.append("rule \""+ policyData.getDomainDir().replace("\\", ".") +".Config_BRMS_Param_" + policyData.getPolicyName()+".PapParams\" \n\tsalience 1000 \n\twhen\n\tthen\n\t\tPapParams params = new PapParams();"); + String body; + body = findRule((String) policyData.getRuleName()) + "\n"; + StringBuilder generatedMetadata = new StringBuilder(); + generatedMetadata.append("/* Autogenerated Code Please Don't change/remove this comment section. This is for the UI purpose. \n\t " + + brmsTemplateVlaue + policyData.getRuleName() + "%$> \n */ \n"); - if(policyData.getRuleData().size() > 0){ - for(Object keyValue: policyData.getRuleData().keySet()){ - String key = keyValue.toString().substring(0, 1).toUpperCase() + keyValue.toString().substring(1); - if (string.equals(keyValue)) { - generatedRule.append("\n\t\tparams.set" - + key + "(\"" - + policyData.getRuleData().get(keyValue).toString() + "\");"); - } else { - generatedRule.append("\n\t\tparams.set" - + key + "(" - + policyData.getRuleData().get(keyValue).toString() + ");"); - } - } + if(policyData.getDynamicLayoutMap().size() > 0){ + generatedMetadata.append("/* <%$Values="); + for (Entry entry : policyData.getRuleData().entrySet()) { + String uiKey = (String) entry.getKey(); + if(!"templateName".equals(uiKey)) { + generatedMetadata.append(uiKey+":-:"+entry.getValue()+":|:"); + } + } + generatedMetadata.append("$%> \n*/ \n"); } - generatedRule.append("\n\t\tinsert(params);\nend"); - policyLogger.info("New rule generated with :" + generatedRule.toString()); - body = body + generatedRule.toString(); + policyLogger.info("Metadata generated with :" + generatedMetadata.toString()); + body = generatedMetadata.toString() + body; // Expand the body. Map copyMap=new HashMap<>(); copyMap.putAll((Map) policyData.getRuleData());