casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Attributes | Friends
casa::Param Class Reference

A simple keyword/value pair with internal help Strings. More...

#include <Param.h>

List of all members.

Public Member Functions

 Param ()
 constructors and destructor default constructor
 Param (const String &key, const String &value, const String &help, const String &type, const String &range, const String &unit)
 normal constructor with optional value and help strings
 Param (const Param &)
 copy constructor
 ~Param ()
 destructor
Paramoperator= (const Param &)
 assignment operator
Bool operator== (const Param &) const
 Equality comparitor.
Double getDouble (Bool do_prompt=False) const
 get a double parameter value; prompt if switch is TRUE
Block< DoublegetDoubleArray (Bool do_prompt=False) const
 get a Block<double> parameter value; prompt if switch is TRUE
Int getInt (Bool do_prompt=False) const
 get an Int parameter value; prompt if switch is TRUE
Block< IntgetIntArray (Bool do_prompt=False) const
 get an Block<Int> parameter value; prompt if switch is TRUE
const StringgetString (Bool do_prompt=False) const
 get a String parameter value; prompt if switch is TRUE
Block< StringgetStringArray (Bool do_prompt=False) const
 get a Block<String> parameter value; prompt if switch is TRUE
Bool getBool (Bool do_prompt=False) const
 get a Boolean parameter value; prompt if switch is TRUE
const Stringget () const
 get parameter value as a string
const StringgetHelp () const
 get parameter help string
const StringgetKey () const
 get parameter name
String keyVal () const
 get the string `key = value' for the parameter
const StringgetType () const
 get the type of a parameter
const StringgetRange () const
 get the valid range of a parameter
const StringgetUnit () const
 get the units of a parameter
Bool put (const String &a_value)
 set new parameter value; return FALSE if invalid value
void setSystem (Bool val)
 set a parameter as a system parameter
Bool isSystem () const
 check if a parameter is a system parameter
void setIndex (Int inx)
 set an index for a program parameter
Int getIndex () const
 get the index of a parameter

Private Attributes

String key
 parameter name
String value
 parameter value
String help
 help string
String type
 type of parameter
String range
 range/validity/pre-check
String unit
 optional unit associated with value
Bool hasvalue
 boolean data member which indicates the Param's key has a value.
Bool system
 boolean data member which indicates the Param is system wide.
Int index
 index for program keywords (>=1)

Friends

ostream & operator<< (ostream &, const Param &p)
 I/O operators.
istream & operator>> (istream &, Param &p)
AipsIOoperator<< (AipsIO &, const Param &p)
AipsIOoperator>> (AipsIO &, Param &p)

Detailed Description

A simple keyword/value pair with internal help Strings.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tParam

Prerequisite

Etymology

The Param class name is a shortening of "parameter" and is indicative of the class being designed as a keyword/value pair relating to command line arguments. The existing Keyword class does a much better job for most other purposes.

Synopsis

The Param is constructed with all arguments being Strings. This is a reflection of the C-type command line argument method of passing an integer (argc or argument count) and an array of pointers to characters (argv or argument vector.) If "char* argv[]" is broken into its individual arguments they may be used to fill a Param. The constructor pairs up a "key" to a value. A help String argument is provided to assist in prompted filling of Param values. The expected return type may be entered as well as a range of potential values. Finally, the units of the value are also specified. The intent is to provide a well documented value and a "key" by which to "call" it.

The "getWhatever" member functions of Param convert the internal Strings into the desired output data type. The Strings themselves may also be returned.

Example

    // we will create a Param which contains the boundary for an iteration loop.
    String key("IterBound");
    // give "IterBound" a default value
    String value("200");
    // a help String for prompting
    String help("The Boundary value for the chutzpah iterator.");
    // The expected return type is an integer
    String type("Int");
    // The range of "legal" values 
    String range("10-10000");
    // the units of the value
    String unit("unitless"):
    // Now we may build our Param
    Param PleaseDontTouchMeThere(key, value, help, type, range, unit);
    // to retrieve the value we use the GetInt function
    for (Int i=0, i<PleaseDontTouchMeThere.getInt(); i++, chutzpah++);

Motivation

The Param class was an early attempt at keywords within AIPS++. They have become obsolete but hang on due to their relationship with the Input class.

To Do

Definition at line 113 of file Param.h.


Constructor & Destructor Documentation

constructors and destructor default constructor

casa::Param::Param ( const String key,
const String value,
const String help,
const String type,
const String range,
const String unit 
)

normal constructor with optional value and help strings

casa::Param::Param ( const Param )

copy constructor

destructor


Member Function Documentation

const String& casa::Param::get ( ) const [inline]

get parameter value as a string

Definition at line 168 of file Param.h.

References value.

Bool casa::Param::getBool ( Bool  do_prompt = False) const

get a Boolean parameter value; prompt if switch is TRUE

Double casa::Param::getDouble ( Bool  do_prompt = False) const

get a double parameter value; prompt if switch is TRUE

get a Block<double> parameter value; prompt if switch is TRUE

const String& casa::Param::getHelp ( ) const [inline]

get parameter help string

Definition at line 172 of file Param.h.

References help.

Int casa::Param::getIndex ( ) const [inline]

get the index of a parameter

Definition at line 211 of file Param.h.

References index.

Int casa::Param::getInt ( Bool  do_prompt = False) const

get an Int parameter value; prompt if switch is TRUE

Block<Int> casa::Param::getIntArray ( Bool  do_prompt = False) const

get an Block<Int> parameter value; prompt if switch is TRUE

const String& casa::Param::getKey ( ) const [inline]

get parameter name

Definition at line 176 of file Param.h.

References key.

const String& casa::Param::getRange ( ) const [inline]

get the valid range of a parameter

Definition at line 188 of file Param.h.

References range.

const String& casa::Param::getString ( Bool  do_prompt = False) const

get a String parameter value; prompt if switch is TRUE

get a Block<String> parameter value; prompt if switch is TRUE

const String& casa::Param::getType ( ) const [inline]

get the type of a parameter

Definition at line 184 of file Param.h.

References type.

const String& casa::Param::getUnit ( ) const [inline]

get the units of a parameter

Definition at line 192 of file Param.h.

References unit.

Bool casa::Param::isSystem ( ) const [inline]

check if a parameter is a system parameter

Definition at line 203 of file Param.h.

References system.

String casa::Param::keyVal ( ) const [inline]

get the string `key = value' for the parameter

