Browse Source

[192-webreport] added Clusters to Report model, factory in generator and edited Cluster in Report model and factory in report-viewer

cholakov11 4 years ago
parent
commit
546b9fb6b3

+ 8 - 0
jplag/src/main/java/de/jplag/reportingV2/reportobject/ReportObjectFactory.java

@@ -52,6 +52,7 @@ public class ReportObjectFactory {
         overviewReport.setExecution_time(result.getDuration());
         overviewReport.setComparison_names(getComparisonNames(comparisons));
         overviewReport.setMetrics(getMetrics(result));
+        overviewReport.setClusters(getClusters(result));
 
         return overviewReport;
     }
@@ -175,6 +176,13 @@ public class ReportObjectFactory {
         return new Match(startFirstToken.file, startSecondToken.file, startFirst, endFirst, startSecond, endSecond, tokens);
     }
 
+    // TODO implement after PR Readd clustering #281
+    private static List<Cluster> getClusters(JPlagResult result) {
+        // List<ClusteringResult<Submission>> clusters = result.getClusteringResult();
+        // return clusters.map( c -> new Cluster(getAvgSimilarity, getStrength, c.getMembers().map(Submission::getName)))
+        return List.of();
+    }
+
     private static List<String> readFileLines(File file) {
         ArrayList<String> lines = new ArrayList<>();
         try {

+ 27 - 0
jplag/src/main/java/de/jplag/reportingV2/reportobject/model/Cluster.java

@@ -0,0 +1,27 @@
+package de.jplag.reportingV2.reportobject.model;
+
+import java.util.List;
+
+public class Cluster {
+    private final float average_similarity;
+    private final float strength;
+    private final List<String> members;
+
+    public Cluster(float average_similarity, float strength, List<String> members) {
+        this.average_similarity = average_similarity;
+        this.strength = strength;
+        this.members = members;
+    }
+
+    public float getAverage_similarity() {
+        return average_similarity;
+    }
+
+    public float getStrength() {
+        return strength;
+    }
+
+    public List<String> getMembers() {
+        return members;
+    }
+}

+ 10 - 0
jplag/src/main/java/de/jplag/reportingV2/reportobject/model/OverviewReport.java

@@ -16,6 +16,7 @@ public class OverviewReport {
     private long execution_time;
     private List<String> comparison_names;
     private List<Metric> metrics;
+    private List<Cluster> clusters;
 
     public OverviewReport() {
         submission_folder_path = "";
@@ -28,6 +29,7 @@ public class OverviewReport {
         match_sensitivity = 0;
         date_of_execution = "";
         execution_time = 0;
+        clusters = List.of();
     }
 
     /*******************************
@@ -82,6 +84,10 @@ public class OverviewReport {
         return metrics;
     }
 
+    public List<Cluster> getClusters() {
+        return clusters;
+    }
+
     /*******************************
      * SETTERS
      *******************************/
@@ -133,4 +139,8 @@ public class OverviewReport {
     public void setMetrics(List<Metric> metrics) {
         this.metrics = metrics;
     }
+
+    public void setClusters(List<Cluster> clusters) {
+        this.clusters = clusters;
+    }
 }

+ 1 - 1
report-viewer/src/components/ClustersList.vue

@@ -2,7 +2,7 @@
   <div class="wrapper">
   <h1>Clusters for comparison {{ comparison.firstSubmissionId }} > {{ comparison.secondSubmissionId}}</h1>
   <p v-for="( cluster, index ) in clusters" :key="index" @click="toggleDialog">
-    {{index}} - {{cluster.avgSim}}
+    {{index}} - {{cluster.average_similarity}}
     <GDialog v-model="dialog" fullscreen>
       <button @click="toggleDialog">Close</button>
       <ClusterRadarChart :cluster="cluster"></ClusterRadarChart>

+ 2 - 1
report-viewer/src/model/Cluster.ts

@@ -1,4 +1,5 @@
 export type Cluster = {
-    avgSim: number,
+    averageSimilarity: number,
+    strength: number,
     members: Array<string>
 }

+ 2 - 1
report-viewer/src/model/factories/OverviewFactory.ts

@@ -42,7 +42,8 @@ export class OverviewFactory {
             (json.clusters as Array<unknown>).forEach(c => {
                 const cluster = c as Record<string, unknown>
                 const newCluster: Cluster = {
-                    avgSim: cluster.avgSim as number,
+                    averageSimilarity: cluster.average_similarity as number,
+                    strength: cluster.strength as number,
                     members: cluster.members as Array<string>
                 }
                 clusters.push(newCluster)