annotate export_iprscan_to_Excel/source_files/iprscanToExcel_v20/src/be/cropdesign/iprscan/Main.java @ 0:a9762cd6e2e3 draft default tip

Uploaded
author basfplant
date Tue, 05 Mar 2013 04:00:19 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
1 package be.cropdesign.iprscan;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
2
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
3 import java.io.FileNotFoundException;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
4 import java.io.FileOutputStream;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
5 import java.io.IOException;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
6 import java.util.HashMap;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
7
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
8 //include POI 3.8-beta5 jars in classpath
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
9 import org.apache.poi.xssf.usermodel.XSSFCell;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
10 import org.apache.poi.xssf.usermodel.XSSFRow;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
11 import org.apache.poi.xssf.usermodel.XSSFSheet;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
12 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
13
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
14 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
15 * the .jar needs as parameters the path to the XML file with the summary tables and
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
16 * the .raw file with the iprscan results.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
17 * Further the path and filename of the exported Excel file (.xlsx) is given as a parameter.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
18 * java -jar iprscan.jar -xml $XML -raw $raw -excel $excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
19 * @author: Katrien Bernaerts and Domantas Motiejunas
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
20 * @date: 21/06/2012
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
21 * @affiliation: CropDesign N.V., a BASF Plant Science Company - Technologiepark 3, 9052 Zwijnaarde - Belgium
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
22 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
23 public class Main {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
24
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
25 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
26 * @param args
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
27 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
28 public static void main(String[] args) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
29 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
30 * store the arguments and their corresponding flags in a HashMap.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
31 * The availability of a HashMap with key (-flag) / value (argument) pairs makes it easier
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
32 * to handle the arguments and their flags.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
33 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
34 HashMap<String, String> arguments = new HashMap<String, String>();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
35 if (args.length == 0){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
36 System.err.println("No arguments were found at the command line.");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
37 } else {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
38 for(int i = 0; i < args.length; i++){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
39 // for the even args. args[0] is a flag, args[1] is the corresponding argument etc.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
40 if (i % 2 == 0){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
41 arguments.put(args[i], args[i+1]); // define key (-flag) - value (argument) pairs
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
42 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
43 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
44 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
45
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
46
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
47 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
48 * fetch the argument values for each flag in the FLAGS enumeration
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
49 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
50 String XMLFile = arguments.get(EnumFlags.XML.getFlag());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
51 String rawFile = arguments.get(EnumFlags.RAW.getFlag());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
52 String xlsxName = arguments.get(EnumFlags.EXCEL.getFlag());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
53
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
54 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
55 * create an Excel workbook using the Apache POI library
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
56 * ref: http://sanjaal.com/java/105/java-file/writing-to-excel-file-using-apache-poi/
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
57 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
58 XSSFWorkbook wb = new XSSFWorkbook();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
59 XSSFRow myRow = null;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
60 XSSFCell myCell = null;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
61
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
62 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
63 * determine which arguments (-xml or -raw or (-xml && -raw)) were used at the command line,
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
64 * and execute the methods corresponding with those arguments
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
65 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
66 if(arguments.containsKey(EnumFlags.XML.getFlag()) && arguments.containsKey(EnumFlags.RAW.getFlag())){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
67 parseXML(wb, myRow, myCell, XMLFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
68 parseRaw(wb, myRow, myCell, rawFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
69 } else if (arguments.containsKey(EnumFlags.XML.getFlag())) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
70 parseXML(wb, myRow, myCell, XMLFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
71 } else if (arguments.containsKey(EnumFlags.RAW.getFlag())) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
72 parseRaw(wb, myRow, myCell, rawFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
73 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
74
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
75 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
76 * write the parsed results to Excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
77 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
78 FileOutputStream fileOut;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
79 try {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
80 fileOut = new FileOutputStream(xlsxName);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
81 wb.write(fileOut);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
82 fileOut.close();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
83 } catch (FileNotFoundException fnf) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
84 System.err.println("Filenot found: " + fnf);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
85 } catch (IOException io) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
86 System.err.println("Input/output error: " + io);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
87 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
88 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
89
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
90 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
91 * generate Excel tabsheet 2 containing the summary tables obtained by parsing the XML file
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
92 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
93 public static void parseXML(XSSFWorkbook wb, XSSFRow myRow, XSSFCell myCell, String XMLFile){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
94 XSSFSheet sheet2 = wb.createSheet("summary tables");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
95 new XMLToExcel(wb, sheet2, myRow, myCell, XMLFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
96 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
97
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
98 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
99 * generate tabsheet3: write the iprscan results in the .raw file to Excel, tabsheet "iprscan results"
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
100 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
101 public static void parseRaw(XSSFWorkbook wb, XSSFRow myRow, XSSFCell myCell, String rawFile){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
102 XSSFSheet sheet3 = wb.createSheet("iprscan results");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
103 new RawToExcel(wb, sheet3,myRow, myCell, rawFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
104 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
105 }