USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::PvlKeyword Class Reference
[Parsing]

A single keyword-value pair. More...

#include <PvlKeyword.h>

Collaboration diagram for Isis::PvlKeyword:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 PvlKeyword ()
 Constructs a blank PvlKeyword object.
 PvlKeyword (QString name)
 Constructs a PvlKeyword object with a name.
 PvlKeyword (QString name, QString value, QString unit="")
 Constructs a PvlKeyword object with a name, value and units.
 PvlKeyword (const PvlKeyword &other)
 Copy constructor.
 ~PvlKeyword ()
 Destructs a PvlKeyword object.
void SetName (QString name)
 Sets the keyword name.
QString Name () const
 Returns the keyword name.
bool IsNamed (QString name) const
 Determines whether two PvlKeywords have the same name or not.
void SetValue (QString value, QString unit="")
 Sets new values.
void SetUnits (QString units)
 Sets the unit of measure for all current values if any exist.
void SetUnits (QString value, QString units)
 Sets the unit of measure for a given value.
PvlKeywordoperator= (QString value)
 Sets new values.
void AddValue (QString value, QString unit="")
 Adds a value with units.
PvlKeywordoperator+= (QString value)
 Adds a value.
int Size () const
 Returns the number of values stored in this keyword.
bool IsNull (const int index=0) const
 Decides whether a value is null or not at a given index.
void Clear ()
 Clears all values and units for this PvlKeyword object.
 operator double () const
 Returns the first value in this keyword converted to a double.
 operator int () const
 Returns the first value in this keyword converted to an integer.
 operator Isis::BigInt () const
 Returns the first value in this keyword converted to a BigInt.
 operator QString () const
const QString & operator[] (int index) const
 Gets value for this object at specified index.
QString & operator[] (int index)
 Gets value for this object at specified index.
QString Unit (const int index=0) const
 Returns the units of measurement of the element of the array of values for the object at the specified index.
void AddComment (QString comment)
 Add a comment to the PvlKeyword.
void AddCommentWrapped (QString comment)
 Automatically wraps and adds long comments to the PvlKeyword.
void AddComments (const std::vector< QString > &comments)
 This method adds multiple comments at once by calling AddComments on each element in the vector.
int Comments () const
 Returns the number of lines of comments associated with this keyword.
QString Comment (const int index) const
 Return a comment at the specified index.
void ClearComments ()
 Clears the current comments.
bool operator== (const PvlKeyword &key) const
 Returns true of the keyword names match.
bool operator!= (const PvlKeyword &key) const
 Returns true of the keyword names do not match.
bool IsEquivalent (QString string1, int index=0) const
 Checks to see if a value with a specified index is equivalent to another QString.
void SetWidth (int width)
 The width of the longest keyword name (for formatting).
void SetIndent (int indent)
 Sets the indent level when outputted(for formatting).
int Width () const
 Returns the current set longest keyword name.
int Indent () const
 Returns the current indent level.
PvlKeywordoperator= (Isis::PvlSequence &seq)
 Add values and units from a PvlSequence.
void SetFormat (PvlFormat *formatter)
 Set the PvlFormatter used to format the keyword name and value(s).
PvlFormatGetFormat ()
 Get the current PvlFormat or create one.
const PvlKeywordoperator= (const PvlKeyword &other)
 This is an assignment operator.
void ValidateKeyword (PvlKeyword &pvlKwrd, QString psValueType="", PvlKeyword *pvlKwrdRange=NULL)
 Validate Keyword for type and required values.

Static Public Member Functions

static bool StringEqual (const QString &string1, const QString &string2)
 Checks to see if two QStrings are equal.
static QString ReadLine (std::istream &is, bool insideComment)
 This method reads one line of data from the input stream.
static bool ReadCleanKeyword (QString keyword, std::vector< QString > &keywordComments, QString &keywordName, std::vector< std::pair< QString, QString > > &keywordValues)
 This reads a keyword compressed back to 1 line of data (excluding comments, which are included on separate lines of data before the keyword).
static QString ReadValue (QString &keyword, bool &quoteProblem)
static QString ReadValue (QString &keyword, bool &quoteProblem, const std::vector< std::pair< char, char > > &otherDelimiters)
 This method looks for a data element in the QString.

Protected Member Functions

QString Reform (const QString &value) const
 Checks if the value needs to be converted to PVL or iPVL and returns it in the correct format.
