aboutsummaryrefslogtreecommitdiffstats
path: root/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
diff options
context:
space:
mode:
Diffstat (limited to 'POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java')
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java464
1 files changed, 225 insertions, 239 deletions
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
index d12cbb2d4..8ecf3692d 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
@@ -122,237 +122,223 @@ public class DecisionPolicyController extends RestrictedBaseController {
if (rawPolicyCheck) {
rawXacmlPolicy(policyAdapter, entity);
- } else {
- RainyDayParams rainydayParams = new RainyDayParams();
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
-
- policyAdapter.setPolicyName(StringUtils.substringAfter(policyAdapter.getPolicyName(), "Decision_"));
- String description = "";
- String blackListEntryType = "Use Manual Entry";
- try {
- if (policy.getDescription().contains(BLENTRY)) {
- blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9,
- policy.getDescription().lastIndexOf(BLENTRY));
- }
- policyAdapter.setBlackListEntryType(blackListEntryType);
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ return;
+ }
+ RainyDayParams rainydayParams = new RainyDayParams();
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- } catch (Exception e) {
- policyLogger.info("General error", e);
- description = policy.getDescription();
+ policyAdapter.setPolicyName(StringUtils.substringAfter(policyAdapter.getPolicyName(), "Decision_"));
+ String description = "";
+ String blackListEntryType = "Use Manual Entry";
+ try {
+ if (policy.getDescription().contains(BLENTRY)) {
+ blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9,
+ policy.getDescription().lastIndexOf(BLENTRY));
}
- policyAdapter.setPolicyDescription(description);
- // Get the target data under policy for Action.
- TargetType target = policy.getTarget();
- if (target != null) {
- // under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- // Under AntOfType we have AllOfType
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList == null) {
- continue;
- }
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- // Under AllOfType we have Mathch.
- List<MatchType> matchList = allOf.getMatch();
- int index = 0;
- if (matchList != null) {
- Iterator<MatchType> iterMatch = matchList.iterator();
- while (iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Under the match we have attributevalue and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- if (value != null) {
- value = value.replaceAll("\\(\\?i\\)", "");
- }
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- }
- // Component attributes are saved under Target here we are fetching them back.
- // One row is default so we are not adding dynamic component at index 0.
- if (index >= 1) {
- Map<String, String> attribute = new HashMap<>();
- attribute.put("key", attributeId);
- attribute.put("value", value);
- attributeList.add(attribute);
- }
- index++;
- }
- }
- policyAdapter.setAttributes(attributeList);
- }
+ policyAdapter.setBlackListEntryType(blackListEntryType);
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+
+ } catch (Exception e) {
+ policyLogger.info("General error", e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+ // Get the target data under policy for Action.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ rainydayParams.setTreatmentTableChoices(treatmentList);
+ policyAdapter.setRainyday(rainydayParams);
+ policyAdapter.setSettings(decisionList);
+ return;
+ }
+ // under target we have AnyOFType
+ for (AnyOfType anyOf : target.getAnyOf()) {
+ for (AllOfType allOf : anyOf.getAllOf()) {
+ int index = 0;
+ for (MatchType match : allOf.getMatch()) {
+ //
+ // Under the match we have attributevalue and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ AttributeValueType attributeValue = match.getAttributeValue();
+ String value = (String) attributeValue.getContent().get(0);
+ if (value != null) {
+ value = value.replaceAll("\\(\\?i\\)", "");
}
- // Setting rainy day attributes to the parameters object if they exist
- boolean rainy = false;
- if (!attributeList.isEmpty()) {
- for (int i = 0; i < attributeList.size(); i++) {
- Map<String, String> map = (Map<String, String>) attributeList.get(i);
- if ("WorkStep".equals(map.get("key"))) {
- rainydayParams.setWorkstep(map.get("value"));
- rainy = true;
- } else if ("BB_ID".equals(map.get("key"))) {
- rainydayParams.setBbid(map.get("value"));
- rainy = true;
- } else if ("ServiceType".equals(map.get("key"))) {
- rainydayParams.setServiceType(map.get("value"));
- rainy = true;
- } else if ("VNFType".equals(map.get("key"))) {
- rainydayParams.setVnfType(map.get("value"));
- rainy = true;
- }
- }
+ AttributeDesignatorType designator = match.getAttributeDesignator();
+ String attributeId = designator.getAttributeId();
+ // First match in the target is OnapName, so set that value.
+ if ("ONAPName".equals(attributeId)) {
+ policyAdapter.setOnapName(value);
}
- if (rainy) {
- policyAdapter.setRuleProvider("Rainy_Day");
+ // Component attributes are saved under Target here we are fetching them back.
+ // One row is default so we are not adding dynamic component at index 0.
+ if (index >= 1) {
+ Map<String, String> attribute = new HashMap<>();
+ attribute.put("key", attributeId);
+ attribute.put("value", value);
+ attributeList.add(attribute);
}
+ index++;
+ }
+ policyAdapter.setAttributes(attributeList);
+ }
+ }
+ // Setting rainy day attributes to the parameters object if they exist
+ boolean rainy = false;
+ if (!attributeList.isEmpty()) {
+ for (int i = 0; i < attributeList.size(); i++) {
+ Map<String, String> map = (Map<String, String>) attributeList.get(i);
+ String key = map.get("key");
+ if ("WorkStep".equals(key)) {
+ rainydayParams.setWorkstep(map.get("value"));
+ rainy = true;
+ } else if ("BB_ID".equals(key)) {
+ rainydayParams.setBbid(map.get("value"));
+ rainy = true;
+ } else if ("ServiceType".equals(key)) {
+ rainydayParams.setServiceType(map.get("value"));
+ rainy = true;
+ } else if ("VNFType".equals(key)) {
+ rainydayParams.setVnfType(map.get("value"));
+ rainy = true;
}
+ }
+ }
+ if (rainy) {
+ policyAdapter.setRuleProvider("Rainy_Day");
+ }
- List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
- int index = 0;
- for (Object object : ruleList) {
- if (object instanceof VariableDefinitionType) {
- VariableDefinitionType variableDefinitionType = (VariableDefinitionType) object;
- Map<String, String> settings = new HashMap<>();
- settings.put("key", variableDefinitionType.getVariableId());
- JAXBElement<AttributeValueType> attributeValueTypeElement =
- (JAXBElement<AttributeValueType>) variableDefinitionType.getExpression();
- if (attributeValueTypeElement != null) {
- AttributeValueType attributeValueType = attributeValueTypeElement.getValue();
- settings.put("value", attributeValueType.getContent().get(0).toString());
+ List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ int index = 0;
+ for (Object object : ruleList) {
+ if (object instanceof VariableDefinitionType) {
+ VariableDefinitionType variableDefinitionType = (VariableDefinitionType) object;
+ Map<String, String> settings = new HashMap<>();
+ settings.put("key", variableDefinitionType.getVariableId());
+ JAXBElement<AttributeValueType> attributeValueTypeElement =
+ (JAXBElement<AttributeValueType>) variableDefinitionType.getExpression();
+ if (attributeValueTypeElement != null) {
+ AttributeValueType attributeValueType = attributeValueTypeElement.getValue();
+ settings.put("value", attributeValueType.getContent().get(0).toString());
+ }
+ decisionList.add(settings);
+ } else if (object instanceof RuleType) {
+ // get the condition data under the rule for rule Algorithms.
+ if (((RuleType) object).getEffect().equals(EffectType.DENY)) {
+ if (((RuleType) object).getAdviceExpressions() != null) {
+ if ("AAF".equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider("AAF");
+ break;
+ } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider(GUARD_YAML);
+ } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider(GUARD_BL_YAML);
+ } else if (GUARD_MIN_MAX.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider(GUARD_MIN_MAX);
}
- decisionList.add(settings);
- } else if (object instanceof RuleType) {
- // get the condition data under the rule for rule Algorithms.
- if (((RuleType) object).getEffect().equals(EffectType.DENY)) {
- if (((RuleType) object).getAdviceExpressions() != null) {
- if ("AAF".equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider("AAF");
- break;
- } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider(GUARD_YAML);
- } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider(GUARD_BL_YAML);
- } else if (GUARD_MIN_MAX.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider(GUARD_MIN_MAX);
+ } else {
+ policyAdapter.setRuleProvider("Custom");
+ }
+ ConditionType condition = ((RuleType) object).getCondition();
+ if (condition != null) {
+ ApplyType decisionApply = (ApplyType) condition.getExpression().getValue();
+ decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue();
+ ruleAlgoirthmTracker = new LinkedList<>();
+ if (policyAdapter.getRuleProvider() != null
+ && (GUARD_YAML.equals(policyAdapter.getRuleProvider())
+ || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider()))
+ || (GUARD_MIN_MAX.equals(policyAdapter.getRuleProvider())))) {
+ YAMLParams yamlParams = new YAMLParams();
+ for (int i = 0; i < attributeList.size(); i++) {
+ Map<String, String> map = (Map<String, String>) attributeList.get(i);
+ String key = map.get("key");
+ if ("actor".equals(key)) {
+ yamlParams.setActor(map.get("value"));
+ } else if ("recipe".equals(key)) {
+ yamlParams.setRecipe(map.get("value"));
+ } else if ("target".equals(key)) {
+ yamlParams.setTargets(Arrays.asList(map.get("value").split("\\|")));
+ } else if ("clname".equals(key)) {
+ yamlParams.setClname(map.get("value"));
+ } else if ("min".equals(key)) {
+ yamlParams.setMin(map.get("value"));
+ } else if ("max".equals(key)) {
+ yamlParams.setMax(map.get("value"));
}
- } else {
- policyAdapter.setRuleProvider("Custom");
}
- ConditionType condition = ((RuleType) object).getCondition();
- if (condition != null) {
- ApplyType decisionApply = (ApplyType) condition.getExpression().getValue();
- decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue();
- ruleAlgoirthmTracker = new LinkedList<>();
- if (policyAdapter.getRuleProvider() != null
- && (GUARD_YAML.equals(policyAdapter.getRuleProvider())
- || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider()))
- || (GUARD_MIN_MAX.equals(policyAdapter.getRuleProvider())))) {
- YAMLParams yamlParams = new YAMLParams();
- for (int i = 0; i < attributeList.size(); i++) {
- Map<String, String> map = (Map<String, String>) attributeList.get(i);
- if ("actor".equals(map.get("key"))) {
- yamlParams.setActor(map.get("value"));
- } else if ("recipe".equals(map.get("key"))) {
- yamlParams.setRecipe(map.get("value"));
- } else if ("target".equals(map.get("key"))) {
- yamlParams.setTargets(Arrays.asList(map.get("value").split("\\|")));
- } else if ("clname".equals(map.get("key"))) {
- yamlParams.setClname(map.get("value"));
- } else if ("min".equals(map.get("key"))) {
- yamlParams.setMin(map.get("value"));
- } else if ("max".equals(map.get("key"))) {
- yamlParams.setMax(map.get("value"));
- }
- }
- ApplyType apply =
- (ApplyType) ((ApplyType) decisionApply.getExpression().get(0).getValue())
- .getExpression().get(0).getValue();
- yamlParams.setGuardActiveStart(
- ((AttributeValueType) apply.getExpression().get(1).getValue()).getContent()
- .get(0).toString());
- yamlParams.setGuardActiveEnd(
- ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent()
- .get(0).toString());
- if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) {
- apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression()
- .get(0).getValue()).getExpression().get(1).getValue()).getExpression()
- .get(2).getValue();
- Iterator<JAXBElement<?>> attributes = apply.getExpression().iterator();
- List<String> blackList = new ArrayList<>();
- while (attributes.hasNext()) {
- blackList.add(((AttributeValueType) attributes.next().getValue())
- .getContent().get(0).toString());
- }
- yamlParams.setBlackList(blackList);
- if ("Use File Upload".equals(policyAdapter.getBlackListEntryType())) {
- policyAdapter.setBlackListEntries(blackList);
- }
- } else {
- ApplyType timeWindowSection = (ApplyType) ((ApplyType) decisionApply
- .getExpression().get(0).getValue()).getExpression().get(1).getValue();
- yamlParams.setLimit(((AttributeValueType) timeWindowSection.getExpression()
- .get(1).getValue()).getContent().get(0).toString());
- String timeWindow = ((AttributeDesignatorType) ((ApplyType) timeWindowSection
- .getExpression().get(0).getValue()).getExpression().get(0).getValue())
- .getIssuer();
- yamlParams.setTimeUnits(timeWindow.substring(timeWindow.lastIndexOf(':') + 1));
- yamlParams.setTimeWindow(timeWindow.substring(timeWindow.indexOf(":tw:") + 4,
- timeWindow.lastIndexOf(':')));
- }
- policyAdapter.setYamlparams(yamlParams);
- policyAdapter.setAttributes(new ArrayList<Object>());
- policyAdapter.setRuleAlgorithmschoices(new ArrayList<Object>());
- break;
+ ApplyType apply =
+ (ApplyType) ((ApplyType) decisionApply.getExpression().get(0).getValue())
+ .getExpression().get(0).getValue();
+ yamlParams.setGuardActiveStart(
+ ((AttributeValueType) apply.getExpression().get(1).getValue()).getContent()
+ .get(0).toString());
+ yamlParams.setGuardActiveEnd(
+ ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent()
+ .get(0).toString());
+ if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) {
+ apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression()
+ .get(0).getValue()).getExpression().get(1).getValue()).getExpression()
+ .get(2).getValue();
+ List<String> blackList = new ArrayList<>();
+ for (JAXBElement<?> attr : apply.getExpression()) {
+ blackList.add(((AttributeValueType) attr.getValue())
+ .getContent().get(0).toString());
}
- // Populating Rule Algorithms starting from compound.
- prePopulateDecisionCompoundRuleAlgorithm(index, decisionApply);
- policyAdapter.setRuleAlgorithmschoices(ruleAlgorithmList);
+ yamlParams.setBlackList(blackList);
+ if ("Use File Upload".equals(policyAdapter.getBlackListEntryType())) {
+ policyAdapter.setBlackListEntries(blackList);
+ }
+ } else {
+ ApplyType timeWindowSection = (ApplyType) ((ApplyType) decisionApply
+ .getExpression().get(0).getValue()).getExpression().get(1).getValue();
+ yamlParams.setLimit(((AttributeValueType) timeWindowSection.getExpression()
+ .get(1).getValue()).getContent().get(0).toString());
+ String timeWindow = ((AttributeDesignatorType) ((ApplyType) timeWindowSection
+ .getExpression().get(0).getValue()).getExpression().get(0).getValue())
+ .getIssuer();
+ yamlParams.setTimeUnits(timeWindow.substring(timeWindow.lastIndexOf(':') + 1));
+ yamlParams.setTimeWindow(timeWindow.substring(timeWindow.indexOf(":tw:") + 4,
+ timeWindow.lastIndexOf(':')));
}
- } else if (policyAdapter.getRuleProvider() != null
- && "Rainy_Day".equals(policyAdapter.getRuleProvider())
- && ((RuleType) object).getEffect().equals(EffectType.PERMIT)) {
+ policyAdapter.setYamlparams(yamlParams);
+ policyAdapter.setAttributes(new ArrayList<Object>());
+ policyAdapter.setRuleAlgorithmschoices(new ArrayList<Object>());
+ break;
+ }
+ // Populating Rule Algorithms starting from compound.
+ prePopulateDecisionCompoundRuleAlgorithm(index, decisionApply);
+ policyAdapter.setRuleAlgorithmschoices(ruleAlgorithmList);
+ }
+ } else if (policyAdapter.getRuleProvider() != null
+ && "Rainy_Day".equals(policyAdapter.getRuleProvider())
+ && ((RuleType) object).getEffect().equals(EffectType.PERMIT)) {
- TargetType ruleTarget = ((RuleType) object).getTarget();
- AdviceExpressionsType adviceExpression = ((RuleType) object).getAdviceExpressions();
+ TargetType ruleTarget = ((RuleType) object).getTarget();
+ AdviceExpressionsType adviceExpression = ((RuleType) object).getAdviceExpressions();
- String errorcode = ruleTarget.getAnyOf().get(0).getAllOf().get(0).getMatch().get(1)
- .getAttributeValue().getContent().get(0).toString();
- JAXBElement<AttributeValueType> tempTreatmentObj =
- (JAXBElement<AttributeValueType>) adviceExpression.getAdviceExpression().get(0)
- .getAttributeAssignmentExpression().get(0).getExpression();
- String treatment = tempTreatmentObj.getValue().getContent().get(0).toString();
+ String errorcode = ruleTarget.getAnyOf().get(0).getAllOf().get(0).getMatch().get(1)
+ .getAttributeValue().getContent().get(0).toString();
+ JAXBElement<AttributeValueType> tempTreatmentObj =
+ (JAXBElement<AttributeValueType>) adviceExpression.getAdviceExpression().get(0)
+ .getAttributeAssignmentExpression().get(0).getExpression();
+ String treatment = tempTreatmentObj.getValue().getContent().get(0).toString();
- prePopulateRainyDayTreatments(errorcode, treatment);
+ prePopulateRainyDayTreatments(errorcode, treatment);
- }
- }
}
}
-
- rainydayParams.setTreatmentTableChoices(treatmentList);
- policyAdapter.setRainyday(rainydayParams);
- policyAdapter.setSettings(decisionList);
}
+ rainydayParams.setTreatmentTableChoices(treatmentList);
+ policyAdapter.setRainyday(rainydayParams);
+ policyAdapter.setSettings(decisionList);
}
private void prePopulateRainyDayTreatments(String errorcode, String treatment) {
@@ -417,36 +403,36 @@ public class DecisionPolicyController extends RestrictedBaseController {
index++;
}
}
- if (isCompoundRule) {
- // As it's compound rule, Get the Apply types
- for (JAXBElement<?> jaxbElement : jaxbDecisionTypes) {
- ApplyType innerDecisionApply = (ApplyType) jaxbElement.getValue();
- index = prePopulateDecisionCompoundRuleAlgorithm(index, innerDecisionApply);
- }
- // Populate combo box
- if (policyLogger.isDebugEnabled()) {
- policyLogger.debug("Prepopulating Compound rule algorithm: " + index);
- }
- Map<String, String> rule = new HashMap<>();
- for (String key : PolicyController.getDropDownMap().keySet()) {
- String keyValue = PolicyController.getDropDownMap().get(key);
- if (keyValue.equals(decisionApply.getFunctionId())) {
- rule.put("dynamicRuleAlgorithmCombo", key);
- break;
- }
+ if (! isCompoundRule) {
+ return index;
+ }
+ // As it's compound rule, Get the Apply types
+ for (JAXBElement<?> jaxbElement : jaxbDecisionTypes) {
+ ApplyType innerDecisionApply = (ApplyType) jaxbElement.getValue();
+ index = prePopulateDecisionCompoundRuleAlgorithm(index, innerDecisionApply);
+ }
+ // Populate combo box
+ if (policyLogger.isDebugEnabled()) {
+ policyLogger.debug("Prepopulating Compound rule algorithm: " + index);
+ }
+ Map<String, String> rule = new HashMap<>();
+ for (String key : PolicyController.getDropDownMap().keySet()) {
+ String keyValue = PolicyController.getDropDownMap().get(key);
+ if (keyValue.equals(decisionApply.getFunctionId())) {
+ rule.put("dynamicRuleAlgorithmCombo", key);
+ break;
}
-
- rule.put("id", "A" + (index + 1));
- // Populate Key and values for Compound Rule
- rule.put("dynamicRuleAlgorithmField1", "A" + (ruleAlgoirthmTracker.getLast() + 1));
- ruleAlgoirthmTracker.removeLast();
- rule.put("dynamicRuleAlgorithmField2", "A" + (ruleAlgoirthmTracker.getLast() + 1));
- ruleAlgoirthmTracker.removeLast();
- ruleAlgoirthmTracker.addLast(index);
- ruleAlgorithmList.add(rule);
- index++;
}
- return index;
+ rule.put("id", "A" + (index + 1));
+ // Populate Key and values for Compound Rule
+ rule.put("dynamicRuleAlgorithmField1", "A" + (ruleAlgoirthmTracker.getLast() + 1));
+ ruleAlgoirthmTracker.removeLast();
+ rule.put("dynamicRuleAlgorithmField2", "A" + (ruleAlgoirthmTracker.getLast() + 1));
+ ruleAlgoirthmTracker.removeLast();
+ ruleAlgoirthmTracker.addLast(index);
+ ruleAlgorithmList.add(rule);
+
+ return ++index;
}
}