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;
46 public Report function(
CorpusData cd, Boolean fix)
throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
52 report.
addCorrect(
function, cd,
"there is no autosave info left, nothing to do");
55 Element e = (Element) o;
56 System.out.println(e);
58 e.getParent().removeContent(e);
66 cio.
write(cd, cd.getURL());
67 report.
addFix(
function, cd,
"removed AutoSave info");
69 report.
addCritical(
function, cd,
"autosave info needs to be removed");
70 exmaError.addError(
"RemoveAutoSaveExb", cd.getURL().getFile(),
"",
"",
false,
"autosave info needs to be removed");
72 }
catch (JDOMException ex) {
81 Class cl = Class.forName(
"de.uni_hamburg.corpora.BasicTranscriptionData");
83 Class cl2 = Class.forName(
"de.uni_hamburg.corpora.SegmentedTranscriptionData");
86 }
catch (ClassNotFoundException ex) {
87 report.
addException(ex,
"unknown class not found error");
96 xp1 = XPath.newInstance(
"//head/meta-information/ud-meta-information/ud-information[@attribute-name='AutoSave']");
97 List allAutoSaveInfo = xp1.selectNodes(doc);
98 return allAutoSaveInfo;
107 String description =
"This class removes auto save information present in" 108 +
" exb and exs files.";
113 public Report function(
Corpus c, Boolean fix)
throws SAXException, IOException, ParserConfigurationException, JexmaraldaException, TransformerException, XPathExpressionException, NoSuchAlgorithmException, ClassNotFoundException, FSMException, URISyntaxException, JDOMException {
115 for (
CorpusData cdata : c.getBasicTranscriptionData()) {
116 stats.
merge(
function(cdata, fix));
118 for (
CorpusData sdata : c.getSegmentedTranscriptionData()) {
119 stats.
merge(
function(sdata, fix));
Collection< Class<?extends CorpusData > > getIsUsableFor()
static ExmaErrorList exmaError
void addCritical(String description)
List findAllAutoSaveInstances(XMLData xml)
void setJdom(Document jdom)
void addCorrect(String statId, String description)
static String JdomDocument2String(org.jdom.Document jdomDocument)
void addException(Throwable e, String description)
void write(CorpusData cd, URL url)
void addFix(String statId, CorpusData cd, String description)