QString ToPvl (const QString &value) const
 Converts a value to PVL format.
QString ToIPvl (const QString &value) const
 Converts a value to iPVL format.
std::ostream & WriteWithWrap (std::ostream &os, const QString &textToWrite, int startColumn, PvlFormat &format) const
 Wraps output so that length doesn't exceed the character limit.

Protected Attributes

PvlFormatp_formatter
 Formatter object.

Private Member Functions

void Init ()
 Clears all PvlKeyword data.
void WriteSpaces (std::ostream &, int) const
 This writes numSpaces spaces to the ostream.

Private Attributes

char * p_name
 The keyword's name... This is a c-string for memory efficiency.
QVarLengthArray< QString, 1 > p_values
 The values in the keyword.
std::vector< QString > * p_units
 The units for the values.
std::vector< QString > * p_comments
 The comments for the keyword.
int p_width
 The width of the longest keyword.
int p_indent
 The number of indentations to make.

Friends

std::istream & operator>> (std::istream &is, PvlKeyword &result)
std::ostream & operator<< (std::ostream &os, const PvlKeyword &keyword)

Detailed Description

A single keyword-value pair.

This class is used to create a single PVL keyword-value pair. PvlContainer can combine PvlKeyword objects and organize them so they look clean on output.

Author:
2002-10-11 Jeff Anderson

For internal use only.

History:
2005-04-08 Leah Dahmer - wrote class documentation.
History:
2005-04-08 Leah Dahmer - added the WriteWithWrap() method so keyword values will now be wrapped when the length exceeds 80 characters.
History:
2005-05-18 Jeff Anderson - Fixed minor problems with wrapping code
History:
2006-04-05 Elizabeth Miller - Added AddCommentWrapped method
History:
2006-09-05 Stuart Sides - Added ability to format keywords in different ways using the PvlFormat class
History:
2007-08-20 Brendan George - Added checking to ensure Keyword Name contains no whitespace
History:
2008-02-08 Christopher Austin - Altered WriteWithWrap to not bomb when 2 or more single statement lines in a row are over 78 characters long.
History:
2008-07-03 Steven Lambright - Added const functionality
History:
2008-07-10 Steven Lambright - StringEqual is now static, all AddComments methods are public
History:
2008-09-30 Christopher Austin - replaced all std::endl in the << operator as well as WriteWithWrap() with PvlFormat.FormatEOL(), and formatted wraps accordingly
History:
2009-08-18 Eric Hyer - Added both SetUnits methods and ASSERT macro
History:
2009-09-09 Steven Lambright - Removed ASSERT macro, fixed formatting of error in SetUnits, and fixed text wrapping when a single array element needed split up into multiple lines.
History:
2009-12-07 Steven Lambright - Added stream input operator for reading
History:
2010-01-19 Travis Addair - Added SetCharLimit method allowing users to set the point at which a keyword value is output to the next line down.
History:
2010-02-04 Travis Addair - Moved the SetCharLimit method to PvlFormat class
History:
2010-04-13 Eric Hyer - Added copy constructor Added assignment operator
History:
2010-06-25 Steven Lambright - NULLs ('') now count as binary
History:
2010-09-27 Sharmila Prasad - API to Validate a Keyword for type and values
History:
2010-10-18 Sharmila Prasad - Added more options for the keyword validation
History:
2011-04-12 Steven Lambright - Lessened the memory footprint by changing p_comments and p_units to pointers, p_values to a QVarLengthArray and p_name to a char *.
History:
2011-07-07 Sharmila Prasad - While validating keyword, display appropriate error msg when converting string to integer which has a double value.

Definition at line 95 of file PvlKeyword.h.


Constructor & Destructor Documentation

Isis::PvlKeyword::PvlKeyword (  ) 

Constructs a blank PvlKeyword object.

Definition at line 38 of file PvlKeyword.cpp.

References Init().

Isis::PvlKeyword::PvlKeyword ( QString  name  ) 

Constructs a PvlKeyword object with a name.

Parameters:
name The keyword name

Definition at line 48 of file PvlKeyword.cpp.

References Init(), and SetName().

Isis::PvlKeyword::PvlKeyword ( QString  name,
QString  value,
QString  unit = "" 
)

Constructs a PvlKeyword object with a name, value and units.

