protected void buildActiveRulesFromModuleTree(Module moduleTree, String modulePath, List<ActiveRule> activeRules, List<Rule> rules) {
if (moduleTree.getChildren() == null || moduleTree.getChildren().isEmpty()) {
for (Rule rule : rules) {
if (rule.getConfigKey().equals(modulePath)) {
RuleFailureLevel ruleFailureLevel = getRuleFailureLevel(moduleTree);
if (ruleFailureLevel != null) {
ActiveRule activeRule = new ActiveRule(null, rule, ruleFailureLevel);
activeRule.setActiveRuleParams(getActiveRuleParams(moduleTree, rule, activeRule));
activeRules.add(activeRule);
return;
}
}
}
} else {
String baseModulePath = modulePath.length() == 0 ? moduleTree.getName() + MODULE_SEPARATOR :
modulePath + MODULE_SEPARATOR;
for (Module child : moduleTree.getChildren()) {
buildActiveRulesFromModuleTree(child, baseModulePath + child.getName(), activeRules, rules);
}
}
}