corpus-services  1.0
ELANData.java
Go to the documentation of this file.
1 
9 package de.uni_hamburg.corpora;
10 
12 import org.exmaralda.partitureditor.jexmaralda.BasicTranscription;
13 import java.io.File;
14 import java.io.PrintWriter;
15 import java.nio.file.Files;
16 import java.nio.file.Paths;
17 import org.jdom.Document;
18 import org.jdom.input.SAXBuilder;
19 import org.xml.sax.SAXException;
20 import org.jdom.JDOMException;
21 import java.io.IOException;
22 import java.io.FileNotFoundException;
23 import java.net.MalformedURLException;
24 import java.net.URI;
25 import java.net.URISyntaxException;
26 import java.net.URL;
27 import java.util.logging.Level;
28 import java.util.logging.Logger;
29 import javax.xml.parsers.ParserConfigurationException;
30 import javax.xml.transform.TransformerException;
31 import javax.xml.xpath.XPathExpressionException;
32 import org.apache.commons.io.FilenameUtils;
33 import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
34 
40 public class ELANData implements CorpusData, ContentData, XMLData {
41 
42  URL url;
43  Document jdom = new Document();
44  String originalstring;
45  URL parenturl;
46  String filename;
47  String filenamewithoutending;
48 
49  public ELANData() {
50  }
51 
52  public ELANData(URL url) {
53  try {
54  this.url = url;
55  SAXBuilder builder = new SAXBuilder();
56  jdom = builder.build(url);
57  File f = new File(url.toURI());
58  originalstring = new String(Files.readAllBytes(Paths.get(url.toURI())), "UTF-8");
59  URI uri = url.toURI();
60  URI parentURI = uri.getPath().endsWith("/") ? uri.resolve("..") : uri.resolve(".");
61  parenturl = parentURI.toURL();
62  filename = FilenameUtils.getName(url.getPath());
63  filenamewithoutending = FilenameUtils.getBaseName(url.getPath());
64  } catch (JDOMException ex) {
65  Logger.getLogger(UnspecifiedXMLData.class.getName()).log(Level.SEVERE, null, ex);
66  } catch (IOException ex) {
67  Logger.getLogger(UnspecifiedXMLData.class.getName()).log(Level.SEVERE, null, ex);
68  } catch (URISyntaxException ex) {
69  Logger.getLogger(BasicTranscriptionData.class.getName()).log(Level.SEVERE, null, ex);
70  }
71  }
72 
73 
74  //I just use the hzsk-corpus-services\src\main\java\de\ uni_hamburg\corpora\
75  //utilities\PrettyPrinter.java here to pretty print the files, so they
76  //will always get pretty printed in the same way
77  //TODO
78  private String toPrettyPrintedXML() throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException{
79  PrettyPrinter pp = new PrettyPrinter();
80  String prettyCorpusData = pp.indent(toUnformattedString(), "event");
81  //String prettyCorpusData = pp.indent(bt.toXML(bt.getTierFormatTable()), "event");
82  return prettyCorpusData;
83  }
84 
85  public String toSaveableString() throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
86  return toPrettyPrintedXML();
87  }
88 
89  @Override
90  public URL getURL() {
91  return url;
92  }
93 
94  public Document getReadbtasjdom() {
95  return jdom;
96  }
97 
98  @Override
99  public String toUnformattedString() {
100  return originalstring;
101  }
102 
103  @Override
104  public void updateUnformattedString(String newUnformattedString) {
105  originalstring = newUnformattedString;
106  }
107 
108 
109  public void setOriginalString(String s) {
110  originalstring = s;
111  }
112 
113  @Override
114  public Document getJdom() {
115  return getReadbtasjdom();
116  }
117 
118  @Override
119  public void setJdom(Document doc) {
120  jdom = doc;
121  }
122 
123  public void setReadbtasjdom(Document doc) {
124  setJdom(doc);
125  }
126 
127  @Override
128  public URL getParentURL() {
129  return parenturl;
130  }
131 
132  @Override
133  public void setURL(URL nurl) {
134  url = nurl;
135  }
136 
137  @Override
138  public void setParentURL(URL url) {
139  parenturl = url;
140  }
141 
142  @Override
143  public String getFilename() {
144  return filename;
145  }
146 
147  @Override
148  public void setFilename(String s) {
149  filename = s;
150  }
151 
152  @Override
154  return filenamewithoutending;
155  }
156 
157  @Override
158  public void setFilenameWithoutFileEnding(String s) {
159  filenamewithoutending = s;
160  }
161 
162 }
String indent(String xml, String suppressedElements)
void updateUnformattedString(String newUnformattedString)
Definition: ELANData.java:104
void setReadbtasjdom(Document doc)
Definition: ELANData.java:123
void setOriginalString(String s)
Definition: ELANData.java:109
void setJdom(Document doc)
Definition: ELANData.java:119
void setFilenameWithoutFileEnding(String s)
Definition: ELANData.java:158