From 1231b5a1de0ca4d1b00171dc8117a8a33356cd11 Mon Sep 17 00:00:00 2001
From: "Lange, Dr. Herbert" <herbert.lange@uni-hamburg.de>
Date: Mon, 16 May 2022 10:45:50 +0200
Subject: [PATCH] add method to dump report to json

---
 .../java/de/uni_hamburg/corpora/Report.java   | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/main/java/de/uni_hamburg/corpora/Report.java b/src/main/java/de/uni_hamburg/corpora/Report.java
index eda5fab3..7facbd43 100644
--- a/src/main/java/de/uni_hamburg/corpora/Report.java
+++ b/src/main/java/de/uni_hamburg/corpora/Report.java
@@ -9,10 +9,18 @@
  */
 package de.uni_hamburg.corpora;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
 import de.uni_hamburg.corpora.ReportItem.Severity;
+
+import java.io.File;
+import java.io.IOException;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
+
 import org.jdom.JDOMException;
 
 /**
@@ -679,4 +687,20 @@ public class Report {
         return line;
     }
 
+    /**
+     * Dumps the complete report into a JSON file
+     * @param filename the filename of the target JSON file
+     */
+    public void dump(String filename) {
+        // Generate pretty-printed json
+        ObjectMapper mapper = new ObjectMapper();
+        // Allows serialization even when getters are missing
+        mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
+        mapper.configure(SerializationFeature.INDENT_OUTPUT,true);
+        try {
+            mapper.writeValue(new File(filename),this.getRawStatistics());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }
-- 
GitLab