Definition at line 180 of file Param.h.

References value.

Param& casa::Param::operator= ( const Param )

assignment operator

Bool casa::Param::operator== ( const Param ) const

Equality comparitor.


Warning: This function ALWAYS returns false; I have no idea why it was designed to do this;

Bool casa::Param::put ( const String a_value)

set new parameter value; return FALSE if invalid value

void casa::Param::setIndex ( Int  inx) [inline]

set an index for a program parameter

Definition at line 207 of file Param.h.

References index.

void casa::Param::setSystem ( Bool  val) [inline]

set a parameter as a system parameter

Definition at line 199 of file Param.h.

References system.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  ,
const Param p 
) [friend]

I/O operators.

AipsIO& operator<< ( AipsIO ,
const Param p 
) [friend]
istream& operator>> ( istream &  ,
Param p 
) [friend]
AipsIO& operator>> ( AipsIO ,
Param p 
) [friend]

Member Data Documentation

boolean data member which indicates the Param's key has a value.

Definition at line 235 of file Param.h.

help string

Definition at line 223 of file Param.h.

Referenced by getHelp().

index for program keywords (>=1)

Definition at line 241 of file Param.h.

Referenced by getIndex(), and setIndex().

parameter name

Definition at line 217 of file Param.h.

Referenced by getKey().

range/validity/pre-check

Definition at line 229 of file Param.h.

Referenced by getRange().

boolean data member which indicates the Param is system wide.

Definition at line 238 of file Param.h.

Referenced by isSystem(), and setSystem().

type of parameter

Definition at line 226 of file Param.h.

Referenced by getType().

optional unit associated with value

Definition at line 232 of file Param.h.

Referenced by getUnit().

parameter value

Definition at line 220 of file Param.h.

Referenced by get(), and keyVal().


The documentation for this class was generated from the following file: