Java源码示例:gnu.getopt.LongOpt
示例1
/**
* Looks up for the conf property in the arguments passed to the executable
*
* @param opts command line arguments passed to the executable
* @param confChar the short option corresponding to the conf property
* @return
*/
protected String lookupConfProperty(String[] opts, char confChar) {
LongOpt[] longOptions = new LongOpt[1];
longOptions[0] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, confChar);
Getopt g = new Getopt("Executable", opts, confChar + ":", longOptions, false);
g.setOpterr(false);
String propertyFilePath = null;
int option = 0;
while ((option = g.getopt()) != -1) {
if (option == confChar) {
propertyFilePath = g.getOptarg();
break;
}
}
if (propertyFilePath == null) {
// PM-1018 if no --conf provided fall back to pegasus.properties
// in the current working directory from where command is called
propertyFilePath = "." + File.separatorChar + Executable.DEFAULT_PROPERTIES_FILE;
}
return propertyFilePath;
}
示例2
public LongOpt[] generateValidOptions() {
LongOpt[] longopts = new LongOpt[16];
longopts[0] = new LongOpt("add", LongOpt.NO_ARGUMENT, null, 'a');
longopts[1] = new LongOpt("delete", LongOpt.NO_ARGUMENT, null, 'd');
longopts[2] = new LongOpt("query", LongOpt.NO_ARGUMENT, null, 'q');
longopts[3] = new LongOpt("lfn", LongOpt.REQUIRED_ARGUMENT, null, 'l');
longopts[4] = new LongOpt("pfn", LongOpt.REQUIRED_ARGUMENT, null, 'p');
longopts[5] = new LongOpt("profile", LongOpt.REQUIRED_ARGUMENT, null, 'e');
longopts[6] = new LongOpt("type", LongOpt.REQUIRED_ARGUMENT, null, 't');
longopts[7] = new LongOpt("file", LongOpt.REQUIRED_ARGUMENT, null, 'f');
longopts[8] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
longopts[9] = new LongOpt("version", LongOpt.NO_ARGUMENT, null, 'V');
longopts[10] = new LongOpt("verbose", LongOpt.NO_ARGUMENT, null, 'v');
longopts[11] = new LongOpt("resource", LongOpt.REQUIRED_ARGUMENT, null, 'r');
longopts[12] = new LongOpt("system", LongOpt.REQUIRED_ARGUMENT, null, 's');
longopts[13] = new LongOpt("xml", LongOpt.NO_ARGUMENT, null, 'x');
longopts[14] = new LongOpt("oldformat", LongOpt.NO_ARGUMENT, null, 'o');
longopts[15] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c');
return longopts;
}
示例3
/**
* Generates the list of valid options for the tc-converter client
*
* @return LongOpt[] list of valid options
*/
public LongOpt[] generateValidOptions() {
LongOpt[] longopts = new LongOpt[10];
longopts[0] = new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i');
longopts[1] = new LongOpt("iformat", LongOpt.REQUIRED_ARGUMENT, null, 'I');
longopts[2] = new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o');
longopts[3] = new LongOpt("oformat", LongOpt.REQUIRED_ARGUMENT, null, 'O');
longopts[4] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
longopts[5] = new LongOpt("version", LongOpt.NO_ARGUMENT, null, 'V');
longopts[6] = new LongOpt("verbose", LongOpt.NO_ARGUMENT, null, 'v');
longopts[7] = new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q');
longopts[8] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c');
longopts[9] = new LongOpt("expand", LongOpt.NO_ARGUMENT, null, 'e');
return longopts;
}
示例4
/**
* Creates a set of GNU long options.
*
* @return an initialized array with the options
*/
protected LongOpt[] generateValidOptions() {
LongOpt[] lo = new LongOpt[11];
lo[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
lo[1] = new LongOpt("version", LongOpt.NO_ARGUMENT, null, 'V');
lo[2] = new LongOpt("file", LongOpt.REQUIRED_ARGUMENT, null, 'f');
lo[3] = new LongOpt("pref", LongOpt.REQUIRED_ARGUMENT, null, 'p');
lo[4] = new LongOpt("insert", LongOpt.REQUIRED_ARGUMENT, null, 'i');
lo[5] = new LongOpt("delete", LongOpt.REQUIRED_ARGUMENT, null, 'd');
lo[6] = new LongOpt("lookup", LongOpt.REQUIRED_ARGUMENT, null, 'l');
lo[7] = new LongOpt("verbose", LongOpt.NO_ARGUMENT, null, 'v');
lo[8] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c');
lo[9] = new LongOpt("meta", LongOpt.REQUIRED_ARGUMENT, null, 'm');
lo[10] = new LongOpt("prefix", LongOpt.REQUIRED_ARGUMENT, null, 'P');
return lo;
}
示例5
/**
* Looks up for the conf property in the command line arguments passed to the RCClient
*
* @param opts command line arguments
* @param confChar short char corresponding to the conf property
* @return path to the property file
*/
private String lookupConfProperty(String[] opts, char confChar) {
LongOpt[] longOptions = new LongOpt[1];
longOptions[0] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, confChar);
// Create a clone before passing it to the GetOpts
// Getopts changes the ordering of the array.
String[] optsClone = new String[opts.length];
for (int i = 0; i < opts.length; i++) {
optsClone[i] = opts[i];
}
Getopt g = new Getopt("RCClient", optsClone, confChar + ":", longOptions, false);
g.setOpterr(false);
String propertyFilePath = null;
int option = 0;
while ((option = g.getopt()) != -1) {
if (option == confChar) {
propertyFilePath = g.getOptarg();
break;
}
}
return propertyFilePath;
}
示例6
/**
* Add a long argumentless option with the specified listener.
*/
public void addLong(ListenerIF listener, String name, char c) {
// No argument
largs.add(new LongOpt(name, LongOpt.NO_ARGUMENT, null, c));
// Register listener
listeners.put(new Integer(c), listener);
}
示例7
/**
* Add a long option with argument with the specified listener.
*/
public void addLong(ListenerIF listener, String name, char c, boolean req_arg) {
if (req_arg)
// Required argument
largs.add(new LongOpt(name, LongOpt.REQUIRED_ARGUMENT, null, c));
else
// Optional argument
largs.add(new LongOpt(name, LongOpt.OPTIONAL_ARGUMENT, null, c));
// Register listener
listeners.put(new Integer(c), listener);
}
示例8
/**
* Parse the command line arguments and notify option listeners.
*/
public void parse() throws OptionsException {
Getopt g = new Getopt(application, argv, sargs.toString(), largs.toArray(new LongOpt[] {}));
g.setOpterr(false); // We'll do our own error handling
int c;
while ((c = g.getopt()) != -1) {
switch (c) {
case '?':
// Get invalid option
int ix = g.getOptind();
String option = argv[(ix == 0 ? 0 : ix-1)];
throw new OptionsException(option, g.getOptarg());
default:
ListenerIF listener = listeners.get(new Integer(c));
if (listener != null)
listener.processOption((char)c, g.getOptarg());
else
System.err.println ("Warning: option '" + (char)c + "' ignored");
break;
}
}
// Get non-option arguments
for (int i = g.getOptind(); i < argv.length ; i++) {
arguments.add(argv[i]);
}
}
示例9
/**
* Parses the command line arguments using GetOpt and returns a <code>PlannerOptions</code>
* contains all the options passed by the user at the command line.
*
* @param args the arguments passed by the user at command line.
*/
public void parseCommandLineArguments(String[] args) {
LongOpt[] longOptions = generateValidOptions();
Getopt g = new Getopt("properties-converter", args, "i:o:c:h", longOptions, false);
g.setOpterr(false);
int option = 0;
while ((option = g.getopt()) != -1) {
// System.out.println("Option tag " + (char)option);
switch (option) {
case 'i': // input
this.mInputFile = g.getOptarg();
break;
case 'h': // help
printLongVersion();
System.exit(0);
return;
case 'o': // output directory
this.mOutputDir = g.getOptarg();
break;
case 'c':
// do nothing
break;
default: // same as help
printShortVersion();
throw new RuntimeException(
"Incorrect option or option usage " + (char) g.getOptopt());
}
}
}
示例10
/**
* Tt generates the LongOpt which contain the valid options that the command will accept.
*
* @return array of <code>LongOpt</code> objects , corresponding to the valid options
*/
public LongOpt[] generateValidOptions() {
LongOpt[] longopts = new LongOpt[4];
longopts[0] = new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i');
longopts[1] = new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o');
longopts[2] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
longopts[3] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c');
return longopts;
}
示例11
public LongOpt[] generateValidOptions() {
LongOpt[] longopts = new LongOpt[9];
longopts[0] = new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i');
longopts[1] = new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o');
longopts[2] = new LongOpt("oformat", LongOpt.REQUIRED_ARGUMENT, null, 'O');
longopts[3] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
longopts[4] = new LongOpt("version", LongOpt.NO_ARGUMENT, null, 'V');
longopts[5] = new LongOpt("verbose", LongOpt.NO_ARGUMENT, null, 'v');
longopts[6] = new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q');
longopts[7] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c');
longopts[8] = new LongOpt("expand", LongOpt.NO_ARGUMENT, null, 'e');
return longopts;
}
示例12
/**
* Tt generates the LongOpt which contain the valid options that the command will accept.
*
* @return array of <code>LongOpt</code> objects , corresponding to the valid options
*/
public LongOpt[] generateValidOptions() {
LongOpt[] longopts = new LongOpt[30];
longopts[0] = new LongOpt("dir", LongOpt.REQUIRED_ARGUMENT, null, '8');
longopts[1] = new LongOpt("dax", LongOpt.REQUIRED_ARGUMENT, null, 'd');
longopts[2] = new LongOpt("sites", LongOpt.REQUIRED_ARGUMENT, null, 's');
longopts[3] = new LongOpt("verbose", LongOpt.NO_ARGUMENT, null, 'v');
longopts[4] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
longopts[5] = new LongOpt("force", LongOpt.NO_ARGUMENT, null, 'f');
longopts[6] = new LongOpt("submit", LongOpt.NO_ARGUMENT, null, 'S');
longopts[7] = new LongOpt("version", LongOpt.NO_ARGUMENT, null, 'V');
longopts[8] = new LongOpt("randomdir", LongOpt.OPTIONAL_ARGUMENT, null, 'r');
longopts[9] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, '6');
longopts[10] = new LongOpt("cache", LongOpt.REQUIRED_ARGUMENT, null, 'c');
// collapsing for mpi
longopts[11] = new LongOpt("cluster", LongOpt.REQUIRED_ARGUMENT, null, 'C');
// more deferred planning stuff
longopts[12] = new LongOpt("basename", LongOpt.REQUIRED_ARGUMENT, null, 'b');
longopts[13] = new LongOpt("nocleanup", LongOpt.NO_ARGUMENT, null, 'n');
longopts[14] = new LongOpt("deferred", LongOpt.NO_ARGUMENT, null, 'z');
longopts[15] = new LongOpt("relative-dir", LongOpt.REQUIRED_ARGUMENT, null, '2');
longopts[16] = new LongOpt("job-prefix", LongOpt.REQUIRED_ARGUMENT, null, 'j');
longopts[17] = new LongOpt("rescue", LongOpt.REQUIRED_ARGUMENT, null, '3');
longopts[18] = new LongOpt("forward", LongOpt.REQUIRED_ARGUMENT, null, 'F');
longopts[19] = new LongOpt("X", LongOpt.REQUIRED_ARGUMENT, null, 'X');
longopts[20] = new LongOpt("relative-submit-dir", LongOpt.REQUIRED_ARGUMENT, null, '4');
longopts[21] = new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q');
longopts[22] = new LongOpt("inherited-rc-files", LongOpt.REQUIRED_ARGUMENT, null, '5');
longopts[23] = new LongOpt("force-replan", LongOpt.NO_ARGUMENT, null, '7');
longopts[24] = new LongOpt("staging-site", LongOpt.REQUIRED_ARGUMENT, null, '9');
longopts[25] = new LongOpt("input-dir", LongOpt.REQUIRED_ARGUMENT, null, 'I');
longopts[26] = new LongOpt("output-dir", LongOpt.REQUIRED_ARGUMENT, null, 'O');
longopts[27] = new LongOpt("output-sites", LongOpt.REQUIRED_ARGUMENT, null, 'o');
longopts[28] = new LongOpt("output-map", LongOpt.REQUIRED_ARGUMENT, null, 'm');
longopts[29] = new LongOpt("cleanup", LongOpt.REQUIRED_ARGUMENT, null, '1');
return longopts;
}
示例13
/**
* Generates the list of valid options for the tc-converter client
*
* @return LongOpt[] list of valid options
*/
public LongOpt[] generateValidOptions() {
LongOpt[] longopts = new LongOpt[10];
longopts[0] = new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i');
longopts[1] = new LongOpt("iformat", LongOpt.REQUIRED_ARGUMENT, null, 'I');
longopts[2] = new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o');
longopts[3] = new LongOpt("oformat", LongOpt.REQUIRED_ARGUMENT, null, 'O');
longopts[4] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
longopts[5] = new LongOpt("version", LongOpt.NO_ARGUMENT, null, 'V');
longopts[6] = new LongOpt("verbose", LongOpt.NO_ARGUMENT, null, 'v');
longopts[7] = new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q');
longopts[8] = new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c');
longopts[9] = new LongOpt("expand", LongOpt.NO_ARGUMENT, null, 'e');
return longopts;
}
示例14
public static boolean getConfigFromArgv(String argv[])
{
int c;
String arg;
LongOpt [] longopts = new LongOpt[9];
longopts[0] = new LongOpt(SERVER_MODE, LongOpt.NO_ARGUMENT, null, 'S');
longopts[1] = new LongOpt(METHOD, LongOpt.REQUIRED_ARGUMENT, null, 'm');
longopts[2] = new LongOpt(PASSWORD, LongOpt.REQUIRED_ARGUMENT, null, 'k');
longopts[3] = new LongOpt(SERVER_PORT, LongOpt.REQUIRED_ARGUMENT, null, 'p');
longopts[4] = new LongOpt(SERVER_ADDR, LongOpt.REQUIRED_ARGUMENT, null, 's');
longopts[5] = new LongOpt(LOCAL_PORT, LongOpt.REQUIRED_ARGUMENT, null, 'l');
longopts[6] = new LongOpt(CONFIG, LongOpt.REQUIRED_ARGUMENT, null, 'c');
longopts[7] = new LongOpt(TIMEOUT, LongOpt.REQUIRED_ARGUMENT, null, 't');
longopts[8] = new LongOpt(HELP, LongOpt.NO_ARGUMENT, null, 'h');
Getopt g = new Getopt("shadowsocks", argv, "Sm:k:p:s:l:c:t:h", longopts);
while ((c = g.getopt()) != -1)
{
switch(c)
{
case 'm':
arg = g.getOptarg();
log.debug("CMD:Crypto method: " + arg);
GlobalConfig.get().setMethod(arg);
break;
case 'k':
arg = g.getOptarg();
log.debug("CMD:Password: " + arg);
GlobalConfig.get().setPassowrd(arg);
break;
case 'p':
arg = g.getOptarg();
int port = Integer.parseInt(arg);
log.debug("CMD:Server port: " + port);
GlobalConfig.get().setPort(port);
break;
case 'S':
log.debug("CMD:Server mode.");
GlobalConfig.get().setServerMode(true);
break;
case 's':
arg = g.getOptarg();
log.debug("CMD:Server address: " + arg);
GlobalConfig.get().setServer(arg);
break;
case 'l':
arg = g.getOptarg();
int lport = Integer.parseInt(arg);
log.debug("CMD:Local port: " + lport);
GlobalConfig.get().setLocalPort(lport);
break;
case 'c':
arg = g.getOptarg();
log.debug("CMD:Config file: " + arg);
GlobalConfig.get().setConfigFile(arg);
break;
case 't':
arg = g.getOptarg();
int timeout = Integer.parseInt(arg);
log.debug("CMD:timeout: " + timeout);
GlobalConfig.get().setTimeout(timeout);
break;
case 'h':
case '?':
default:
help();
return false;
}
}
return true;
}
示例15
/**
* Call the correct commands depending on options.
*
* @param opts Command options
*/
public void executeCommand() throws IOException {
LongOpt[] longOptions = generateValidOptions();
Getopt g =
new Getopt(
"SCClient", getCommandLineOptions(), "elhvqVi:o:O:c:", longOptions, false);
int option = 0;
while ((option = g.getopt()) != -1) {
switch (option) {
case 'e': // expand
mDoVariableExpansion = true;
break;
case 'i': // input
StringTokenizer str = new StringTokenizer(g.getOptarg(), ",");
mInputFiles = new ArrayList<String>(str.countTokens());
while (str.hasMoreTokens()) {
mInputFiles.add(str.nextToken());
}
break;
case 'o': // output
mOutputFile = g.getOptarg();
break;
case 'O': // oformat
mOutputFormat = g.getOptarg();
break;
case 'h': // help
printLongVersion();
System.exit(0);
break;
case 'V': // version
System.out.println(getGVDSVersion());
System.exit(0);
break;
case 'v': // Verbose mode
incrementLogging();
break;
case 'q': // Quiet mode
decrementLogging();
break;
case 'c': // conf
// do nothing
break;
default:
mLogger.log(
"Unrecognized option or Invalid argument to option : "
+ (char) g.getOptopt(),
LogManager.FATAL_MESSAGE_LEVEL);
printShortVersion();
System.exit(1);
}
}
if (getLoggingLevel() >= 0) {
// set the logging level only if -v was specified
// else bank upon the the default logging level
mLogger.setLevel(getLoggingLevel());
} else {
// set log level to FATAL only
mLogger.setLevel(LogManager.FATAL_MESSAGE_LEVEL);
}
if (mInputFiles == null
|| mInputFiles.isEmpty()
|| mOutputFile == null
|| mOutputFile.isEmpty()) {
mLogger.log(
"Please provide the input and the output file", LogManager.ERROR_MESSAGE_LEVEL);
this.printShortVersion();
System.exit(1);
}
String result = null;
try {
result = this.parseInputFiles(mInputFiles, mInputFormat, mOutputFormat);
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("No enum constant")) {
mLogger.log(
"Consider using the -e option. Conversion fails if you use variables for specifying enum values in the input site catalog.",
e,
LogManager.ERROR_MESSAGE_LEVEL);
} else {
throw e;
}
}
if (result != null) {
// write out the result to the output file
this.toFile(mOutputFile, result);
}
}
示例16
/**
* Call the correct commands depending on options.
*
* @param opts Command options
*/
public void executeCommand() throws IOException {
String[] opts = getCommandLineOptions();
if (opts.length == 0) {
mLogger.log("Please provide the required options.", LogManager.ERROR_MESSAGE_LEVEL);
this.printShortVersion();
System.exit(1);
}
LongOpt[] longOptions = generateValidOptions();
Getopt g = new Getopt("TCConverter", opts, "ehVvqI:i:O:o:c:", longOptions, false);
int option = 0;
int noOfOptions = 0;
while ((option = g.getopt()) != -1) {
switch (option) {
case 'e': // expand
mDoVariableExpansion = true;
break;
case 'i': // input
StringTokenizer str = new StringTokenizer(g.getOptarg(), ",");
mInputFiles = new ArrayList(str.countTokens());
while (str.hasMoreTokens()) {
mInputFiles.add(str.nextToken());
}
break;
case 'I': // iformat
mInputFormat = g.getOptarg();
break;
case 'o': // output
mOutputFile = g.getOptarg();
break;
case 'O': // oformat
mOutputFormat = g.getOptarg();
break;
case 'h': // help
printLongVersion();
System.exit(0);
break;
case 'V': // version
System.out.println(getGVDSVersion());
System.exit(0);
break;
case 'v': // Verbose mode
incrementLogging();
break;
case 'q': // Quiet mode
decrementLogging();
break;
case 'c':
// do nothing
break;
default:
mLogger.log(
"Unrecognized option or Invalid argument to option : "
+ (char) g.getOptopt(),
LogManager.FATAL_MESSAGE_LEVEL);
printShortVersion();
System.exit(1);
}
}
if (getLoggingLevel() >= 0) {
// set the logging level only if -v was specified
// else bank upon the the default logging level
mLogger.setLevel(getLoggingLevel());
} else {
// set log level to FATAL only
mLogger.setLevel(LogManager.FATAL_MESSAGE_LEVEL);
}
convertReplicaCatalogs();
}
示例17
/**
* Call the correct commands depending on options.
*
* @param opts Command options
*/
public void executeCommand() throws IOException {
String[] opts = getCommandLineOptions();
if (opts.length == 0) {
mLogger.log("Please provide the required options.", LogManager.ERROR_MESSAGE_LEVEL);
this.printShortVersion();
System.exit(1);
}
LongOpt[] longOptions = generateValidOptions();
Getopt g = new Getopt("TCConverter", opts, "ehVvqI:i:O:o:c:", longOptions, false);
int option = 0;
int noOfOptions = 0;
while ((option = g.getopt()) != -1) {
switch (option) {
case 'e': // expand
mDoVariableExpansion = true;
break;
case 'i': // input
StringTokenizer str = new StringTokenizer(g.getOptarg(), ",");
mInputFiles = new ArrayList(str.countTokens());
while (str.hasMoreTokens()) {
mInputFiles.add(str.nextToken());
}
break;
case 'I': // iformat
mInputFormat = g.getOptarg();
break;
case 'o': // output
mOutputFile = g.getOptarg();
break;
case 'O': // oformat
mOutputFormat = g.getOptarg();
break;
case 'h': // help
printLongVersion();
System.exit(0);
break;
case 'V': // version
System.out.println(getGVDSVersion());
System.exit(0);
break;
case 'v': // Verbose mode
incrementLogging();
break;
case 'q': // Quiet mode
decrementLogging();
break;
case 'c':
// do nothing
break;
default:
mLogger.log(
"Unrecognized option or Invalid argument to option : "
+ (char) g.getOptopt(),
LogManager.FATAL_MESSAGE_LEVEL);
printShortVersion();
System.exit(1);
}
}
if (getLoggingLevel() >= 0) {
// set the logging level only if -v was specified
// else bank upon the the default logging level
mLogger.setLevel(getLoggingLevel());
} else {
// set log level to FATAL only
mLogger.setLevel(LogManager.FATAL_MESSAGE_LEVEL);
}
convertTC();
}
示例18
public static HashMap<String, String> getOptions(String program, String[] args) {
// Parse Arguments for SeedFile and TemplateID(optional)
if (args.length == 0) {
displayUsage(program);
return null;
}
String sopts = "hc:l:o:O:d:i:r:L:D:P:E:V:T:s:t:";
LongOpt[] lopts = { new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
new LongOpt("conf", LongOpt.REQUIRED_ARGUMENT, null, 'c'),
new LongOpt("logdir", LongOpt.REQUIRED_ARGUMENT, null, 'l'),
new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
new LongOpt("ontdir", LongOpt.REQUIRED_ARGUMENT, null, 'O'),
new LongOpt("requestid", LongOpt.REQUIRED_ARGUMENT, null, 'r'),
new LongOpt("libname", LongOpt.REQUIRED_ARGUMENT, null, 'L'),
new LongOpt("getData", LongOpt.REQUIRED_ARGUMENT, null, 'D'),
new LongOpt("getParameters", LongOpt.REQUIRED_ARGUMENT, null, 'P'),
new LongOpt("elaborate", LongOpt.REQUIRED_ARGUMENT, null, 'E'),
new LongOpt("validate", LongOpt.REQUIRED_ARGUMENT, null, 'V'),
new LongOpt("trim", LongOpt.REQUIRED_ARGUMENT, null, 'T'),
new LongOpt("seed", LongOpt.REQUIRED_ARGUMENT, null, 's'),
new LongOpt("template", LongOpt.REQUIRED_ARGUMENT, null, 't') };
int code;
HashMap<String, String> options = new HashMap<String, String>();
Getopt g = new Getopt(program, args, sopts, lopts);
while ((code = g.getopt()) != -1) {
switch (code) {
case '?':
displayUsage(program);
return null;
case 'h':
displayUsage(program);
return null;
case 'T':
String trimnum = g.getOptarg();
boolean ok = true;
try {
if (Integer.parseInt(trimnum) == 0)
ok = false;
} catch (NumberFormatException e) {
ok = false;
}
if (!ok) {
System.err.println("-T or --trim takes a non-zero number argument");
displayUsage(program);
return null;
}
options.put("trim", trimnum);
break;
case 'r':
options.put("requestid", g.getOptarg());
break;
case 'L':
options.put("libname", g.getOptarg());
break;
case 'c':
options.put("conf", g.getOptarg());
break;
case 's':
options.put("seed", g.getOptarg());
break;
case 't':
options.put("template", g.getOptarg());
break;
case 'l':
options.put("logdir", g.getOptarg());
break;
case 'o':
options.put("outputdir", g.getOptarg());
break;
case 'O':
options.put("ontdir", g.getOptarg());
break;
case 'D':
options.put("getData", g.getOptarg());
break;
case 'P':
options.put("getParameters", g.getOptarg());
break;
case 'V':
options.put("validate", g.getOptarg());
break;
case 'E':
options.put("elaborate", g.getOptarg());
break;
default:
displayUsage(program);
return null;
}
}
return options;
}
示例19
/**
* Generates an array of valid <code>LongOpt</code> objects which contain all the valid options
* to the Executable.
*/
public abstract LongOpt[] generateValidOptions();