RED-9472: seperation of system rules
This commit is contained in:
parent
ae38506809
commit
a8df56b200
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user