Defaults to unit="".

Parameters:
name The keyword name.
value The keyword values.
unit The units the values are given in.

Definition at line 62 of file PvlKeyword.cpp.

References AddValue(), Init(), and SetName().

Isis::PvlKeyword::PvlKeyword ( const PvlKeyword other  ) 

Copy constructor.

Definition at line 71 of file PvlKeyword.cpp.

References Init().

Isis::PvlKeyword::~PvlKeyword (  ) 

Destructs a PvlKeyword object.

Definition at line 80 of file PvlKeyword.cpp.

References p_comments, p_name, and p_units.


Member Function Documentation

void Isis::PvlKeyword::AddComment ( QString  comment  ) 

Add a comment to the PvlKeyword.

Parameters:
comment The new comment.
See also:
AddCommentWrapped()
AddComments()
ClearComments()

Definition at line 392 of file PvlKeyword.cpp.

References p_comments.

Referenced by AddComments(), AddCommentWrapped(), Isis::CameraPointInfo::GetPointInfo(), and Isis::ControlNetFileV0002::ToPvl().

void Isis::PvlKeyword::AddComments ( const std::vector< QString > &  comments  ) 

This method adds multiple comments at once by calling AddComments on each element in the vector.

Parameters:
comments Comments to associate with this keyword

Definition at line 1109 of file PvlKeyword.cpp.

References AddComment().

Referenced by Isis::operator>>().

void Isis::PvlKeyword::AddCommentWrapped ( QString  comment  ) 

Automatically wraps and adds long comments to the PvlKeyword.

Parameters:
comment The new comment to add
See also:
AddComment()
AddComments()
ClearComments()

Definition at line 426 of file PvlKeyword.cpp.

References AddComment(), and Isis::IString::Token().

void Isis::PvlKeyword::AddValue ( QString  value,
QString  unit = "" 
)

Adds a value with units.

If no current value exists, this method sets the given value. Otherwise, it retains any current values and adds the value given to the array of values for this PvlKeyword object. Defaults to unit = "" (empty QString).

Parameters:
value New value to be assigned.
unit Units of measurement corresponding to the value.
See also:
SetValue()
operator=
operator+=

Definition at line 268 of file PvlKeyword.cpp.

References p_units, and p_values.

Referenced by Isis::DbProfile::add(), Isis::ControlNetDiff::addUniqueMeasure(), Isis::ControlNetDiff::addUniquePoint(), IsisAml::CommandLine(), Isis::PvlTranslationManager::DoTranslation(), Isis::UserInterface::EvaluateOption(), Isis::CameraPointInfo::GetPointInfo(), Isis::DawnVirCamera::getPointingTable(), Isis::ControlNetDiff::makeKeyword(), operator+=(), operator=(), Isis::operator>>(), PvlKeyword(), and SetValue().

void Isis::PvlKeyword::Clear (  ) 

Clears all values and units for this PvlKeyword object.

Definition at line 307 of file PvlKeyword.cpp.

References p_units, and p_values.

Referenced by Init(), operator=(), and SetValue().

void Isis::PvlKeyword::ClearComments (  ) 

Clears the current comments.

Definition at line 444 of file PvlKeyword.cpp.

References p_comments.

QString Isis::PvlKeyword::Comment ( const int  index  )  const

Return a comment at the specified index.

Parameters:
index The index of the comment.
Returns:
QString The comment at the index.
Exceptions:
iException ArraySubscriptNotInRange (index) Index out of bounds.

Definition at line 457 of file PvlKeyword.cpp.

References _FILEINFO_, Isis::Message::ArraySubscriptNotInRange(), p_comments, and Isis::IException::Programmer.

Referenced by Isis::operator<<().

int Isis::PvlKeyword::Comments (  )  const [inline]

Returns the number of lines of comments associated with this keyword.

Definition at line 173 of file PvlKeyword.h.

Referenced by Isis::operator<<().

PvlFormat * Isis::PvlKeyword::GetFormat (  ) 

Get the current PvlFormat or create one.

Returns:
PvlFormat* Pointer to PvlFormat.

Definition at line 903 of file PvlKeyword.cpp.

References p_formatter.

int Isis::PvlKeyword::Indent (  )  const [inline]

Returns the current indent level.

Definition at line 226 of file PvlKeyword.h.

Referenced by Isis::operator<<().

