corpus-services  1.0
Converter.java
Go to the documentation of this file.
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 package de.uni_hamburg.corpora.conversion;
7 
13 import java.io.IOException;
14 import java.net.URISyntaxException;
15 import java.security.NoSuchAlgorithmException;
16 import java.util.ArrayList;
17 import java.util.Collection;
18 import java.util.logging.Level;
19 import java.util.logging.Logger;
20 import javax.xml.parsers.ParserConfigurationException;
21 import javax.xml.transform.TransformerException;
22 import javax.xml.xpath.XPathExpressionException;
23 import org.exmaralda.partitureditor.fsm.FSMException;
24 import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
25 import org.jdom.JDOMException;
26 import org.xml.sax.SAXException;
27 
38 public abstract class Converter implements CorpusFunction {
39 
44  //I will keep the settings for now, so they can stay as they are for the Moment
45  //and we know where to refactor when we change them
46  ValidatorSettings settings;
47  CorpusData cd;
48  Report report;
49  Collection<Class<? extends CorpusData>> IsUsableFor = new ArrayList<Class<? extends CorpusData>>();
50  final String function;
51  Boolean canfix = false;
52 
53  Converter() {
54  function = this.getClass().getSimpleName();
55  }
56 
57  public Report execute(CorpusData cd) {
58  report = new Report();
59  try {
60  report = function(cd);
61  return report;
62  } catch (JexmaraldaException je) {
63  report.addException(je, function, cd, "Unknown parsing error");
64  } catch (JDOMException jdome) {
65  report.addException(jdome, function, cd, "Unknown parsing error");
66  } catch (SAXException saxe) {
67  report.addException(saxe, function, cd, "Unknown parsing error");
68  } catch (IOException ioe) {
69  report.addException(ioe, function, cd, "File reading error");
70  } catch (FSMException ex) {
71  report.addException(ex, function, cd, "File reading error");
72  } catch (URISyntaxException ex) {
73  report.addException(ex, function, cd, "File reading erro");
74  } catch (ParserConfigurationException ex) {
75  report.addException(ex, function, cd, "File reading error");
76  } catch (TransformerException ex) {
77  report.addException(ex, function, cd, "File reading error");
78  } catch (XPathExpressionException ex) {
79  report.addException(ex, function, cd, "File reading error");
80  } catch (ClassNotFoundException ex) {
81  report.addException(ex, function, cd, "File reading error");
82  } catch (NoSuchAlgorithmException ex) {
83  report.addException(ex, function, cd, "File reading error");
84  } catch (Exception ex) {
85  Logger.getLogger(Converter.class.getName()).log(Level.SEVERE, null, ex);
86  }
87  return report;
88  }
89 
90  public Report execute(Corpus c) {
91  report = new Report();
92  try {
93  report = function(c);
94  return report;
95  } catch (JexmaraldaException je) {
96  report.addException(je, function, cd, "Unknown parsing error");
97  } catch (JDOMException jdome) {
98  report.addException(jdome, function, cd, "Unknown parsing error");
99  } catch (SAXException saxe) {
100  report.addException(saxe, function, cd, "Unknown parsing error");
101  } catch (IOException ioe) {
102  report.addException(ioe, function, cd, "File reading error");
103  } catch (FSMException ex) {
104  report.addException(ex, function, cd, "File reading error");
105  } catch (URISyntaxException ex) {
106  report.addException(ex, function, cd, "File reading erro");
107  } catch (ParserConfigurationException ex) {
108  report.addException(ex, function, cd, "File reading error");
109  } catch (TransformerException ex) {
110  report.addException(ex, function, cd, "File reading error");
111  } catch (XPathExpressionException ex) {
112  report.addException(ex, function, cd, "File reading error");
113  } catch (ClassNotFoundException ex) {
114  report.addException(ex, function, cd, "File reading error");
115  } catch (NoSuchAlgorithmException ex) {
116  report.addException(ex, function, cd, "File reading error");
117  } catch (Exception ex) {
118  Logger.getLogger(Converter.class.getName()).log(Level.SEVERE, null, ex);
119  }
120  return report;
121  }
122 
123  public Report execute(CorpusData cd, boolean fix) {
124  return execute(cd);
125  }
126 
127  public Report execute(Corpus c, boolean fix) {
128  return execute(c);
129  }
130 
131  public abstract Report function(Corpus c) throws Exception, NoSuchAlgorithmException, ClassNotFoundException, FSMException, URISyntaxException, SAXException, IOException, ParserConfigurationException, JexmaraldaException, TransformerException, XPathExpressionException, JDOMException;
132 
133  ;
134 
135  public abstract Report function(CorpusData cd) throws Exception, NoSuchAlgorithmException, ClassNotFoundException, FSMException, URISyntaxException, SAXException, IOException, ParserConfigurationException, JexmaraldaException, TransformerException, XPathExpressionException, JDOMException;
136 
137  ;
138 
139 
140  @Override
141  public abstract Collection<Class<? extends CorpusData>> getIsUsableFor();
142 
143  public void setIsUsableFor(Collection<Class<? extends CorpusData>> cdc) {
144  for (Class cl : cdc) {
145  IsUsableFor.add(cl);
146  }
147  }
148 
149  public String getFunction() {
150  return function;
151  }
152 
153  public Boolean getCanFix() {
154  return canfix;
155  }
156 
157 }
Report execute(Corpus c, boolean fix)
Definition: Converter.java:127
Report execute(CorpusData cd, boolean fix)
Definition: Converter.java:123
void addException(Throwable e, String description)
Definition: Report.java:287
abstract Collection< Class<?extends CorpusData > > getIsUsableFor()
void setIsUsableFor(Collection< Class<?extends CorpusData >> cdc)
Definition: Converter.java:143