Skip to content

Commit

Permalink
Fixed error in removing non common tokens
Browse files Browse the repository at this point in the history
  • Loading branch information
TwoOfTwelve committed Jan 29, 2025
1 parent 9df8b46 commit 1cbcb25
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions core/src/main/java/de/jplag/JPlag.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.List;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.stream.Collectors;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -100,18 +99,26 @@ public static JPlagResult run(JPlagOptions options) throws ExitException {

private static SubmissionSet stripNonCommonTokens(SubmissionSet submissionSet) throws ExitException {
List<Submission> submissions = submissionSet.getSubmissions();
Set<Class<?>> tokenContexts = submissions.stream()
.flatMap(it -> it.getTokenList().stream().map(token -> token.getLanguage().getTokenContexts().stream())).reduce((left, right) -> {
return left.filter(it -> right.anyMatch(rightElem -> rightElem.equals(it)));
}).get().collect(Collectors.toSet());
Set<Class<?>> tokenContexts = new HashSet<>(submissions.stream()
.flatMap(it -> it.getTokenList().stream()
.map(token -> token.getLanguage() != null ? token.getLanguage().getTokenContexts() : new ArrayList<Class<?>>()))
.reduce((left, right) -> {
List<Class<?>> result = new ArrayList<>(left);
result.retainAll(right);
return result;
}).get());

List<Submission> strippedSubmissions = submissions.stream().map(sub -> {
Submission copy = sub.copy();
copy.setTokenList(sub.getTokenList().stream().filter(it -> tokenContexts.contains(it.getType().getContext())).toList());
return copy;
}).toList();

return new SubmissionSet(strippedSubmissions, submissionSet.getBaseCode(), submissionSet.getOptions());
if (submissionSet.hasBaseCode()) {
return new SubmissionSet(strippedSubmissions, submissionSet.getBaseCode(), submissionSet.getOptions());
} else {
return new SubmissionSet(strippedSubmissions, null, submissionSet.getOptions());
}
}

private static void logSkippedSubmissions(SubmissionSet submissionSet, JPlagOptions options) {
Expand Down

0 comments on commit 1cbcb25

Please sign in to comment.