void Isis::PvlKeyword::Init (  )  [private]

Clears all PvlKeyword data.

Definition at line 99 of file PvlKeyword.cpp.

References Clear(), p_comments, p_formatter, p_indent, p_name, p_units, and p_width.

Referenced by PvlKeyword().

bool Isis::PvlKeyword::IsEquivalent ( QString  QString1,
int  index = 0 
) const

Checks to see if a value with a specified index is equivalent to another QString.

Parameters:
QString1 The QString to compare the value to.
index The index of the existing value.
Returns:
bool True if the two QStrings are equivalent, false if they're not.
Exceptions:
iException ArraySubscriptNotInRange (index) Index out of bounds.

Definition at line 578 of file PvlKeyword.cpp.

References _FILEINFO_, Isis::Message::ArraySubscriptNotInRange(), p_values, Isis::IException::Programmer, and StringEqual().

bool Isis::PvlKeyword::IsNamed ( QString  name  )  const [inline]

Determines whether two PvlKeywords have the same name or not.

Parameters:
name The name of the keyword to compare with this one.
Returns:
True if the names are equal, false if not.

Definition at line 123 of file PvlKeyword.h.

References Name(), and StringEqual().

Referenced by Isis::KernelDb::findAll(), Isis::KernelDb::loadKernelDbFiles(), and Isis::KernelDb::matches().

bool Isis::PvlKeyword::IsNull ( const int  index = 0  )  const

Decides whether a value is null or not at a given index.

Defaults to index = 0.

Parameters:
index The value index
Returns:
bool True if the value is null, false if it's not.

Definition at line 118 of file PvlKeyword.cpp.

References _FILEINFO_, Isis::Message::ArraySubscriptNotInRange(), p_values, Isis::IException::Programmer, Size(), and StringEqual().

Referenced by Isis::Kernels::findKernels().

QString Isis::PvlKeyword::Name (  )  const [inline]
Isis::PvlKeyword::operator double (  )  const [inline]

Returns the first value in this keyword converted to a double.

Definition at line 149 of file PvlKeyword.h.

References Isis::toDouble().

Isis::PvlKeyword::operator int (  )  const [inline]

Returns the first value in this keyword converted to an integer.

Definition at line 153 of file PvlKeyword.h.

References Isis::toInt().

Isis::PvlKeyword::operator Isis::BigInt (  )  const [inline]

Returns the first value in this keyword converted to a BigInt.

Definition at line 157 of file PvlKeyword.h.

References Isis::toBigInt().

bool Isis::PvlKeyword::operator!= ( const PvlKeyword key  )  const [inline]

Returns true of the keyword names do not match.

Parameters:
key The keyword to compare names with

Definition at line 196 of file PvlKeyword.h.

PvlKeyword & Isis::PvlKeyword::operator+= ( QString  value  ) 

Adds a value.

Overwrites the '+=' operators to add a new value. Like AddValue(), this method keeps any previously existing values and adds the new value with unit = "" (empty QString) to the array of values for this PvlKeyword object.

Parameters:
value The new value.
Returns:
PvlKeyword& Reference to PvlKeyword object.
See also:
AddValue()
SetValue()
operator=

Definition at line 301 of file PvlKeyword.cpp.

References AddValue().

Referenced by operator=().

const PvlKeyword & Isis::PvlKeyword::operator= ( const PvlKeyword other  ) 

This is an assignment operator.

Definition at line 1828 of file PvlKeyword.cpp.

References p_comments, p_formatter, p_indent, p_name, p_units, p_values, p_width, and SetName().

PvlKeyword & Isis::PvlKeyword::operator= ( Isis::PvlSequence seq  ) 

Add values and units from a PvlSequence.

(Clears current values and units)

Parameters:
seq The PvlSequence to add from.
Returns:
PvlKeyword& Reference to PvlKeyword object.

Definition at line 592 of file PvlKeyword.cpp.

References Clear(), operator+=(), size, and Isis::PvlSequence::Size().

PvlKeyword & Isis::PvlKeyword::operator= ( QString  value  ) 

Sets new values.

Overwrites the '=' operator to add a new value using AddValue(). Like SetValue(), this method clears any previously existing values and resets to the given value with unit = "" (empty QString).

Parameters:
value The value to be added.
Returns:
PvlKeyword& Reference to PvlKeyword object.
See also:
AddValue()
SetValue()
operator+=

