diff --git a/jplag/src/main/java/de/jplag/reporting/reportobject/mapper/ComparisonReportMapper.java b/jplag/src/main/java/de/jplag/reporting/reportobject/mapper/ComparisonReportMapper.java index 5785bf444..1cc7d410d 100644 --- a/jplag/src/main/java/de/jplag/reporting/reportobject/mapper/ComparisonReportMapper.java +++ b/jplag/src/main/java/de/jplag/reporting/reportobject/mapper/ComparisonReportMapper.java @@ -36,7 +36,7 @@ private List convertMatchesToReportMatches(JPlagResult result, JPlagCompa .map(match -> convertMatchToReportMatch(comparison, match, result.getOptions().getLanguage().supportsColumns())).toList(); } - private Match convertMatchToReportMatch(JPlagComparison comparison, de.jplag.Match match, boolean usesIndex) { + private Match convertMatchToReportMatch(JPlagComparison comparison, de.jplag.Match match, boolean languageSupportsColumnsAndLines) { TokenList tokensFirst = comparison.getFirstSubmission().getTokenList(); TokenList tokensSecond = comparison.getSecondSubmission().getTokenList(); Token startTokenFirst = tokensFirst.getToken(match.startOfFirst()); @@ -44,13 +44,17 @@ private Match convertMatchToReportMatch(JPlagComparison comparison, de.jplag.Mat Token startTokenSecond = tokensSecond.getToken(match.startOfSecond()); Token endTokenSecond = tokensSecond.getToken(match.startOfSecond() + match.length() - 1); - int startFirst = usesIndex ? startTokenFirst.getIndex() : startTokenFirst.getLine(); - int endFirst = usesIndex ? endTokenFirst.getIndex() : endTokenFirst.getLine(); - int startSecond = usesIndex ? startTokenSecond.getIndex() : startTokenSecond.getLine(); - int endSecond = usesIndex ? endTokenSecond.getIndex() : endTokenSecond.getLine(); + int startFirst = getPosition(languageSupportsColumnsAndLines, startTokenFirst); + int endFirst = getPosition(languageSupportsColumnsAndLines, endTokenFirst); + int startSecond = getPosition(languageSupportsColumnsAndLines, startTokenSecond); + int endSecond = getPosition(languageSupportsColumnsAndLines, endTokenSecond); int tokens = match.length(); return new Match(startTokenFirst.getFile(), startTokenSecond.getFile(), startFirst, endFirst, startSecond, endSecond, tokens); } + private int getPosition(boolean languageSupportsColumnsAndLines, Token token) { + return languageSupportsColumnsAndLines ? token.getLine() : token.getIndex(); + } + }