package org.hadatac.data.loader.util; import java.util.ArrayList; import java.util.List; import static org.kohsuke.args4j.ExampleMode.ALL; import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; import org.kohsuke.args4j.Option; public class Arguments { @Option(name="-i",required=true,usage="input file",metaVar="input_file") private String inputPath; @Option(name="-o",required=false,usage="output path for normalized csv",metaVar="output_path") private String outputPath = "tmp/"; @Option(name="-t",required=false,usage="temporary path",metaVar="temp_path") private String tempPath = "tmp/"; @Option(name="-l",required=false,usage="log path",metaVar="log_path") private String logPath = "logs/"; @Option(name="-m",required=true,usage="input type",metaVar="input_type") private String inputType; @Option(name="-s",required=false,usage="what to parse: both/data/metadata",metaVar="what_to_parse") private String steps = "both"; @Option(name="-v",required=false,usage="verbose mode") private boolean verbose = false; @Option(name="-pv",required=false,usage="preamble validation only mode") private boolean pv = false; @Argument private List<String> arguments = new ArrayList<String>(); public void parse(String []args) throws Exception { CmdLineParser parser = new CmdLineParser(this); parser.setUsageWidth(80); try { parser.parseArgument(args); /* if (arguments.isEmpty()) { throw new CmdLineException(parser,"No argument is given"); }*/ } catch (CmdLineException e) { System.err.println(e.getMessage()); System.err.println("java SampleMain [options...] arguments..."); parser.printUsage(System.err); System.err.println(); System.err.println(" Example: java SampleMain"+parser.printExample(ALL)); throw new Exception(); } //System.out.println(out); /* System.out.println("-i was " + inputPath); System.out.println("-o was " + outputPath); System.out.println("-t was " + tempPath); System.out.println("-l was " + logPath); System.out.println("-s was " + steps); System.out.println("-pv was " + pv); System.out.println("other arguments are:"); for( String s : arguments ) System.out.println(s); */ } public String getLogPath() { return logPath; } public void setLogPath(String logPath) { this.logPath = logPath; } public String getInputPath() { return inputPath; } public void setInputPath(String inputPath) { this.inputPath = inputPath; } public String getOutputPath() { return outputPath; } public void setOutputPath(String outputPath) { this.outputPath = outputPath; } public String getTempPath() { return tempPath; } public void setTempPath(String tempPath) { this.tempPath = tempPath; } public boolean isVerbose() { return verbose; } public void setVerbose(boolean verbose) { this.verbose = verbose; } public boolean isPv() { return pv; } public void setPv(boolean pv) { this.pv = pv; } public String getInputType() { return inputType; } public void setInputType(String inputType) { this.inputType = inputType; } }