From 8aaaeed08f799954dd2fc5c045445c761d548634 Mon Sep 17 00:00:00 2001
From: "Lange, Dr. Herbert" <herbert.lange@uni-hamburg.de>
Date: Fri, 18 Jun 2021 13:39:39 +0200
Subject: [PATCH] make exma error a property of the corpus function. but it
 does not even seem to be used

---
 .../uni_hamburg/corpora/CorpusMagician.java   |  2 +-
 .../validation/ComaFilenameChecker.java       | 17 +++++++++++-----
 ...iersDescriptionAnnotationPanelChecker.java | 16 ++++++++++-----
 .../validation/ExbAnnotationPanelCheck.java   | 16 ++++++++++-----
 .../ExbEventTokenizationChecker.java          | 20 ++++++++++++-------
 .../validation/ExbFileCoverageChecker.java    | 20 ++++++++++++-------
 .../validation/ExbFileReferenceChecker.java   | 17 +++++++++++-----
 .../ExbForbiddenSymbolsChecker.java           | 20 ++++++++++++-------
 .../corpora/validation/ExbMerger.java         | 16 ++++++++++-----
 .../corpora/validation/ExbRefTierChecker.java | 18 ++++++++++-------
 .../validation/ExbSegmentationChecker.java    | 18 ++++++++++-------
 .../validation/ExbStructureChecker.java       | 20 ++++++++++++-------
 .../validation/ExbTierDisplayNameChecker.java | 16 ++++++++++-----
 .../validation/ExbTimestampsChecker.java      | 20 ++++++++++++-------
 .../validation/GenerateAnnotationPanel.java   | 16 ++++++++++-----
 .../corpora/validation/IAAFunctionality.java  | 16 ++++++++++-----
 .../validation/LanguageToolChecker.java       | 17 ++++++++++------
 .../validation/NgexmaraldaCorpusChecker.java  | 18 +++++++++++------
 .../validation/RemoveAbsolutePaths.java       | 19 +++++++++++-------
 .../corpora/validation/RemoveAutoSaveExb.java | 19 +++++++++++-------
 .../corpora/validation/RemoveEmptyEvents.java | 19 +++++++++++-------
 .../corpora/validation/XSLTChecker.java       | 17 ++++++++++------
 22 files changed, 248 insertions(+), 129 deletions(-)

