aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-webserver-core
diff options
context:
space:
mode:
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>2022-06-23 12:21:38 +0200
committersonartech <sonartech@sonarsource.com>2022-06-30 20:03:09 +0000
commitb2079411492f9c056c92c619d2ccf08e86e88e5c (patch)
treed41cad00a40352d3dc93d9ec46eb4092319c9254 /server/sonar-webserver-core
parenta410c8e18142d77c4e19ef10ce6d420526d5c236 (diff)
downloadsonarqube-b2079411492f9c056c92c619d2ccf08e86e88e5c.tar.gz
sonarqube-b2079411492f9c056c92c619d2ccf08e86e88e5c.zip
SONAR-16518 Add context to RuleDescriptionSectionDto
Diffstat (limited to 'server/sonar-webserver-core')
-rw-r--r--server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
index 38c0c810cfa..fc3463987b6 100644
--- a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
+++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
@@ -517,15 +517,17 @@ public class RegisterRules implements Startable {
}
private static boolean ruleDescriptionSectionsUnchanged(RuleDto ruleDto, Set<RuleDescriptionSectionDto> newRuleDescriptionSectionDtos) {
- Map<String, String> oldKeysToSections = toMap(ruleDto.getRuleDescriptionSectionDtos());
- Map<String, String> newKeysToSections = toMap(newRuleDescriptionSectionDtos);
- return oldKeysToSections.equals(newKeysToSections);
+ if (ruleDto.getRuleDescriptionSectionDtos().size() != newRuleDescriptionSectionDtos.size()) {
+ return false;
+ }
+ return ruleDto.getRuleDescriptionSectionDtos().stream()
+ .allMatch(sectionDto -> contains(newRuleDescriptionSectionDtos, sectionDto));
}
- private static Map<String, String> toMap(Set<RuleDescriptionSectionDto> ruleDto) {
- return ruleDto
- .stream()
- .collect(Collectors.toMap(RuleDescriptionSectionDto::getKey, RuleDescriptionSectionDto::getContent));
+ private static boolean contains(Set<RuleDescriptionSectionDto> sectionDtos, RuleDescriptionSectionDto sectionDto) {
+ return sectionDtos.stream()
+ .filter(s -> s.getKey().equals(sectionDto.getKey()) && s.getContent().equals(sectionDto.getContent()))
+ .anyMatch(s -> Objects.equals(s.getContext(), sectionDto.getContext()));
}
private static boolean mergeDebtDefinitions(RulesDefinition.Rule def, RuleDto dto) {