Definition at line 247 of file PvlKeyword.cpp.

References AddValue(), and Clear().

bool Isis::PvlKeyword::operator== ( const PvlKeyword key  )  const [inline]

Returns true of the keyword names match.

Parameters:
key The keyword to compare names with

Definition at line 184 of file PvlKeyword.h.

References p_name.

QString & Isis::PvlKeyword::operator[] ( int  index  ) 

Gets value for this object at specified index.

Overrides the '[]' operator to return the element in the array of values at the specified index.

Parameters:
index The index of the value.
Returns:
IString The value at the index.
Exceptions:
iException ArraySubscriptNotInRange (index) Index out of bounds.
See also:
const operator[]

Definition at line 334 of file PvlKeyword.cpp.

References _FILEINFO_, Isis::Message::ArraySubscriptNotInRange(), p_name, p_values, Isis::IException::Programmer, and Isis::toString().

const QString & Isis::PvlKeyword::operator[] ( int  index  )  const

Gets value for this object at specified index.

Overrides the '[]' operator to return the element in the array of values at the specified index.

Parameters:
index The index of the value.
Returns:
IString The value at the index.
Exceptions:
iException ArraySubscriptNotInRange (index) Index out of bounds.
See also:
operator[]

Definition at line 356 of file PvlKeyword.cpp.

References _FILEINFO_, Isis::Message::ArraySubscriptNotInRange(), p_values, and Isis::IException::Programmer.

bool Isis::PvlKeyword::ReadCleanKeyword ( QString  keyword,
std::vector< QString > &  keywordComments,
QString &  keywordName,
std::vector< std::pair< QString, QString > > &  keywordValues 
) [static]

This reads a keyword compressed back to 1 line of data (excluding comments, which are included on separate lines of data before the keyword).

Line concatenations must have already been handled. This returns the data of the keyword (if valid) and its status.

Parameters:
keyword Pvl "#COMMENT\n//COMMENT\nKeyword = (Value1,Value2,...)" QString
keywordComments Output: Lines of data that are comments
keywordName Output: Name of keyword
keywordValues Output: vector< pair<Value, Units> >
Returns:
bool false if it is invalid but could become valid given more data, true if it is a valid keyword and successful

Definition at line 1130 of file PvlKeyword.cpp.

References _FILEINFO_, trimmed, and Isis::IException::Unknown.

Referenced by Isis::operator>>().

QString Isis::PvlKeyword::ReadLine ( std::istream &  is,
bool  insideComment 
) [static]

This method reads one line of data from the input stream.

All spaces, newlines, returns and tabs are trimmed from the result. Once a newline is encountered, if the line we read is blank, we keep reading. Once a line with data is encountered, that is the result. All newlines, spaces, returns and tabs are consumed past this line of data until the next different character (seeks to next valid data).

Parameters:
is The stream to read from
Returns:
QString The first encountered line of data

Definition at line 1710 of file PvlKeyword.cpp.

Referenced by Isis::operator>>().

QString Isis::PvlKeyword::ReadValue ( QString &  keyword,
bool &  quoteProblem,
const std::vector< std::pair< char, char > > &  otherDelimiters 
) [static]

This method looks for a data element in the QString.

A data element is a quoted QString, a units value, or one value of an array (not including units). As an example, each value in the following QString is quoted:

