gnu.util
Class Option

java.lang.Object
  extended by gnu.util.Option
Direct Known Subclasses:
Option

public class Option
extends java.lang.Object

Primitive command-line option parsing.

Only long option is supported, for clarity and easy parsing. GNU long option requires a equal sign "=" between the option name and option value. No equal sign is required (allowed) here, for clarity and easy parsing, again.

Usual approach to option parsing such as that in GNU getopt may not be the best in Java because Java does not support pointer needed for uniform argument type and pass-by-reference. Instead this library uses "explicit method call per option". By this type checking can be strictly enforced and return value can be directly assigned to the desired variable. No boxing of primitive types or un-boxing of wrapper classes will take place. Moreover, instead of combining arrays of option table, option can be specified in super classes and subclasses easily. One caveat is that option values cannot be used in initializations of class member variables because parsing takes place outside constructors. For instance, Application cannot initialize and create a window member variable because parsing is not done yet and Display may not be initialized; a window can be created only after all parsings.


Field Summary
 java.lang.String[] args
           
 java.lang.StringBuffer invalid_names
           
 boolean noisy
           
 java.lang.StringBuffer spec
           
 java.util.Vector valid_names
           
 
Constructor Summary
Option(java.lang.String[] args)
           
 
Method Summary
 void about(java.lang.Object object, java.lang.String version, java.lang.String description, java.lang.String author, java.lang.String url, java.lang.String usage, java.lang.String extra)
          Print "about" and list possible options.
 void add_spec(java.lang.String name, java.lang.String type, java.lang.String description, java.lang.String default_value, java.lang.String return_value)
           
 boolean booleann(java.lang.String name, java.lang.String description, boolean default_value)
           
 double doublee(java.lang.String name, java.lang.String description, double default_value)
           
 int enum(java.lang.String name, java.lang.String description, java.lang.String[] enum_strings, int default_value)
           
 boolean flag(java.lang.String name, java.lang.String description)
           
 float floatt(java.lang.String name, java.lang.String description, float default_value)
           
 float floatt(java.lang.String name, java.lang.String description, float default_value, float low, float high)
           
 int intt(java.lang.String name, java.lang.String description, int default_value)
           
 int intt(java.lang.String name, java.lang.String description, int default_value, int low, int high)
           
 boolean invalid()
           
 long longg(java.lang.String name, java.lang.String description, long default_value)
           
 java.lang.String option(java.lang.String name)
           
 float scale(java.lang.String name, java.lang.String description, float default_value)
           
 java.lang.String string(java.lang.String name, java.lang.String description, java.lang.String default_value)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

args

public java.lang.String[] args

noisy

public boolean noisy

spec

public java.lang.StringBuffer spec

invalid_names

public java.lang.StringBuffer invalid_names

valid_names

public java.util.Vector valid_names
Constructor Detail

Option

public Option(java.lang.String[] args)
Method Detail

about

public void about(java.lang.Object object,
                  java.lang.String version,
                  java.lang.String description,
                  java.lang.String author,
                  java.lang.String url,
                  java.lang.String usage,
                  java.lang.String extra)
Print "about" and list possible options. This method should be called only once after all options are specified.

Note that this package is under GNU Public License, and thus all programs using this package MUST be under GNU Public License.


add_spec

public void add_spec(java.lang.String name,
                     java.lang.String type,
                     java.lang.String description,
                     java.lang.String default_value,
                     java.lang.String return_value)

booleann

public boolean booleann(java.lang.String name,
                        java.lang.String description,
                        boolean default_value)

doublee

public double doublee(java.lang.String name,
                      java.lang.String description,
                      double default_value)

enum

public int enum(java.lang.String name,
                java.lang.String description,
                java.lang.String[] enum_strings,
                int default_value)

floatt

public float floatt(java.lang.String name,
                    java.lang.String description,
                    float default_value)

floatt

public float floatt(java.lang.String name,
                    java.lang.String description,
                    float default_value,
                    float low,
                    float high)

invalid

public boolean invalid()

intt

public int intt(java.lang.String name,
                java.lang.String description,
                int default_value)

intt

public int intt(java.lang.String name,
                java.lang.String description,
                int default_value,
                int low,
                int high)

longg

public long longg(java.lang.String name,
                  java.lang.String description,
                  long default_value)

option

public java.lang.String option(java.lang.String name)

flag

public boolean flag(java.lang.String name,
                    java.lang.String description)

scale

public float scale(java.lang.String name,
                   java.lang.String description,
                   float default_value)

string

public java.lang.String string(java.lang.String name,
                               java.lang.String description,
                               java.lang.String default_value)