@Override public ProjectReferentials load(ProjectReactor reactor, Settings settings, Languages languages) { ProjectReferentials ref = new ProjectReferentials(); String defaultName = settings.getString(ModuleQProfiles.SONAR_PROFILE_PROP); for (Language language : languages.all()) { org.sonar.batch.protocol.input.QProfile profile = null; if (StringUtils.isNotBlank(defaultName)) { profile = loadDefaultQProfile(defaultName, language.getKey()); } if (profile == null) { profile = loadQProfile(settings, language.getKey()); } if (profile != null) { ref.addQProfile(profile); } } for (QProfile qProfile : ref.qProfiles()) { ListMultimap<Integer, ActiveRuleParamDto> paramDtosByActiveRuleId = ArrayListMultimap.create(); for (ActiveRuleParamDto dto : activeRuleDao.selectParamsByProfileKey(qProfile.key())) { paramDtosByActiveRuleId.put(dto.getActiveRuleId(), dto); } for (ActiveRuleDto activeDto : activeRuleDao.selectByProfileKey(qProfile.key())) { Rule rule = ruleFinder.findById(activeDto.getRuleId()); if (rule != null) { String internalKey; Rule template = rule.getTemplate(); if (template != null) { internalKey = template.getConfigKey(); } else { internalKey = rule.getConfigKey(); } ActiveRule activeRule = new ActiveRule( rule.ruleKey().repository(), rule.ruleKey().rule(), rule.getName(), activeDto.getSeverityString(), internalKey, rule.getLanguage()); // load parameter values for (ActiveRuleParamDto paramDto : paramDtosByActiveRuleId.get(activeDto.getId())) { activeRule.params().put(paramDto.getKey(), paramDto.getValue()); } // load default values for (RuleParam param : rule.getParams()) { if (!activeRule.params().containsKey(param.getKey())) { activeRule.params().put(param.getKey(), param.getDefaultValue()); } } ref.addActiveRule(activeRule); } } } return ref; }
/** {@inheritDoc} */ public boolean shouldExecuteOnProject(Project project) { return isEnabled(project) && language.equals(project.getLanguage()); }