Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

alma::acs::util::CmdLineArgs Class Reference

List of all members.

Public Member Functions

 CmdLineArgs ()
void reset ()
void registerOption (String name, int minValuesCount)
void registerOption (CmdLineRegisteredOption opt)
void parseArgs (String[] args)
String[] getAllArgs ()
CmdLineOption[] getRecognizedArgs ()
boolean isSpecified (CmdLineRegisteredOption clo)
String[] getValues (CmdLineOption clo)

Private Member Functions

boolean isKey (String[] args, int index)

Private Attributes

Map m_registeredOptions
LinkedHashMap m_options

Detailed Description

Deals with commandline options (String[] args), for example to merge several sets of option specifications.

An option consists of a key arg and 0...many value arguments. The method parseArgs will attempt to guess which arguments are keys and which are values, e.g. looking for a "-" prefix. This class can therefore be used for unknown sets of options.

To avoid fooling the algorithm with weird values (like "-273"), the expected option keys with their minimum number of values can be specified using the registerOption methods. This mechanism can later be extended to allow validation of required arguments.

TODO: logging and error handling

Author:
hsommer


Constructor & Destructor Documentation

alma::acs::util::CmdLineArgs::CmdLineArgs  )  [inline]
 


Member Function Documentation

String [] alma::acs::util::CmdLineArgs::getAllArgs  )  [inline]
 

Returns all arguments (both options and values). If arguments were parsed more than once, the values from a later call overwrite earlier ones. Options and values that could not be distinguished during parsing appear in the original order.

Returns:

CmdLineOption [] alma::acs::util::CmdLineArgs::getRecognizedArgs  )  [inline]
 

Gets all arguments that were recognized by the parser. This includes arguments registered before parsing, as well as arguments recognized automatically. The values for these args can be obtained from getValues(CmdLineOption).

Returns:

String [] alma::acs::util::CmdLineArgs::getValues CmdLineOption  clo  )  [inline]
 

boolean alma::acs::util::CmdLineArgs::isKey String[]  args,
int  index
[inline, private]
 

Decides whether args[index] is a key or a value. Future implementations might need to look at args[other indices], that's why the full array is supplied.

Parameters:
args 
index 
Returns:
boolean

boolean alma::acs::util::CmdLineArgs::isSpecified CmdLineRegisteredOption  clo  )  [inline]
 

Returns true if the given option clo appeared in the argument lists that were passed to parseArgs; false otherwise.

Parameters:
clo 
Returns:
boolean

void alma::acs::util::CmdLineArgs::parseArgs String[]  args  )  [inline]
 

If called more than once without calling reset() in between, the options are merged in the style of a Map.

Parameters:
args 

void alma::acs::util::CmdLineArgs::registerOption CmdLineRegisteredOption  opt  )  [inline]
 

void alma::acs::util::CmdLineArgs::registerOption String  name,
int  minValuesCount
[inline]
 

void alma::acs::util::CmdLineArgs::reset  )  [inline]
 


Member Data Documentation

LinkedHashMap alma::acs::util::CmdLineArgs::m_options [private]
 

Map alma::acs::util::CmdLineArgs::m_registeredOptions [private]
 


The documentation for this class was generated from the following file:
Generated on Thu Apr 30 02:54:35 2009 for ACS Java API by doxygen 1.3.8