public IssueConfigBean(String majorIssue, MinorIssueConfig minorIssueConfig) { major = majorIssue; minor = minorIssueConfig.getMinor(); severity = minorIssueConfig.getSeverity(); url = minorIssueConfig.getUrl(); }
private MajorIssueConfig overlayMajorIssueConfig( MajorIssueConfig baseMajorIssueConfig, MajorIssueConfig networkMajorIssueConfig) { Map<String, MinorIssueConfig> networkMinorIssues = networkMajorIssueConfig.getMinorIssueConfigsMap(); ImmutableList.Builder<MinorIssueConfig> combinedMinorIssues = ImmutableList.builder(); // note there is no need to address minor issues not mentioned in base answer baseMajorIssueConfig .getMinorIssueConfigsMap() .forEach( (minorIssueType, baseMinorIssueConfig) -> { MinorIssueConfig networkMinorIssueConfig = networkMinorIssues.get(minorIssueType); if (networkMinorIssueConfig == null) { combinedMinorIssues.add(baseMinorIssueConfig); return; } Integer networkSeverity = networkMinorIssueConfig.getSeverity(); Integer severity = networkSeverity != null ? networkSeverity : baseMinorIssueConfig.getSeverity(); String networkUrl = networkMinorIssueConfig.getUrl(); String url = networkUrl != null && !networkUrl.isEmpty() ? networkUrl : baseMinorIssueConfig.getUrl(); combinedMinorIssues.add(new MinorIssueConfig(minorIssueType, severity, url)); }); return new MajorIssueConfig(baseMajorIssueConfig.getMajorIssue(), combinedMinorIssues.build()); }
new Issue( oldIssue.getExplanation(), minorConfig.getSeverity(), oldIssue.getType(), minorConfig.getUrl());
@Test public void testConstructorMultipleMinorIssuesSameName() { String minor = "minor"; int finalSeverity = 2; assertThat( new MajorIssueConfig( "major", ImmutableList.of( new MinorIssueConfig(minor, 1, null), new MinorIssueConfig(minor, finalSeverity, null))) .getMinorIssueConfig(minor) .get() .getSeverity(), equalTo(finalSeverity)); }