org.netbeans.lib.cvsclient.commandLine
Class GetOpt

java.lang.Object
  extended by 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.


Field Summary
static int optEOF
           
 boolean optErr
           
 
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
 

Field Detail

optErr

public boolean optErr

optEOF

public static final int optEOF
See Also:
Constant Field Values
Constructor Detail

GetOpt

public GetOpt(java.lang.String[] args,
              java.lang.String opts)
Method Detail

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)

 

Built on October 26 2010.  |  Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.