Skip to content

Commit

Permalink
minor: extracting method in InlineConfigParser for future extension i…
Browse files Browse the repository at this point in the history
…n Issue #10752
  • Loading branch information
Vyom-Yadav authored and rnveach committed Dec 9, 2021
1 parent eacbf94 commit defd358
Showing 1 changed file with 61 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -257,52 +257,67 @@ else if (value.startsWith("(default)")) {
private static void setViolations(TestInputConfiguration.Builder inputConfigBuilder,
List<String> lines, boolean useFilteredViolations) {
for (int lineNo = 0; lineNo < lines.size(); lineNo++) {
final Matcher violationMatcher =
VIOLATION_PATTERN.matcher(lines.get(lineNo));
final Matcher violationAboveMatcher =
VIOLATION_ABOVE_PATTERN.matcher(lines.get(lineNo));
final Matcher violationBelowMatcher =
VIOLATION_BELOW_PATTERN.matcher(lines.get(lineNo));
final Matcher multipleViolationsMatcher =
MULTIPLE_VIOLATIONS_PATTERN.matcher(lines.get(lineNo));
final Matcher multipleViolationsAboveMatcher =
MULTIPLE_VIOLATIONS_ABOVE_PATTERN.matcher(lines.get(lineNo));
final Matcher multipleViolationsBelowMatcher =
MULTIPLE_VIOLATIONS_BELOW_PATTERN.matcher(lines.get(lineNo));
if (violationMatcher.matches()) {
inputConfigBuilder.addViolation(lineNo + 1, violationMatcher.group(1));
}
else if (violationAboveMatcher.matches()) {
inputConfigBuilder.addViolation(lineNo, violationAboveMatcher.group(1));
}
else if (violationBelowMatcher.matches()) {
inputConfigBuilder.addViolation(lineNo + 2, violationBelowMatcher.group(1));
}
else if (multipleViolationsMatcher.matches()) {
Collections
.nCopies(Integer.parseInt(multipleViolationsMatcher.group(1)), lineNo + 1)
.forEach(actualLineNumber -> {
inputConfigBuilder.addViolation(actualLineNumber, null);
});
}
else if (multipleViolationsAboveMatcher.matches()) {
Collections
.nCopies(Integer.parseInt(multipleViolationsAboveMatcher.group(1)), lineNo)
.forEach(actualLineNumber -> {
inputConfigBuilder.addViolation(actualLineNumber, null);
});
}
else if (multipleViolationsBelowMatcher.matches()) {
Collections
.nCopies(Integer.parseInt(multipleViolationsBelowMatcher.group(1)),
lineNo + 2)
.forEach(actualLineNumber -> {
inputConfigBuilder.addViolation(actualLineNumber, null);
});
}
else if (useFilteredViolations) {
setFilteredViolation(inputConfigBuilder, lineNo + 1, lines.get(lineNo));
}
setViolations(inputConfigBuilder, lines, useFilteredViolations, lineNo);
}
}

/**
* Sets the violations.
*
* @param inputConfigBuilder the input file path.
* @param lines all the lines in the file.
* @param useFilteredViolations flag to set filtered violations.
* @param lineNo current line.
* @noinspection IfStatementWithTooManyBranches
*/
private static void setViolations(TestInputConfiguration.Builder inputConfigBuilder,
List<String> lines, boolean useFilteredViolations,
int lineNo) {
final Matcher violationMatcher =
VIOLATION_PATTERN.matcher(lines.get(lineNo));
final Matcher violationAboveMatcher =
VIOLATION_ABOVE_PATTERN.matcher(lines.get(lineNo));
final Matcher violationBelowMatcher =
VIOLATION_BELOW_PATTERN.matcher(lines.get(lineNo));
final Matcher multipleViolationsMatcher =
MULTIPLE_VIOLATIONS_PATTERN.matcher(lines.get(lineNo));
final Matcher multipleViolationsAboveMatcher =
MULTIPLE_VIOLATIONS_ABOVE_PATTERN.matcher(lines.get(lineNo));
final Matcher multipleViolationsBelowMatcher =
MULTIPLE_VIOLATIONS_BELOW_PATTERN.matcher(lines.get(lineNo));
if (violationMatcher.matches()) {
inputConfigBuilder.addViolation(lineNo + 1, violationMatcher.group(1));
}
else if (violationAboveMatcher.matches()) {
inputConfigBuilder.addViolation(lineNo, violationAboveMatcher.group(1));
}
else if (violationBelowMatcher.matches()) {
inputConfigBuilder.addViolation(lineNo + 2, violationBelowMatcher.group(1));
}
else if (multipleViolationsMatcher.matches()) {
Collections
.nCopies(Integer.parseInt(multipleViolationsMatcher.group(1)), lineNo + 1)
.forEach(actualLineNumber -> {
inputConfigBuilder.addViolation(actualLineNumber, null);
});
}
else if (multipleViolationsAboveMatcher.matches()) {
Collections
.nCopies(Integer.parseInt(multipleViolationsAboveMatcher.group(1)), lineNo)
.forEach(actualLineNumber -> {
inputConfigBuilder.addViolation(actualLineNumber, null);
});
}
else if (multipleViolationsBelowMatcher.matches()) {
Collections
.nCopies(Integer.parseInt(multipleViolationsBelowMatcher.group(1)),
lineNo + 2)
.forEach(actualLineNumber -> {
inputConfigBuilder.addViolation(actualLineNumber, null);
});
}
else if (useFilteredViolations) {
setFilteredViolation(inputConfigBuilder, lineNo + 1, lines.get(lineNo));
}
}

Expand Down

0 comments on commit defd358

Please sign in to comment.