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);
+	}
+}