[Csvtosql-cvs] csvtosql_jdk50/src/net/sf/csv2sql/frontends/console ConsoleMain.java,NONE,1.1
Brought to you by:
davideconsonni
|
From: consonni d. <dav...@us...> - 2005-04-25 10:53:26
|
Update of /cvsroot/csvtosql/csvtosql_jdk50/src/net/sf/csv2sql/frontends/console In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15138/net/sf/csv2sql/frontends/console Added Files: ConsoleMain.java Log Message: no message --- NEW FILE: ConsoleMain.java --- /* Copyright (C) 2004 Davide Consonni <dco...@en...> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package net.sf.csv2sql.frontends.console; import java.io.File; import java.util.List; import java.util.Iterator; import net.sf.csv2sql.configuration.XmlConfigurator; import net.sf.csv2sql.writers.AbstractWriter; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.Options; import org.apache.commons.cli.PosixParser; /** * csv2sql console frontends * @author <a href="mailto:dco...@en...">Davide Consonni</a> */ public class ConsoleMain { private static ConsoleMain self = new ConsoleMain(); /** * singleton pattern * return THE istance of main * @return istance of ConsoleMain */ public static ConsoleMain getInstance() { return self; } private static String usage() { return " Usage: csv2sql -d filename [-b]\n\n"+ " --descriptor [-d] file containing conversion descriptor\n"+ " --benchmark [-b] misure conversion time in millis\n"+ " --version [-v] display version information\n"+ " --help [-h] display this help\n"; } private static String version() { return "csv2sql, Copyright (C) 2004 Davide Consonni <dco...@en...>\n"+ "Convert a csv file in sql file\n\n"; } /** * buisness logic * @param descriptor point to conversion descriptor file * @throws Exception if any error occured */ public void run(File descriptor) throws Exception { //read configuration XmlConfigurator config = new XmlConfigurator(); config.load(descriptor); if (config.CURRENT_DESCRIPTOR_VERSION != config.getDescriptorVersion()) { throw new Exception("version mismatch"); } //generate statements config.getRender().render(); //output statements Iterator it = config.getWriters().iterator(); while (it.hasNext()) { AbstractWriter writer = (AbstractWriter)it.next(); writer.write(); } } /** * program entry point * @param args argument list */ public static void main(String args []) { try { CommandLineParser parser = new PosixParser(); Options options = new Options(); options.addOption( "d", "descriptor", true, "descriptor file"); options.addOption( "b", "benchmark", false, "misure conversion time in millis" ); options.addOption( "v", "version", false, "display csv2sql version" ); options.addOption( "h", "help", false, "display help" ); CommandLine line = parser.parse( options, args ); //no arguments ? no party. if (args.length <= 0) { System.out.println(version()); System.out.println(usage()); System.exit(1); } //display version version if( line.hasOption( "v" ) ) { System.out.println(version()); System.exit(0); } //display version if( line.hasOption( "h" ) ) { System.out.println(version()); System.out.println(usage()); System.exit(0); } //read descriptor filename File descriptor = null; if( line.hasOption( "d" ) ) { try { descriptor = new File(line.getOptionValue("d")); } catch (Exception e) { System.exit(1); } } else { System.out.println(version()); System.out.println(usage()); System.out.println("ERROR: option --descriptor is mandatory.\n"); System.exit(1); } //start benchmark long start = System.currentTimeMillis(); // RUN CONVERSION ConsoleMain.getInstance().run(descriptor); if (line.hasOption( "b" )) { //stop benchmark and print results System.out.println("\nCsv converted in: "+String.valueOf(System.currentTimeMillis()-start)+" ms"); } } catch( Exception e ) { e.printStackTrace(); } } } |