Nesta Bentum 4 лет назад
Родитель
Сommit
bcd843bf4c

+ 7 - 8
jplag/src/main/java/de/jplag/reporting/jsonfactory/ComparisonReportWriter.java

@@ -9,6 +9,10 @@ import de.jplag.*;
 import de.jplag.reporting.reportobject.model.ComparisonReport;
 import de.jplag.reporting.reportobject.model.Match;
 
+/**
+ * Writes {@link ComparisonReport}s of given {@link JPlagResult} to the disk under the specified path. Instantiated with
+ * a function that associates a submission to its id.
+ */
 public class ComparisonReportWriter {
 
     private static final FileWriter FILE_WRITER = new FileWriter();
@@ -54,19 +58,14 @@ public class ComparisonReportWriter {
     }
 
     private void writeToMap(String id1, String id2, String comparisonFileName) {
-        if (submissionIdToComparisonFileName.containsKey(id1)) {
-            submissionIdToComparisonFileName.get(id1).put(id2, comparisonFileName);
-        } else {
-            HashMap<String, String> map = new HashMap<>();
-            map.put(id2, comparisonFileName);
-            submissionIdToComparisonFileName.put(id1, map);
-        }
+        submissionIdToComparisonFileName.putIfAbsent(id1, new HashMap<>());
+        submissionIdToComparisonFileName.get(id1).put(id2, comparisonFileName);
     }
 
     private String generateComparisonName(String firstSubmissionId, String secondSubmissionId) {
         String name = concatenate(firstSubmissionId, secondSubmissionId);
         String finalName = name;
-        var timesNameAlreadyExists = submissionIdToComparisonFileName.values().stream().filter(map -> map.containsValue(finalName)).count();
+        long timesNameAlreadyExists = submissionIdToComparisonFileName.values().stream().filter(map -> map.containsValue(finalName)).count();
         if (timesNameAlreadyExists > 0) {
             name = concatenate(firstSubmissionId, secondSubmissionId, timesNameAlreadyExists + 1);
         }

+ 3 - 4
jplag/src/main/java/de/jplag/reporting/jsonfactory/DirectoryCreator.java

@@ -3,11 +3,10 @@ package de.jplag.reporting.jsonfactory;
 import java.io.File;
 import java.io.IOException;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+/**
+ * Provides Methods for creating directories.
+ */
 public class DirectoryCreator {
-    private static final Logger logger = LoggerFactory.getLogger(DirectoryCreator.class);
 
     /**
      * Creates a directory.

+ 6 - 8
jplag/src/main/java/de/jplag/reporting/reportobject/ReportObjectFactory.java

@@ -70,13 +70,15 @@ public class ReportObjectFactory {
         List<JPlagComparison> comparisons = result.getComparisons(result.getOptions().getMaximumNumberOfComparisons());
         var submissions = getSubmissions(comparisons);
         var submissionsPath = createSubmissionsDirectory(path);
-        if (submissionsPath == null)
+        if (submissionsPath == null) {
             return;
+        }
         Language language = result.getOptions().getLanguage();
         for (var submission : submissions) {
             File directory = createSubmissionDirectory(path, submissionsPath, submission);
-            if (directory == null)
+            if (directory == null) {
                 continue;
+            }
             for (var file : submission.getFiles()) {
                 var fileToCopy = language.useViewFiles() ? new File(file.getPath() + language.viewFileSuffix()) : file;
                 try {
@@ -89,25 +91,21 @@ public class ReportObjectFactory {
     }
 
     private File createSubmissionDirectory(String path, File submissionsPath, Submission submission) {
-        File directory;
         try {
-            directory = createDirectory(submissionsPath.getPath(), submissionToIdFunction.apply(submission));
+            return createDirectory(submissionsPath.getPath(), submissionToIdFunction.apply(submission));
         } catch (IOException e) {
             logger.error("Could not create directory " + path + " for report viewer generation", e);
             return null;
         }
-        return directory;
     }
 
     private File createSubmissionsDirectory(String path) {
-        File submissionsPath;
         try {
-            submissionsPath = createDirectory(path, SUBMISSIONS_FOLDER);
+            return createDirectory(path, SUBMISSIONS_FOLDER);
         } catch (IOException e) {
             logger.error("Could not create directory " + path + " for report viewer generation", e);
             return null;
         }
-        return submissionsPath;
     }
 
     private void writeComparisons(JPlagResult result, String path) {

+ 9 - 1
jplag/src/main/java/de/jplag/reporting/reportobject/mapper/SubmissionNameToIdMapper.java

@@ -9,7 +9,15 @@ import de.jplag.JPlagComparison;
 import de.jplag.JPlagResult;
 import de.jplag.Submission;
 
+/**
+ * Responsible for creating a mapping of all Submissions to their respective report viewer ids. This mapping is achieved
+ * by associating the {@link Submission#getName()} (JPlag's internal Submission uid) to a report viewer id. Currently,
+ * the sanitized version of the {@link Submission#getName()} serves as report viewer id.
+ */
 public class SubmissionNameToIdMapper {
+
+    private static final String FILE_SEPARATOR_REPLACEMENT = "_";
+
     /**
      * Builds a map that associates a Submission by its JPlag Id ({@link Submission#getName()}) to its report viewer id.
      * @return A Map of containing an entry [name of submission -> report viewer id of submission] for each submission of
@@ -25,7 +33,7 @@ public class SubmissionNameToIdMapper {
     }
 
     private static String sanitizeNameOf(Submission comparison) {
-        return comparison.getName().replace(File.separator, "_");
+        return comparison.getName().replace(File.separator, FILE_SEPARATOR_REPLACEMENT);
     }
 
     private static List<JPlagComparison> getComparisons(JPlagResult result) {