「付加行」機能 実装(いちおう)完了。
[nucalgen] / nucalgen / src / main / java / jp / satomichan / nucalgen / addition / AdditionUtil.java
1 package jp.satomichan.nucalgen.addition;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7
8 import javax.xml.parsers.ParserConfigurationException;
9 import javax.xml.parsers.SAXParserFactory;
10
11 import org.apache.commons.digester.Digester;
12 import org.xml.sax.SAXException;
13
14 public class AdditionUtil {
15
16         public static AdditionConfig additionFileReader(File reportXmlFile){
17                 SAXParserFactory factory = SAXParserFactory.newInstance();
18                 javax.xml.parsers.SAXParser parser = null;
19                 AdditionConfig addition = null;
20
21                 try {
22                         parser = factory.newSAXParser();
23
24                         Digester digester = new Digester(parser);
25
26                         digester.addObjectCreate("addition", AdditionConfig.class);
27                         digester.addObjectCreate("addition/row", AcRow.class);
28
29                         digester.addSetNext("addition/row", "addRow");
30                         digester.addSetProperties("addition/row");
31
32                         digester.addObjectCreate("addition/row/cell", AcCell.class);
33
34                         digester.addSetNext("addition/row/cell", "addCell");
35                         digester.addBeanPropertySetter("addition/row/cell/formula");
36                         digester.addBeanPropertySetter("addition/row/cell/value");
37                         digester.addBeanPropertySetter("addition/row/cell/alias");
38
39                         //パースする
40                         InputStream in;
41
42                         in = new FileInputStream(reportXmlFile);
43                         addition = (AdditionConfig)digester.parse(in);
44                         
45                         
46                         
47                 } catch (IOException | SAXException | ParserConfigurationException e) {
48                         throw new RuntimeException(e);
49                 }
50
51                 return addition;
52         }
53         
54 }