diff --git a/src/main/java/de/uni_hamburg/corpora/CorpusMagician.java b/src/main/java/de/uni_hamburg/corpora/CorpusMagician.java
index df2bec82..c31d41b6 100644
--- a/src/main/java/de/uni_hamburg/corpora/CorpusMagician.java
+++ b/src/main/java/de/uni_hamburg/corpora/CorpusMagician.java
@@ -120,7 +120,7 @@ public class CorpusMagician {
     boolean isfixesjson = false;
     CommandLine cmd = null;
     //the final Exmaralda error list
-    public ExmaErrorList exmaError = new ExmaErrorList();
+    // public ExmaErrorList exmaError = new ExmaErrorList();
     Properties cfProperties = new Properties();
     PrettyPrinter pp = new PrettyPrinter();
     String settingsfilepath = "settings.xml";
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ComaFilenameChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ComaFilenameChecker.java
index 2ded4dc4..ac3e2503 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ComaFilenameChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ComaFilenameChecker.java
@@ -8,10 +8,8 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.Report;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
+import de.uni_hamburg.corpora.*;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -21,7 +19,6 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import javax.xml.parsers.ParserConfigurationException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 import javax.xml.transform.TransformerException;
 import javax.xml.xpath.XPathExpressionException;
 import org.apache.commons.cli.Option;
@@ -36,6 +33,7 @@ import org.xml.sax.SAXException;
  */
 public class ComaFilenameChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     Pattern acceptable;
     Pattern unacceptable;
     String fileLoc = "";
@@ -46,6 +44,15 @@ public class ComaFilenameChecker extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature; checks if there is a file which is not
      * named according to coma file.
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ComaTiersDescriptionAnnotationPanelChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ComaTiersDescriptionAnnotationPanelChecker.java
index 08ad3f9c..ff812cb9 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ComaTiersDescriptionAnnotationPanelChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ComaTiersDescriptionAnnotationPanelChecker.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -30,6 +26,7 @@ import org.xml.sax.SAXException;
  */
 public class ComaTiersDescriptionAnnotationPanelChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String comaLoc = "";
     HashMap<String, Collection<String>> annotationsInComa; // list for holding annotations of coma file
     ArrayList<String> annotations; // list for holding annotations of annotation spec file
@@ -40,6 +37,15 @@ public class ComaTiersDescriptionAnnotationPanelChecker extends Checker implemen
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature; compares the coma file with the
      * corresponding annotation specification file whether or not there is a
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbAnnotationPanelCheck.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbAnnotationPanelCheck.java
index a7682300..8229b384 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbAnnotationPanelCheck.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbAnnotationPanelCheck.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -30,6 +26,7 @@ import org.xml.sax.SAXException;
  */
 public class ExbAnnotationPanelCheck extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     ArrayList<String> allTagStrings;
     String tierLoc = "";
 
@@ -38,6 +35,15 @@ public class ExbAnnotationPanelCheck extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature; adds tiers from the annotation
      * specification file first, then checks if tiers in exb files are correct.
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbEventTokenizationChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbEventTokenizationChecker.java
index edf4d42e..3b2fd9d0 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbEventTokenizationChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbEventTokenizationChecker.java
@@ -5,11 +5,8 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
+
 import java.io.IOException;
 import java.util.Collection;
 import java.util.regex.Pattern;
@@ -28,7 +25,6 @@ import javax.xml.xpath.XPathExpressionException;
 import org.jdom.Element;
 import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
 import org.jdom.Attribute;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 
 /**
  *
@@ -41,6 +37,7 @@ import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 
 public class ExbEventTokenizationChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     boolean badTokens = false;
     boolean incompleteAnnotation = false;
     boolean missingTimestamp = false;
@@ -50,7 +47,16 @@ public class ExbEventTokenizationChecker extends Checker implements CorpusFuncti
         //fixing option not available
         super(false);
     }
-    
+
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     String tokensTierName = "t";
     // This is the default tier name that can be overridden by calling setTokensTierName
     
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbFileCoverageChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbFileCoverageChecker.java
index debc35ca..7807d559 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbFileCoverageChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbFileCoverageChecker.java
@@ -5,11 +5,7 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.File;
 import java.io.IOException;
@@ -38,8 +34,9 @@ import org.xml.sax.SAXException;
  */
 public class ExbFileCoverageChecker extends Checker implements CorpusFunction {
 
-    static List<String> whitelist;
-    static List<String> fileendingwhitelist;
+    ExmaErrorList exmaError = new ExmaErrorList();
+    List<String> whitelist;
+    List<String> fileendingwhitelist;
 
     public ExbFileCoverageChecker() {
         //no fixing available
@@ -49,6 +46,15 @@ public class ExbFileCoverageChecker extends Checker implements CorpusFunction {
 
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature: checks whether files are both in the
      * exb file and file system.
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbFileReferenceChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbFileReferenceChecker.java
index 8da25abe..4c20ea5c 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbFileReferenceChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbFileReferenceChecker.java
@@ -9,10 +9,7 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.Report;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.io.File;
@@ -20,7 +17,6 @@ import java.util.Collection;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 import java.net.URISyntaxException;
 import java.net.URL;
 import javax.xml.transform.TransformerException;
@@ -37,11 +33,22 @@ import org.w3c.dom.NodeList;
  */
 public class ExbFileReferenceChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
+
     public ExbFileReferenceChecker() {
         //no fixing option available
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main feature of the class: Checks Exmaralda .exb file for file
      * references, if a referenced file does not exist, issues a warning.
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbForbiddenSymbolsChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbForbiddenSymbolsChecker.java
index d7eec674..4be2b881 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbForbiddenSymbolsChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbForbiddenSymbolsChecker.java
@@ -5,11 +5,7 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.Report;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.XMLData;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -26,7 +22,6 @@ import java.util.regex.Pattern;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 
 /**
  * @file ExbForbiddenSymbolsChecker.java
@@ -36,6 +31,8 @@ import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
  * @author Aleksandr Riaposov <aleksandr.riaposov@uni-hamburg.de>
  */
 public class ExbForbiddenSymbolsChecker extends Checker implements CorpusFunction {
+
+    ExmaErrorList exmaError = new ExmaErrorList();
     ArrayList<String> lsTiersToCheck = new ArrayList<>(
         Arrays.asList("ts", "tx", "stl", "st")); 
     // This is a list of transcription tiers in the Selkup corpus
@@ -51,7 +48,16 @@ public class ExbForbiddenSymbolsChecker extends Checker implements CorpusFunctio
         // fixing option not available
         super(false);
     }
-    
+
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     @Override
     public Report function (CorpusData cd, Boolean fix) throws IOException, SAXException {
         Document doc = null;
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbMerger.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbMerger.java
index ad25d3d2..3261a86e 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbMerger.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbMerger.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -37,6 +33,7 @@ import org.xml.sax.SAXException;
  */
 public class ExbMerger extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String exbLoc = "";
     public HashMap<String, String> exbStrings;
     public HashMap<String, String> exbStringsTwo;
@@ -59,6 +56,15 @@ public class ExbMerger extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Default check function which calls the exceptionalCheck function so that
      * the primal functionality of the feature can be implemented, and
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbRefTierChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbRefTierChecker.java
index dde8b314..e1f694ba 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbRefTierChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbRefTierChecker.java
@@ -1,12 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.BasicTranscriptionData;
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -28,12 +22,22 @@ import org.xml.sax.SAXException;
  */
 public class ExbRefTierChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String tierLoc = "";
 
     public ExbRefTierChecker() {
         super(true);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Default function which determines for what type of files (basic
      * transcription, segmented transcription, coma etc.) this feature can be
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbSegmentationChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbSegmentationChecker.java
index b1078aca..45cb507a 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbSegmentationChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbSegmentationChecker.java
@@ -9,13 +9,7 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.BasicTranscriptionData;
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.io.File;
@@ -52,6 +46,7 @@ import org.exmaralda.coma.helpers.*;
  */
 public class ExbSegmentationChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     static String filename;
     static BasicTranscription bt;
     static BasicTranscriptionData btd;
@@ -66,6 +61,15 @@ public class ExbSegmentationChecker extends Checker implements CorpusFunction {
         super(true);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     @Override
     public Report function(CorpusData cd, Boolean fix) throws SAXException, JDOMException, IOException, JexmaraldaException, FSMException, TransformerException, ParserConfigurationException, UnsupportedEncodingException, XPathExpressionException, URISyntaxException {
         Report stats = new Report();
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbStructureChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbStructureChecker.java
index cb6f5d06..7e51c6cc 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbStructureChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbStructureChecker.java
@@ -9,17 +9,13 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.BasicTranscriptionData;
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.Report;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
+import de.uni_hamburg.corpora.*;
+
 import java.io.IOException;
 import java.io.File;
 import java.util.Hashtable;
 import java.util.Collection;
 import org.xml.sax.SAXException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 import java.net.URISyntaxException;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
@@ -34,6 +30,7 @@ import org.jdom.JDOMException;
  */
 public class ExbStructureChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     BasicTranscription bt;
     File exbfile;
     ValidatorSettings settings;
@@ -43,7 +40,16 @@ public class ExbStructureChecker extends Checker implements CorpusFunction {
         //fixing is not possible
         super(false);
     }
-    
+
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature; checks basic transcription files for
      * structural anomalies.
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbTierDisplayNameChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbTierDisplayNameChecker.java
index 8e99eb45..702c0b0f 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbTierDisplayNameChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbTierDisplayNameChecker.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.Report;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -28,6 +24,7 @@ import org.xml.sax.SAXException;
  */
 public class ExbTierDisplayNameChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String tierLoc = "";
 
     public ExbTierDisplayNameChecker() {
@@ -35,6 +32,15 @@ public class ExbTierDisplayNameChecker extends Checker implements CorpusFunction
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature; checks if there is a mismatch between
      * category, speaker abbreviation and display name for each tier. Issues
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/ExbTimestampsChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/ExbTimestampsChecker.java
index 8791fb84..f1e642b6 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/ExbTimestampsChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/ExbTimestampsChecker.java
@@ -5,11 +5,8 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
+
 import java.io.IOException;
 import java.util.Collection;
 import org.jdom.Document;
@@ -23,7 +20,6 @@ import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
 import javax.xml.xpath.XPathExpressionException;
 import org.jdom.Element;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 
 /**
  *
@@ -35,6 +31,7 @@ import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 
 public class ExbTimestampsChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     boolean missingTimestamp = false;
     Document doc;
 
@@ -42,7 +39,16 @@ public class ExbTimestampsChecker extends Checker implements CorpusFunction {
         //fixing option not available
         super(false);
     }
-        
+
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * One of the main functionalities of the feature; issues warnings if the
      * exs file has missing timestamps at the beginnings or ends of a segment chain.  
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/GenerateAnnotationPanel.java b/src/main/java/de/uni_hamburg/corpora/validation/GenerateAnnotationPanel.java
index 9407a56f..497629ea 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/GenerateAnnotationPanel.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/GenerateAnnotationPanel.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.File;
 import java.io.IOException;
@@ -39,6 +35,7 @@ import org.xml.sax.SAXException;
  */
 public class GenerateAnnotationPanel extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String genLoc = "";
     static Map<String, Collection<String>> annotationsInExbs = new HashMap<String, Collection<String>>(); // list for holding annotations in exbs
     boolean generateDoc = true; // flag for whether the file created or not
@@ -49,6 +46,15 @@ public class GenerateAnnotationPanel extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Creates the annotation panel with the annotationsinExbs.
      */
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/IAAFunctionality.java b/src/main/java/de/uni_hamburg/corpora/validation/IAAFunctionality.java
index 1abcf7b0..1f2542f3 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/IAAFunctionality.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/IAAFunctionality.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -36,6 +32,7 @@ import org.xml.sax.SAXException;
 
 public class IAAFunctionality extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String annotLoc = "";
     HashMap<String, HashMap<String, String>> annotations; // hash map for holding annotations of exb files
     HashMap<String, Collection<String>> distinctAnnotations; // hash map for storing distinct annots for each transcription file
@@ -50,6 +47,15 @@ public class IAAFunctionality extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main functionality of the feature; check if there is any mismatch between
      * the annotations of the same event/token between the different versions of
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/LanguageToolChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/LanguageToolChecker.java
index c0eccc89..0786bfee 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/LanguageToolChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/LanguageToolChecker.java
@@ -9,12 +9,7 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.BasicTranscriptionData;
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -44,6 +39,7 @@ import org.languagetool.language.GermanyGerman;
  */
 public class LanguageToolChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     static String filename;
     BasicTranscription bt;
     static BasicTranscriptionData btd;
@@ -62,6 +58,15 @@ public class LanguageToolChecker extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     /**
      * Main feature of the class: Checks Exmaralda .exb file for segmentation
      * problems.
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/NgexmaraldaCorpusChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/NgexmaraldaCorpusChecker.java
index f7987724..b8407e08 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/NgexmaraldaCorpusChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/NgexmaraldaCorpusChecker.java
@@ -5,10 +5,8 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
+
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Paths;
@@ -31,7 +29,6 @@ import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.xpath.XPath;
 import org.xml.sax.SAXException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 import java.net.URISyntaxException;
 import java.security.NoSuchAlgorithmException;
 import javax.xml.transform.TransformerException;
@@ -45,6 +42,7 @@ import org.exmaralda.partitureditor.fsm.FSMException;
  */
 public class NgexmaraldaCorpusChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     private Element communication;
     private Element basTrans;
     private Element segTrans;
@@ -55,13 +53,21 @@ public class NgexmaraldaCorpusChecker extends Checker implements CorpusFunction
     final String NSLC = "nslc";
 
     public NgexmaraldaCorpusChecker() {
-
         /**
          * No fix is applicable for this feature.
          */
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     public Report check() {
         Report stats = new Report();
         try {
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/RemoveAbsolutePaths.java b/src/main/java/de/uni_hamburg/corpora/validation/RemoveAbsolutePaths.java
index 2e847524..792b30e1 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/RemoveAbsolutePaths.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/RemoveAbsolutePaths.java
@@ -1,10 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -21,8 +17,7 @@ import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.xpath.XPath;
 import org.xml.sax.SAXException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.XMLData;
+
 import java.io.UnsupportedEncodingException;
 import java.security.NoSuchAlgorithmException;
 import javax.xml.parsers.ParserConfigurationException;
@@ -36,6 +31,7 @@ import org.exmaralda.partitureditor.fsm.FSMException;
  */
 public class RemoveAbsolutePaths extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     Document doc = null;
     Path pathRelative = null;
     String nameOfCorpusFolder;
@@ -46,6 +42,15 @@ public class RemoveAbsolutePaths extends Checker implements CorpusFunction {
         super(true);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     @Override
     public Report function(CorpusData cd, Boolean fix) throws SAXException, JexmaraldaException, ClassNotFoundException, JDOMException, URISyntaxException, TransformerException, ParserConfigurationException, IOException, MalformedURLException, XPathExpressionException {
 
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/RemoveAutoSaveExb.java b/src/main/java/de/uni_hamburg/corpora/validation/RemoveAutoSaveExb.java
index fd6e90c0..b62e8d2f 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/RemoveAutoSaveExb.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/RemoveAutoSaveExb.java
@@ -5,12 +5,8 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.XMLData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
+
 import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
@@ -19,7 +15,6 @@ import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.xpath.XPath;
 import org.xml.sax.SAXException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.net.URISyntaxException;
 import java.security.NoSuchAlgorithmException;
@@ -35,6 +30,7 @@ import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
  */
 public class RemoveAutoSaveExb extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     Document doc = null;
 
     public RemoveAutoSaveExb() {
@@ -42,6 +38,15 @@ public class RemoveAutoSaveExb extends Checker implements CorpusFunction {
         super(true);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     @Override
     public Report function(CorpusData cd, Boolean fix) throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
         try {
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/RemoveEmptyEvents.java b/src/main/java/de/uni_hamburg/corpora/validation/RemoveEmptyEvents.java
index 1a94a517..a3fd53ce 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/RemoveEmptyEvents.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/RemoveEmptyEvents.java
@@ -5,12 +5,8 @@
  */
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.XMLData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
+
 import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
@@ -19,7 +15,6 @@ import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.xpath.XPath;
 import org.xml.sax.SAXException;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import java.net.URISyntaxException;
 import java.security.NoSuchAlgorithmException;
@@ -35,6 +30,7 @@ import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
  */
 public class RemoveEmptyEvents extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     Document doc = null;
 
     public RemoveEmptyEvents() {
@@ -45,6 +41,15 @@ public class RemoveEmptyEvents extends Checker implements CorpusFunction {
     super(true);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     @Override
     public Report function(CorpusData cd, Boolean fix) throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
         try {
diff --git a/src/main/java/de/uni_hamburg/corpora/validation/XSLTChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/XSLTChecker.java
index 2f169893..68617f79 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/XSLTChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/XSLTChecker.java
@@ -1,11 +1,6 @@
 package de.uni_hamburg.corpora.validation;
 
-import de.uni_hamburg.corpora.Corpus;
-import de.uni_hamburg.corpora.CorpusData;
-import de.uni_hamburg.corpora.CorpusFunction;
-import de.uni_hamburg.corpora.CorpusIO;
-import static de.uni_hamburg.corpora.CorpusMagician.exmaError;
-import de.uni_hamburg.corpora.Report;
+import de.uni_hamburg.corpora.*;
 import de.uni_hamburg.corpora.utilities.TypeConverter;
 import de.uni_hamburg.corpora.utilities.XSLTransformer;
 import java.io.IOException;
@@ -39,6 +34,7 @@ import org.jdom.xpath.XPath;
  */
 public class XSLTChecker extends Checker implements CorpusFunction {
 
+    ExmaErrorList exmaError = new ExmaErrorList();
     String xslresource = "/xsl/nslc-checks.xsl";
     String filename = "";
     String UTTERANCEENDSYMBOLS = "[.!?…:]";
@@ -49,6 +45,15 @@ public class XSLTChecker extends Checker implements CorpusFunction {
         super(false);
     }
 
+    /**
+     * Gets exma error.
+     *
+     * @return the exma error
+     */
+    public ExmaErrorList getExmaError() {
+        return exmaError;
+    }
+
     @Override
     public Report function(CorpusData cd, Boolean fix) throws SAXException, JexmaraldaException, TransformerException, ParserConfigurationException, IOException, XPathExpressionException, MalformedURLException, JDOMException, URISyntaxException {
 
-- 
GitLab