'VALUE' '=' ('VALUE','VALUE', 'VALUE' '

')

The returned values of each of these elements is VALUE. Explicitly defined quotes (', , <>) are stripped from the return value.

Parameters:
keyword Input/Output: The keyword to get the next value from (DESTRUCTIVE)
quoteProblem Output: The QString has an unclosed quote character
Returns:
QString The stripped out token.

Definition at line 1575 of file PvlKeyword.cpp.

QString Isis::PvlKeyword::Reform ( const QString &  value  )  const [protected]

Checks if the value needs to be converted to PVL or iPVL and returns it in the correct format.

Parameters:
value The value to be converted.
Returns:
QString The value in its proper format (iPVL or PVL).

Definition at line 474 of file PvlKeyword.cpp.

References Isis::PvlObject::FindGroup(), g, ToIPvl(), ToPvl(), Isis::PvlObject::Traverse, and Isis::IString::UpCase().

void Isis::PvlKeyword::SetFormat ( PvlFormat formatter  ) 

Set the PvlFormatter used to format the keyword name and value(s).

Parameters:
formatter A pointer to the formatter to be used

Definition at line 892 of file PvlKeyword.cpp.

References p_formatter.

void Isis::PvlKeyword::SetIndent ( int  indent  )  [inline]

Sets the indent level when outputted(for formatting).

Parameters:
indent The new indent

Definition at line 216 of file PvlKeyword.h.

void Isis::PvlKeyword::SetName ( QString  name  ) 

Sets the keyword name.

Parameters:
name The new keyword name.

Definition at line 136 of file PvlKeyword.cpp.

References _FILEINFO_, p_name, and Isis::IException::User.

Referenced by Isis::PvlTranslationManager::DoTranslation(), operator=(), Isis::operator>>(), Isis::PvlContainer::PvlContainer(), and PvlKeyword().

void Isis::PvlKeyword::SetUnits ( QString  value,
QString  units 
)

Sets the unit of measure for a given value.

Parameters:
value The value to match
units New units to be assigned.
Exceptions:
Isis::iException::Programmer - Given value must exist

Definition at line 203 of file PvlKeyword.cpp.

References _FILEINFO_, p_units, p_values, and Isis::IException::Programmer.

void Isis::PvlKeyword::SetUnits ( QString  units  ) 

Sets the unit of measure for all current values if any exist.

Parameters:
units New units to be assigned.

Definition at line 182 of file PvlKeyword.cpp.

References p_units, and p_values.

Referenced by Isis::ProcessMosaic::AddBandBinGroup().

void Isis::PvlKeyword::SetValue ( QString  value,
QString  unit = "" 
)

Sets new values.

If no current value exists, this method sets the given value to the PvlKeyword. Otherwise, it clears any existing values and resets to the value given using AddValue(). Defaults to unit = "" (empty QString).

Parameters:
value New value to be assigned.
unit Units of measurement corresponding to the value.
See also:
AddValue()
operator=
operator+=

Definition at line 171 of file PvlKeyword.cpp.

References AddValue(), and Clear().

Referenced by Isis::CameraPointInfo::GetPointInfo(), and Isis::PvlContainer::SetName().

void Isis::PvlKeyword::SetWidth ( int  width  )  [inline]

The width of the longest keyword name (for formatting).

Parameters:
width the new width

Definition at line 207 of file PvlKeyword.h.

int Isis::PvlKeyword::Size (  )  const [inline]
bool Isis::PvlKeyword::StringEqual ( const QString &  QString1,
const QString &  QString2 
) [static]

Checks to see if two QStrings are equal.

Each is converted to uppercase and removed of underscores and whitespaces.

Parameters:
QString1 The first QString
QString2 The second QString
Returns:
bool True or false, depending on whether the QString values are equal.

Definition at line 551 of file PvlKeyword.cpp.

References Isis::IString::ConvertWhiteSpace(), Isis::IString::Remove(), s1, s2, and Isis::IString::UpCase().

Referenced by IsEquivalent(), IsNamed(), Isis::PvlContainer::IsNamed(), IsNull(), Isis::PvlFormat::IsSingleUnit(), Isis::PvlObject::operator==(), and Isis::PvlGroup::operator==().

QString Isis::PvlKeyword::ToIPvl ( const QString &  value  )  const [protected]

Converts a value to iPVL format.

Parameters:
value The value to be converted.
Returns:
QString The value in iPVL format.

Definition at line 498 of file PvlKeyword.cpp.

References out.

Referenced by Reform().

QString Isis::PvlKeyword::ToPvl ( const QString &  value  )  const [protected]

Converts a value to PVL format.

Parameters:
value The value to be converted.
Returns:
QString The value in PVL format.

Definition at line 526 of file PvlKeyword.cpp.

References out.

Referenced by Reform().

QString Isis::PvlKeyword::Unit ( const int  index = 0  )  const

Returns the units of measurement of the element of the array of values for the object at the specified index.

Defaults to index = 0.

Parameters:
index The index of the unit.
Returns:
QString The unit at the index.
Exceptions:
iException ArraySubscriptNotInRange (index) Index out of bounds.

Definition at line 373 of file PvlKeyword.cpp.

References _FILEINFO_, Isis::Message::ArraySubscriptNotInRange(), p_units, and Isis::IException::Programmer.

Referenced by Isis::ProcessMosaic::AddBandBinGroup(), Isis::ProcessImportPds::ExtractPdsProjection(), Isis::PvlFormat::IsSingleUnit(), and Isis::ProcessImportPds::ProcessDataFilePointer().

void Isis::PvlKeyword::ValidateKeyword ( PvlKeyword pvlKwrd,
QString  psValueType = "",
PvlKeyword pvlKwrdValue = NULL 
)

Validate Keyword for type and required values.

Validate a Keyword, comparing against corresponding Template Keyword.

Template Keyword has the format: keyName = (valueType, optional/required, Values allowed separated by comma)

Author:
Sharmila Prasad (9/22/2010)
Parameters:
pvlKwrd - Keyword to be validated
psValueType - Value Type (positive / negative) for numbers
pvlKwrdValue - Template Keyword __Value or __Range to validate keyword's value

Definition at line 1880 of file PvlKeyword.cpp.

References _FILEINFO_, Name(), p_values, Size(), Isis::toDouble(), Isis::toInt(), and Isis::IException::User.

Referenced by Isis::PvlContainer::ValidateAllKeywords(), and Isis::PvlContainer::ValidateRepeatOption().

int Isis::PvlKeyword::Width (  )  const [inline]

Returns the current set longest keyword name.

Definition at line 221 of file PvlKeyword.h.

Referenced by Isis::operator<<().

void Isis::PvlKeyword::WriteSpaces ( std::ostream &  os,
int  numSpaces 
) const [private]

This writes numSpaces spaces to the ostream.

Parameters:
os Stream to write to
numSpaces number of spaces to write

Definition at line 879 of file PvlKeyword.cpp.

Referenced by WriteWithWrap().

ostream & Isis::PvlKeyword::WriteWithWrap ( std::ostream &  os,
const QString &  textToWrite,
int  startColumn,
PvlFormat format 
) const [protected]

Wraps output so that length doesn't exceed the character limit.

By default, the character limit is set to 80, and can be changed with the method SetCharLimit. Used as a helper method for output of PvlKeyword.

Parameters:
os Designated output stream
textToWrite The text to be written
startColumn The starting column after the "=" sign.
endOfLine The EOL character
Returns:
ostream& Reference to ostream.
See also:
operator<<

Definition at line 627 of file PvlKeyword.cpp.

References Isis::PvlFormat::CharLimit(), pos, and WriteSpaces().

Referenced by Isis::operator<<().


Member Data Documentation

std::vector<QString>* Isis::PvlKeyword::p_comments [private]

The comments for the keyword.

Definition at line 287 of file PvlKeyword.h.

Referenced by AddComment(), ClearComments(), Comment(), Init(), operator=(), and ~PvlKeyword().

Formatter object.

Definition at line 267 of file PvlKeyword.h.

Referenced by GetFormat(), Init(), Isis::operator<<(), operator=(), and SetFormat().

The number of indentations to make.

This is based on whether the keyword is in a group, etc.

Definition at line 302 of file PvlKeyword.h.

Referenced by Init(), and operator=().

char* Isis::PvlKeyword::p_name [private]

The keyword's name... This is a c-string for memory efficiency.

Definition at line 271 of file PvlKeyword.h.

Referenced by Init(), Name(), operator=(), operator==(), operator[](), SetName(), and ~PvlKeyword().

std::vector<QString>* Isis::PvlKeyword::p_units [private]

The units for the values.

Definition at line 284 of file PvlKeyword.h.

Referenced by AddValue(), Clear(), Init(), operator=(), SetUnits(), Unit(), and ~PvlKeyword().

QVarLengthArray<QString, 1> Isis::PvlKeyword::p_values [private]

The values in the keyword.

This is a QVarLengthArray purely for optimization purposes. The amount of memory consumed by other data types introduces very significant overhead relative to this type which is meant to be as cost-effective and cheap as possible. Most of the time we have one value per keyword so that is what we're allocating by default with this variable.

Definition at line 281 of file PvlKeyword.h.

Referenced by AddValue(), Clear(), IsEquivalent(), IsNull(), operator=(), operator[](), SetUnits(), Size(), and ValidateKeyword().

The width of the longest keyword.

This is used for spacing out the equals signs on output.

Definition at line 297 of file PvlKeyword.h.

Referenced by Init(), and operator=().


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