diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/ELANTranscriptionChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/ELANTranscriptionChecker.java
index e43d85a4a9bc60c297d3833a0fadb1057fa20980..ecf61f17d5074bfd376b818cad4fd55f232e9a29 100644
--- a/src/main/java/de/uni_hamburg/corpora/validation/quest/ELANTranscriptionChecker.java
+++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/ELANTranscriptionChecker.java
@@ -1,13 +1,24 @@
package de.uni_hamburg.corpora.validation.quest;
+import de.uni_hamburg.corpora.Corpus;
import de.uni_hamburg.corpora.CorpusData;
import de.uni_hamburg.corpora.ELANData;
+import de.uni_hamburg.corpora.Report;
import de.uni_hamburg.corpora.utilities.quest.XMLTools;
+import org.exmaralda.partitureditor.fsm.FSMException;
+import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.xpath.XPath;
+import org.xml.sax.SAXException;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.xpath.XPathExpressionException;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.security.NoSuchAlgorithmException;
import java.util.*;
import java.util.logging.Logger;
@@ -20,14 +31,22 @@ public class ELANTranscriptionChecker extends TranscriptionChecker {
private final Logger logger = Logger.getLogger(getFunction());
- private final Set<String> tierIds = new HashSet<>();
-
public ELANTranscriptionChecker(Properties properties) {
super(properties);
- logger.info("PROPS: " + props);
- if (properties.containsKey("transcription-tiers")) {
- tierIds.addAll(Arrays.asList(properties.getProperty("transcription-tiers").split(",")));
+
+ }
+
+ @Override
+ public Report function(Corpus c, Boolean fix) throws NoSuchAlgorithmException, ClassNotFoundException, FSMException, URISyntaxException, SAXException, IOException, ParserConfigurationException, JexmaraldaException, TransformerException, XPathExpressionException, JDOMException {
+ Report report = new Report();
+ if (props.containsKey("transcription-tier-pattern")) {
+ Properties properties = new Properties(props);
+ properties.put("tier-pattern", props.getProperty("transcription-tier-pattern"));
+ ELANTierFinder etf = new ELANTierFinder(props);
+ report.merge(etf.function(c, fix));
}
+ report.merge(super.function(c, fix));
+ return report;
}
@Override
@@ -56,21 +75,10 @@ public class ELANTranscriptionChecker extends TranscriptionChecker {
else if (props.containsKey("transcription-method") &&
props.getProperty("transcription-method").equalsIgnoreCase("hiat")) {
logger.info("HIAT");
- tiers = Collections.checkedList(XPath.newInstance("//TIER[@LINGUISTIC_TYPE_REF=\"v\"]").selectNodes(dom),
- Element.class);
+ tiers.addAll(Collections.checkedList(XPath.newInstance("//TIER[@LINGUISTIC_TYPE_REF=\"v\"]").selectNodes(dom),
+ Element.class));
}
return tiers;
}
- @Override
- String getTranscriptionText(Element tier) {
- return XMLTools.showAllText(tier);
- }
-
- @Override
- public Map<String, String> getParameters() {
- Map<String,String> params = super.getParameters();
- params.put("transcription-tiers","List of transcription tier IDs separated by commas");
- return params;
- }
}