Mercurial > repos > basfplant > interproscan_to_excel
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/export_iprscan_to_Excel/source_files/iprscanToExcel_v20/src/be/cropdesign/iprscan/Main.java Tue Mar 05 04:00:19 2013 -0500 @@ -0,0 +1,105 @@ +package be.cropdesign.iprscan; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; + +//include POI 3.8-beta5 jars in classpath +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * the .jar needs as parameters the path to the XML file with the summary tables and + * the .raw file with the iprscan results. + * Further the path and filename of the exported Excel file (.xlsx) is given as a parameter. + * java -jar iprscan.jar -xml $XML -raw $raw -excel $excel + * @author: Katrien Bernaerts and Domantas Motiejunas + * @date: 21/06/2012 + * @affiliation: CropDesign N.V., a BASF Plant Science Company - Technologiepark 3, 9052 Zwijnaarde - Belgium + */ +public class Main { + + /** + * @param args + */ + public static void main(String[] args) { + /* + * store the arguments and their corresponding flags in a HashMap. + * The availability of a HashMap with key (-flag) / value (argument) pairs makes it easier + * to handle the arguments and their flags. + */ + HashMap<String, String> arguments = new HashMap<String, String>(); + if (args.length == 0){ + System.err.println("No arguments were found at the command line."); + } else { + for(int i = 0; i < args.length; i++){ + // for the even args. args[0] is a flag, args[1] is the corresponding argument etc. + if (i % 2 == 0){ + arguments.put(args[i], args[i+1]); // define key (-flag) - value (argument) pairs + } + } + } + + + /* + * fetch the argument values for each flag in the FLAGS enumeration + */ + String XMLFile = arguments.get(EnumFlags.XML.getFlag()); + String rawFile = arguments.get(EnumFlags.RAW.getFlag()); + String xlsxName = arguments.get(EnumFlags.EXCEL.getFlag()); + + /* + * create an Excel workbook using the Apache POI library + * ref: http://sanjaal.com/java/105/java-file/writing-to-excel-file-using-apache-poi/ + */ + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFRow myRow = null; + XSSFCell myCell = null; + + /* + * determine which arguments (-xml or -raw or (-xml && -raw)) were used at the command line, + * and execute the methods corresponding with those arguments + */ + if(arguments.containsKey(EnumFlags.XML.getFlag()) && arguments.containsKey(EnumFlags.RAW.getFlag())){ + parseXML(wb, myRow, myCell, XMLFile); + parseRaw(wb, myRow, myCell, rawFile); + } else if (arguments.containsKey(EnumFlags.XML.getFlag())) { + parseXML(wb, myRow, myCell, XMLFile); + } else if (arguments.containsKey(EnumFlags.RAW.getFlag())) { + parseRaw(wb, myRow, myCell, rawFile); + } + + /* + * write the parsed results to Excel + */ + FileOutputStream fileOut; + try { + fileOut = new FileOutputStream(xlsxName); + wb.write(fileOut); + fileOut.close(); + } catch (FileNotFoundException fnf) { + System.err.println("Filenot found: " + fnf); + } catch (IOException io) { + System.err.println("Input/output error: " + io); + } + } + + /** + * generate Excel tabsheet 2 containing the summary tables obtained by parsing the XML file + */ + public static void parseXML(XSSFWorkbook wb, XSSFRow myRow, XSSFCell myCell, String XMLFile){ + XSSFSheet sheet2 = wb.createSheet("summary tables"); + new XMLToExcel(wb, sheet2, myRow, myCell, XMLFile); + } + + /** + * generate tabsheet3: write the iprscan results in the .raw file to Excel, tabsheet "iprscan results" + */ + public static void parseRaw(XSSFWorkbook wb, XSSFRow myRow, XSSFCell myCell, String rawFile){ + XSSFSheet sheet3 = wb.createSheet("iprscan results"); + new RawToExcel(wb, sheet3,myRow, myCell, rawFile); + } +}