RED-9472: seperation of system rules

This commit is contained in:
yhampe 2024-10-07 14:31:14 +02:00
parent ae38506809
commit a8df56b200

View File

@ -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