From a8df56b2009e5ffb9b2f56b57a706d12b9a12a90 Mon Sep 17 00:00:00 2001 From: yhampe Date: Mon, 7 Oct 2024 14:31:14 +0200 Subject: [PATCH] RED-9472: seperation of system rules --- .../v1/server/service/RuleBuilderService.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RuleBuilderService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RuleBuilderService.java index dd5b36f3..45947272 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RuleBuilderService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RuleBuilderService.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import org.springframework.stereotype.Service; @@ -36,6 +37,8 @@ public class RuleBuilderService { public String cleanRuleFileOfSystemRules(String rulesString, boolean removeImports) { + removeImports = true; + RuleFileBluePrint ruleFileBluePrint = RuleFileParser.buildBluePrintFromRulesString(rulesString); log.info("Starting to remove system rules from ruleFile"); for (String systemRule : systemRules) { @@ -49,10 +52,23 @@ public class RuleBuilderService { public RuleMergingResult mergeUserRulesAndSystemRules(String existingRules, String updatedRules) { - //todo: when returning validation result to frotnend substract the length of imports/globals + log.info("starting to merge user rules update with system rules"); RuleFileBluePrint ruleFileBluePrintExisting = RuleFileParser.buildBluePrintFromRulesString(existingRules); RuleFileBluePrint ruleFileBluePrintExistingMerged = RuleFileParser.buildBluePrintFromRulesString(updatedRules); + ruleFileBluePrintExisting.getAllRuleIdentifiers() + .stream() + .filter(ruleIdentifier -> { + for (String systemRule : systemRules) { + return !ruleIdentifier.matches(RuleIdentifier.fromString(systemRule)); + } + return false; + }) + .collect(Collectors.toList()) + .forEach(rule -> { + log.info("removing rule: {}",rule); + ruleFileBluePrintExisting.removeRule(rule); + }); // add imports from systemrules ruleFileBluePrintExistingMerged.setImports(ruleFileBluePrintExisting.getImports() + ruleFileBluePrintExistingMerged.getImports()); //add globals from systemrules