6 package de.uni_hamburg.corpora.validation;
14 import java.io.IOException;
15 import java.util.Collection;
16 import java.util.List;
17 import org.jdom.Document;
18 import org.jdom.Element;
19 import org.jdom.JDOMException;
20 import org.jdom.xpath.XPath;
21 import org.xml.sax.SAXException;
24 import java.net.URISyntaxException;
25 import java.security.NoSuchAlgorithmException;
26 import javax.xml.parsers.ParserConfigurationException;
27 import javax.xml.transform.TransformerException;
28 import javax.xml.xpath.XPathExpressionException;
29 import org.exmaralda.partitureditor.fsm.FSMException;
30 import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
49 public Report function(
CorpusData cd, Boolean fix)
throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
55 report.
addCorrect(
function, cd,
"there are no empty events left");
59 Element e = (Element) o;
60 System.out.println(e);
62 e.getParent().removeContent(e);
70 cio.
write(cd, cd.getURL());
71 report.
addFix(
function, cd,
"removed empty event");
73 report.
addCritical(
function, cd,
"empty events need to be removed");
74 exmaError.addError(
function, cd.getURL().getFile(),
"",
"",
false,
"empty events need to be removed");
76 }
catch (JDOMException ex) {
85 Class cl = Class.forName(
"de.uni_hamburg.corpora.BasicTranscriptionData");
87 Class cl2 = Class.forName(
"de.uni_hamburg.corpora.SegmentedTranscriptionData");
90 }
catch (ClassNotFoundException ex) {
91 report.
addException(ex,
"unknown class not found error");
101 xp1 = XPath.newInstance(
"//event[not(text())]");
102 List allEmptyEvents = xp1.selectNodes(doc);
103 return allEmptyEvents;
111 String description =
"This class removes empty events present in exb and" 117 public Report function(
Corpus c, Boolean fix)
throws SAXException, IOException, ParserConfigurationException, JexmaraldaException, TransformerException, XPathExpressionException, NoSuchAlgorithmException, ClassNotFoundException, FSMException, URISyntaxException, JDOMException {
119 for (
CorpusData cdata : c.getBasicTranscriptionData()) {
120 stats.
merge(
function(cdata, fix));
122 for (
CorpusData sdata : c.getSegmentedTranscriptionData()) {
123 stats.
merge(
function(sdata, fix));
List findAllEmptyEvents(XMLData xml)
static ExmaErrorList exmaError
void addCritical(String description)
void setJdom(Document jdom)
void addCorrect(String statId, String description)
static String JdomDocument2String(org.jdom.Document jdomDocument)
void addException(Throwable e, String description)
Collection< Class<?extends CorpusData > > getIsUsableFor()
void write(CorpusData cd, URL url)
void addFix(String statId, CorpusData cd, String description)