1 package de.uni_hamburg.corpora;
4 import java.io.IOException;
6 import java.net.URISyntaxException;
8 import java.nio.file.Files;
9 import java.nio.file.Paths;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
12 import javax.xml.parsers.ParserConfigurationException;
13 import javax.xml.transform.TransformerException;
14 import javax.xml.xpath.XPathExpressionException;
15 import org.apache.commons.io.FilenameUtils;
16 import org.jdom.Document;
17 import org.jdom.JDOMException;
18 import org.jdom.input.SAXBuilder;
19 import org.xml.sax.SAXException;
25 class AnnotationSpecification
implements CorpusData, XMLData {
27 String originalstring;
32 String filenamewithoutending;
34 public AnnotationSpecification(){
38 public AnnotationSpecification(URL url) {
41 SAXBuilder builder =
new SAXBuilder();
42 jdom = builder.build(url);
43 originalstring =
new String(Files.readAllBytes(Paths.get(url.toURI())),
"UTF-8");
44 URI uri = url.toURI();
45 URI parentURI = uri.getPath().endsWith(
"/") ? uri.resolve(
"..") : uri.resolve(
".");
46 parenturl = parentURI.toURL();
47 filename = FilenameUtils.getName(url.getPath());
48 filenamewithoutending = FilenameUtils.getBaseName(url.getPath());
49 }
catch (JDOMException ex) {
50 Logger.getLogger(CmdiData.class.getName()).log(Level.SEVERE, null, ex);
51 }
catch (IOException ex) {
52 Logger.getLogger(CmdiData.class.getName()).log(Level.SEVERE, null, ex);
53 }
catch (URISyntaxException ex) {
54 Logger.getLogger(AnnotationSpecification.class.getName()).log(Level.SEVERE, null, ex);
64 public String toSaveableString() throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
65 return toPrettyPrintedXML();
69 public String toUnformattedString() {
70 return originalstring;
73 private String toPrettyPrintedXML() throws TransformerException, ParserConfigurationException, SAXException, IOException, XPathExpressionException {
74 PrettyPrinter pp =
new PrettyPrinter();
75 String prettyCorpusData = pp.indent(toUnformattedString(),
"event");
77 return prettyCorpusData;
81 public void updateUnformattedString(String newUnformattedString) {
82 originalstring = newUnformattedString;
86 public URL getParentURL() {
91 public void setURL(URL nurl) {
96 public void setParentURL(URL url) {
101 public String getFilename() {
106 public void setFilename(String s) {
111 public String getFilenameWithoutFileEnding() {
112 return filenamewithoutending;
116 public void setFilenameWithoutFileEnding(String s) {
117 filenamewithoutending = s;
121 public Document getJdom() {
126 public void setJdom(Document njdom) {