org.netbeans.lib.cvsclient.commandLine
Class GetOpt
java.lang.Object
org.netbeans.lib.cvsclient.commandLine.GetOpt
public class GetOpt
- extends java.lang.Object
Overview
GetOpt provides a general means for a Java program to parse command
line arguments in accordance with the standard Unix conventions;
it is analogous to, and based on, getopt(3) for C programs.
(The following documentation is based on the man page for getopt(3).)
Description
GetOpt is a Java class that provides one method, getopt,
and some variables that control behavior of or return additional
information from getopt.
GetOpt interprets command arguments in accordance with the standard
Unix conventions: option arguments of a command are introduced by "-"
followed by a key character, and a non-option argument terminates
the processing of options. GetOpt's option interpretation is controlled
by its parameter optString, which specifies what characters designate
legal options and which of them require associated values.
The getopt method returns the next, moving left to right, option letter
in the command line arguments that matches a letter in optString.
optString must contain the option letters the command using getopt
will recognize. For example, getopt("ab") specifies that the command
line should contain no options, only "-a", only "-b", or both "-a" and
"-b" in either order. (The command line can also contain non-option
arguments after any option arguments.) Multiple options per argument
are allowed, e.g., "-ab" for the last case above.
If a letter in optString is followed by a colon, the option is expected
to have an argument. The argument may or may not be separated by
whitespace from the option letter. For example, getopt("w:") allows
either "-w 80" or "-w80". The variable optArg is set to the option
argument, e.g., "80" in either of the previous examples. Conversion
functions such as Integer.parseInt(), etc., can then be applied to
optArg.
getopt places in the variable optIndex the index of the next command
line argument to be processed; optIndex is automatically initialized
to 1 before the first call to getopt.
When all options have been processed (that is, up to the first
non-option argument), getopt returns optEOF (-1). getopt recognizes the
command line argument "--" (i.e., two dashes) to delimit the end of
the options; getopt returns optEOF and skips "--". Subsequent,
non-option arguments can be retrieved using the String array passed to
main(), beginning with argument number optIndex.
Diagnostics
getopt prints an error message on System.stderr and returns a question
mark ('?') when it encounters an option letter in a command line argument
that is not included in optString. Setting the variable optErr to
false disables this error message.
Notes
The following notes describe GetOpt's behavior in a few interesting
or special cases; these behaviors are consistent with getopt(3)'s
behaviors.
-- A '-' by itself is treated as a non-option argument.
-- If optString is "a:" and the command line arguments are "-a -x",
then "-x" is treated as the argument associated with the "-a".
-- Duplicate command line options are allowed; it is up to user to
deal with them as appropriate.
-- A command line option like "-b-" is considered as the two options
"b" and "-" (so "-" should appear in option string); this differs
from "-b --".
-- Sun and DEC getopt(3)'s differ w.r.t. how "---" is handled.
Sun treats "---" (or anything starting with "--") the same as "--"
DEC treats "---" as two separate "-" options
(so "-" should appear in option string).
Java GetOpt follows the DEC convention.
-- An option `letter' can be a letter, number, or most special character.
Like getopt(3), GetOpt disallows a colon as an option letter.
Constructor Summary |
GetOpt(java.lang.String[] args,
java.lang.String opts)
|
Method Summary |
int |
getopt()
|
static void |
main(java.lang.String[] args)
|
java.lang.String |
optArgGet()
|
int |
optIndexGet()
|
void |
optIndexSet(int i)
|
boolean |
processArg(java.lang.String arg,
boolean b)
|
double |
processArg(java.lang.String arg,
double d)
|
float |
processArg(java.lang.String arg,
float f)
|
int |
processArg(java.lang.String arg,
int n)
|
long |
processArg(java.lang.String arg,
long n)
|
boolean |
tryArg(int k,
boolean b)
|
double |
tryArg(int k,
double d)
|
float |
tryArg(int k,
float f)
|
int |
tryArg(int k,
int n)
|
long |
tryArg(int k,
long n)
|
java.lang.String |
tryArg(int k,
java.lang.String s)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
optErr
public boolean optErr
optEOF
public static final int optEOF
- See Also:
- Constant Field Values
GetOpt
public GetOpt(java.lang.String[] args,
java.lang.String opts)
processArg
public int processArg(java.lang.String arg,
int n)
tryArg
public int tryArg(int k,
int n)
processArg
public long processArg(java.lang.String arg,
long n)
tryArg
public long tryArg(int k,
long n)
processArg
public double processArg(java.lang.String arg,
double d)
tryArg
public double tryArg(int k,
double d)
processArg
public float processArg(java.lang.String arg,
float f)
tryArg
public float tryArg(int k,
float f)
processArg
public boolean processArg(java.lang.String arg,
boolean b)
tryArg
public boolean tryArg(int k,
boolean b)
tryArg
public java.lang.String tryArg(int k,
java.lang.String s)
optIndexGet
public int optIndexGet()
optIndexSet
public void optIndexSet(int i)
optArgGet
public java.lang.String optArgGet()
getopt
public int getopt()
main
public static void main(java.lang.String[] args)