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.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -36,6 +37,8 @@ public class RuleBuilderService {
|
|||||||
|
|
||||||
public String cleanRuleFileOfSystemRules(String rulesString, boolean removeImports) {
|
public String cleanRuleFileOfSystemRules(String rulesString, boolean removeImports) {
|
||||||
|
|
||||||
|
removeImports = true;
|
||||||
|
|
||||||
RuleFileBluePrint ruleFileBluePrint = RuleFileParser.buildBluePrintFromRulesString(rulesString);
|
RuleFileBluePrint ruleFileBluePrint = RuleFileParser.buildBluePrintFromRulesString(rulesString);
|
||||||
log.info("Starting to remove system rules from ruleFile");
|
log.info("Starting to remove system rules from ruleFile");
|
||||||
for (String systemRule : systemRules) {
|
for (String systemRule : systemRules) {
|
||||||
@ -49,10 +52,23 @@ public class RuleBuilderService {
|
|||||||
|
|
||||||
|
|
||||||
public RuleMergingResult mergeUserRulesAndSystemRules(String existingRules, String updatedRules) {
|
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");
|
log.info("starting to merge user rules update with system rules");
|
||||||
RuleFileBluePrint ruleFileBluePrintExisting = RuleFileParser.buildBluePrintFromRulesString(existingRules);
|
RuleFileBluePrint ruleFileBluePrintExisting = RuleFileParser.buildBluePrintFromRulesString(existingRules);
|
||||||
RuleFileBluePrint ruleFileBluePrintExistingMerged = RuleFileParser.buildBluePrintFromRulesString(updatedRules);
|
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
|
// add imports from systemrules
|
||||||
ruleFileBluePrintExistingMerged.setImports(ruleFileBluePrintExisting.getImports() + ruleFileBluePrintExistingMerged.getImports());
|
ruleFileBluePrintExistingMerged.setImports(ruleFileBluePrintExisting.getImports() + ruleFileBluePrintExistingMerged.getImports());
|
||||||
//add globals from systemrules
|
//add globals from systemrules
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user