Isis 3 Programmer Reference
Isis::PvlContainer Class Reference

Contains more than one keyword-value pair. More...

#include <PvlContainer.h>

Inheritance diagram for Isis::PvlContainer:
Inheritance graph
Collaboration diagram for Isis::PvlContainer:
Collaboration graph

Public Types

enum  InsertMode { Append , Replace }
 Contains both modes: Append or Replace. More...
 
typedef QList< PvlKeyword >::iterator PvlKeywordIterator
 The keyword iterator.
 
typedef QList< PvlKeyword >::const_iterator ConstPvlKeywordIterator
 The const keyword iterator.
 

Public Member Functions

 PvlContainer (const QString &type)
 Constructs a PvlContainer object with a type.
 
 PvlContainer (const QString &type, const QString &name)
 Constructs a PvlContainer object with a keyword name and a container name.
 
 PvlContainer (const PvlContainer &other)
 
void setName (const QString &name)
 Set the name of the container.
 
QString name () const
 Returns the container name.
 
bool isNamed (const QString &match) const
 Returns whether the given string is equal to the container name or not.
 
QString type () const
 Returns the container type.
 
int keywords () const
 Returns the number of keywords contained in the PvlContainer.
 
void clear ()
 Clears PvlKeywords.
 
void addKeyword (const PvlKeyword &keyword, const InsertMode mode=Append)
 Add a keyword to the container.
 
void operator+= (const PvlKeyword &keyword)
 When you use the += operator with a PvlKeyword, it will call the addKeyword() method.
 
PvlKeywordfindKeyword (const QString &name)
 Find a keyword with a specified name.
 
PvlKeywordoperator[] (const QString &name)
 When you use the [] operator with a (string) name, it will call the findKeyword() method.
 
PvlKeywordoperator[] (const int index)
 Return the PvlKeyword object at the specified index.
 
PvlKeywordoperator[] (const char *name)
 When you use the [] operator with a (char) name, it will call the findKeyword() method.
 
const PvlKeywordfindKeyword (const QString &name) const
 Find a keyword with a specified name.
 
const PvlKeywordoperator[] (const QString &name) const
 When you use the [] operator with a (string) name, it will call the findKeyword() method.
 
const PvlKeywordoperator[] (const int index) const
 Return the PvlKeyword object at the specified index.
 
PvlKeyword operator[] (const char *name) const
 When you use the [] operator with a (char) name, it will call the findKeyword() method.
 
bool hasKeyword (const QString &name) const
 Check to see if a keyword exists.
 
PvlKeywordIterator findKeyword (const QString &name, PvlKeywordIterator beg, PvlKeywordIterator end)
 Find the index of a keyword, using iterators.
 
ConstPvlKeywordIterator findKeyword (const QString &name, ConstPvlKeywordIterator beg, ConstPvlKeywordIterator end) const
 Find the index of a keyword, using iterators.
 
PvlKeywordIterator addKeyword (const PvlKeyword &keyword, PvlKeywordIterator pos)
 Insert a keyword at the specified iterator position.
 
PvlKeywordIterator begin ()
 Return the beginning iterator.
 
ConstPvlKeywordIterator begin () const
 Return the const beginning iterator.
 
PvlKeywordIterator end ()
 Return the ending iterator.
 
ConstPvlKeywordIterator end () const
 Return the const ending iterator.
 
void deleteKeyword (const QString &name)
 Remove a specified keyword.
 
void deleteKeyword (const int index)
 Remove the specified keyword.
 
bool cleanDuplicateKeywords ()
 Removes keywords from the container that have BOTH the same name and value.
 
void operator-= (const QString &name)
 When you use the -= operator with a (string) name, it will call the deleteKeyword() method.
 
void operator-= (const PvlKeyword &key)
 When you use the -= operator with a PvlKeyword object, it will call the deleteKeyword() method.
 
QString fileName () const
 Returns the filename used to initialise the Pvl object.
 
void setFormatTemplate (PvlContainer &ref)
 
bool hasFormatTemplate ()
 
PvlContainerformatTemplate ()
 
PvlFormatformat ()
 
void setFormat (PvlFormat *format)
 
int indent ()
 
void setIndent (int indent)
 
int comments () const
 
QString comment (const int index) const
 
void addComment (const QString &comment)
 
PvlKeywordnameKeyword ()
 
const PvlKeywordnameKeyword () const
 
const PvlContaineroperator= (const PvlContainer &other)
 This is an assignment operator.
 

Protected Member Functions

void init ()
 Sets the filename to blank.
 
void setFileName (const QString &filename)
 Sets the filename to the specified string.
 
void validateAllKeywords (PvlContainer &pPvlCont)
 Validate All the Keywords in a Container comparing with the Template.
 
void validateRepeatOption (PvlKeyword &pPvlTmplKwrd, PvlContainer &pPvlCont)
 Validate the Repeat Option for a Keyword.
 

Protected Attributes

QString m_filename
 This contains the filename used to initialize the pvl object.
 
PvlKeyword m_name
 This is the name keyword.
 
QList< PvlKeywordm_keywords
 This is the vector of PvlKeywords the container is holding.
 
PvlContainerm_formatTemplate
 

Detailed Description

Contains more than one keyword-value pair.

This is the container for PvlKeywords. It holds information about more than one set of PvlKeywords.

Author
2002-10-11 Jeff Anderson
History

2005-04-04 Leah Dahmer wrote class documentation.

2006-04-21 Jacob Danton Added format templates abilities.

2006-05-17 Jacob Danton Added DeleteKeyword by index method

2006-09-11 Stuart Sides Added formatting ability

2008-07-02 Steven Lambright Added const functionality

2008-07-10 Steven Lambright PvlContainer is no longer a PvlKeyword, but rather has a set of pvl keywords

2008-09-30 Christopher Austin Replaced all std::endl in the << operator with PvlFormat.FormatEOL()

2008-10-30 Steven Lambright Moved Find methods' implementations to the cpp file from the header file, added <algorithm> include, problem pointed out by "novas0x2a" (Support Forum Member)

2009-06-01 Kris Becker - Added a new AddKeyword method that provides insert capabilities at iterator positions.

2010-01-06 Christopher Austin - Added CleanDuplicateKeywords()

2010-04-13 Eric Hyer - Added Copy constructor

  • Added Assignment operator

2010-09-27 Sharmila Prasad - Validate all the Keywords in a Container and verify the 'Repeat' Option also

2010-10-18 Sharmila Prasad - Added more options for the keyword validation

2013-03-11 Steven Lambright and Mathew Eis - Brought method names and member variable names up to the current Isis 3 coding standards. Fixes #1533.

2015-05-15 J Bonn - fixed usage of iterator that had been deleted.

Definition at line 49 of file PvlContainer.h.

Member Typedef Documentation

◆ ConstPvlKeywordIterator

The const keyword iterator.

Definition at line 160 of file PvlContainer.h.

◆ PvlKeywordIterator

The keyword iterator.

Definition at line 157 of file PvlContainer.h.

Member Enumeration Documentation

◆ InsertMode

Contains both modes: Append or Replace.

Definition at line 95 of file PvlContainer.h.

Constructor & Destructor Documentation

◆ PvlContainer() [1/3]

Isis::PvlContainer::PvlContainer ( const QString & type)

Constructs a PvlContainer object with a type.

Parameters
typeThe type of the container.

Definition at line 26 of file PvlContainer.cpp.

References init(), m_name, Isis::PvlKeyword::setName(), and type().

◆ PvlContainer() [2/3]

Isis::PvlContainer::PvlContainer ( const QString & type,
const QString & name )

Constructs a PvlContainer object with a keyword name and a container name.

Parameters
typeThe type of container.
nameThe name of the container.

Definition at line 37 of file PvlContainer.cpp.

References init(), m_name, name(), setName(), Isis::PvlKeyword::setName(), and type().

◆ PvlContainer() [3/3]

Isis::PvlContainer::PvlContainer ( const PvlContainer & other)

Definition at line 44 of file PvlContainer.cpp.

Member Function Documentation

◆ addComment()

void Isis::PvlContainer::addComment ( const QString & comment)
inline

Definition at line 269 of file PvlContainer.h.

◆ addKeyword() [1/2]

void Isis::PvlContainer::addKeyword ( const PvlKeyword & keyword,
const InsertMode mode = Append )

Add a keyword to the container.

Add a keyword to the PvlContainer object.

Parameters
keywordThe PvlKeyword object to append.
modeUsing the InsertMode value of Append.
keyThe PvlKeyword object to add.
modeThe enum InsertMode has two possible values, Append or Replace. Use Append if you just want to add it to the end, Replace if you want to replace it.

Definition at line 202 of file PvlContainer.cpp.

References findKeyword(), hasKeyword(), m_keywords, and Isis::PvlKeyword::name().

Referenced by Isis::ControlNetDiff::addUniquePoint(), Isis::CameraFactory::Create(), Isis::ControlNetDiff::diff(), Isis::ControlNetDiff::diff(), Isis::ProcessImportPds::ExtractPdsProjection(), operator+=(), Isis::PvlObject::PvlObject(), Isis::ProcessMapMosaic::SetOutputCube(), Isis::Projection::SetUpperLeftCorner(), and Isis::SubArea::UpdateLabel().

◆ addKeyword() [2/2]

PvlContainer::PvlKeywordIterator Isis::PvlContainer::addKeyword ( const PvlKeyword & keyword,
PvlKeywordIterator pos )

Insert a keyword at the specified iterator position.

This method provides the capability to insert a keyword at the specified iterator position. The process follows the description of the STL vector definition along with all the caveats (e.g., invalidation of iterators upon insert operations).

This method will not perform any checks for the existance of the keyword. This could lead to multiple instances of the same keyword in the same container. It is up to the caller to manage this issue.

Parameters
keyKeyword to insert
posIterator position where to insert the new keyword
Returns
PvlContainer::PvlKeywordIterator Returns the position of the inserted keyword per the STL vector documentation.

Definition at line 233 of file PvlContainer.cpp.

References m_keywords.

◆ begin() [1/2]

PvlKeywordIterator Isis::PvlContainer::begin ( )
inline

Return the beginning iterator.

Returns
The beginning iterator.

Definition at line 178 of file PvlContainer.h.

References m_keywords.

Referenced by cleanDuplicateKeywords(), deleteKeyword(), deleteKeyword(), Isis::PvlObject::findKeyword(), findKeyword(), findKeyword(), Isis::PvlObject::hasKeyword(), and hasKeyword().

◆ begin() [2/2]

ConstPvlKeywordIterator Isis::PvlContainer::begin ( ) const
inline

Return the const beginning iterator.

Returns
The const beginning iterator.

Definition at line 186 of file PvlContainer.h.

References m_keywords.

◆ cleanDuplicateKeywords()

bool Isis::PvlContainer::cleanDuplicateKeywords ( )

Removes keywords from the container that have BOTH the same name and value.

Returns
bool True if one or more keywords were deleted; False if no keywords were deleted.

Definition at line 136 of file PvlContainer.cpp.

References begin(), end(), and m_keywords.

◆ clear()

void Isis::PvlContainer::clear ( )
inline

Clears PvlKeywords.

Definition at line 91 of file PvlContainer.h.

References m_keywords.

Referenced by Isis::PvlObject::clear().

◆ comment()

QString Isis::PvlContainer::comment ( const int index) const
inline

Definition at line 265 of file PvlContainer.h.

◆ comments()

int Isis::PvlContainer::comments ( ) const
inline

Definition at line 262 of file PvlContainer.h.

◆ deleteKeyword() [1/2]

void Isis::PvlContainer::deleteKeyword ( const int index)

Remove the specified keyword.

Parameters
indexThe index of the keyword to remove.
Exceptions
iException::PvlKeyword doesn't exist.

Definition at line 115 of file PvlContainer.cpp.

References begin(), m_filename, m_keywords, name(), type(), and Isis::IException::Unknown.

◆ deleteKeyword() [2/2]

void Isis::PvlContainer::deleteKeyword ( const QString & name)

◆ end() [1/2]

◆ end() [2/2]

ConstPvlKeywordIterator Isis::PvlContainer::end ( ) const
inline

Return the const ending iterator.

Returns
The const ending iterator.

Definition at line 202 of file PvlContainer.h.

References m_keywords.

◆ fileName()

◆ findKeyword() [1/4]

Isis::PvlKeyword & Isis::PvlContainer::findKeyword ( const QString & name)

◆ findKeyword() [2/4]

const Isis::PvlKeyword & Isis::PvlContainer::findKeyword ( const QString & name) const

Find a keyword with a specified name.

Parameters
nameThe name of the keyword to look for.
Returns
The PvlKeyword object.
Exceptions
IExceptionThe keyword doesn't exist.

Definition at line 80 of file PvlContainer.cpp.

References begin(), end(), findKeyword(), m_filename, name(), type(), and Isis::IException::Unknown.

◆ findKeyword() [3/4]

PvlContainer::ConstPvlKeywordIterator Isis::PvlContainer::findKeyword ( const QString & name,
PvlContainer::ConstPvlKeywordIterator beg,
PvlContainer::ConstPvlKeywordIterator end ) const

Find the index of a keyword, using iterators.

Parameters
nameThe name of the keyword.
begThe beginning iterator.
endThe ending iterator.
Returns
The keyword index.

Definition at line 366 of file PvlContainer.cpp.

References end(), and name().

◆ findKeyword() [4/4]

PvlContainer::PvlKeywordIterator Isis::PvlContainer::findKeyword ( const QString & name,
PvlContainer::PvlKeywordIterator beg,
PvlContainer::PvlKeywordIterator end )

Find the index of a keyword, using iterators.

Parameters
nameThe name of the keyword.
begThe beginning iterator.
endThe ending iterator.
Returns
The keyword index.

Definition at line 351 of file PvlContainer.cpp.

References end(), and name().

◆ format()

PvlFormat * Isis::PvlContainer::format ( )
inline

Definition at line 248 of file PvlContainer.h.

◆ formatTemplate()

PvlContainer * Isis::PvlContainer::formatTemplate ( )
inline

Definition at line 244 of file PvlContainer.h.

◆ hasFormatTemplate()

bool Isis::PvlContainer::hasFormatTemplate ( )
inline

Definition at line 240 of file PvlContainer.h.

◆ hasKeyword()

bool Isis::PvlContainer::hasKeyword ( const QString & name) const

Check to see if a keyword exists.

Parameters
nameThe name of the keyword to check for.
Returns
True if the keyword exists, false if it doesn't.

Definition at line 159 of file PvlContainer.cpp.

References begin(), end(), findKeyword(), and name().

Referenced by addKeyword(), Isis::Albedo::Albedo(), Isis::AtmosModel::AtmosModel(), Isis::BulletShapeModel::BulletShapeModel(), IsisAml::CommandLine(), Isis::ControlNetDiff::compareGroups(), Isis::ControlPointV0001::ControlPointV0001(), Isis::ControlPointV0002::ControlPointV0002(), Isis::ControlPointV0003::ControlPointV0003(), Isis::DemShape::DemShape(), Isis::EmbreeShapeModel::EmbreeShapeModel(), Isis::Kernels::findKernels(), Isis::Kernels::getCameraVersion(), Isis::GroundGrid::GroundGrid(), Isis::Spice::hasKernels(), Isis::HiLab::HiLab(), Isis::Spice::init(), Isis::RingPlaneProjection::Mapping(), Isis::TProjection::Mapping(), Isis::NaifDskShape::NaifDskShape(), Isis::PhotoModel::PhotoModel(), Isis::Projection::Projection(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::ProcessImportFits::setFitsFile(), Isis::ProcessImportFits::setProcessFileStructure(), Isis::Target::Target(), Isis::Target::Target(), Isis::TProjection::TProjection(), Isis::SpectralPlotTool::updateTool(), validateAllKeywords(), Isis::ControlNetValidMeasure::ValidatePvlDN(), Isis::ControlNetValidMeasure::ValidatePvlEmissionAngle(), Isis::ControlNetValidMeasure::ValidatePvlFromEdge(), Isis::ControlNetValidMeasure::ValidatePvlIncidenceAngle(), Isis::ControlNetValidMeasure::ValidatePvlResidualTolerances(), Isis::ControlNetValidMeasure::ValidatePvlResolution(), Isis::ControlNetValidMeasure::ValidatePvlShiftTolerances(), and validateRepeatOption().

◆ indent()

int Isis::PvlContainer::indent ( )
inline

Definition at line 255 of file PvlContainer.h.

◆ init()

void Isis::PvlContainer::init ( )
protected

Sets the filename to blank.

Definition at line 51 of file PvlContainer.cpp.

References m_filename.

Referenced by PvlContainer(), and PvlContainer().

◆ isNamed()

bool Isis::PvlContainer::isNamed ( const QString & match) const
inline

Returns whether the given string is equal to the container name or not.

Parameters
matchThe string to compare to the name.
Returns
True if the name and string are the same, false if they are not.

Definition at line 72 of file PvlContainer.h.

References m_name, and Isis::PvlKeyword::stringEqual().

Referenced by Isis::KernelDb::findAll(), Isis::Table::initFromBlob(), and Isis::RemoveHiBlobs().

◆ keywords()

int Isis::PvlContainer::keywords ( ) const
inline

Returns the number of keywords contained in the PvlContainer.

Returns
The number of keywords.

Definition at line 86 of file PvlContainer.h.

References m_keywords.

Referenced by Isis::ControlPointV0001::ControlPointV0001(), Isis::ControlPointV0002::ControlPointV0002(), Isis::ControlPointV0003::ControlPointV0003(), Isis::operator<<(), Isis::Table::toBlob(), and validateAllKeywords().

◆ name()

◆ nameKeyword() [1/2]

PvlKeyword & Isis::PvlContainer::nameKeyword ( )
inline

Definition at line 273 of file PvlContainer.h.

◆ nameKeyword() [2/2]

const PvlKeyword & Isis::PvlContainer::nameKeyword ( ) const
inline

Definition at line 276 of file PvlContainer.h.

◆ operator+=()

void Isis::PvlContainer::operator+= ( const PvlKeyword & keyword)
inline

When you use the += operator with a PvlKeyword, it will call the addKeyword() method.

Parameters
keywordThe PvlKeyword to be added.

Definition at line 110 of file PvlContainer.h.

References addKeyword().

◆ operator-=() [1/2]

void Isis::PvlContainer::operator-= ( const PvlKeyword & key)
inline

When you use the -= operator with a PvlKeyword object, it will call the deleteKeyword() method.

Parameters
keyThe PvlKeyword object to remove.

Definition at line 224 of file PvlContainer.h.

References deleteKeyword(), and Isis::PvlKeyword::name().

◆ operator-=() [2/2]

void Isis::PvlContainer::operator-= ( const QString & name)
inline

When you use the -= operator with a (string) name, it will call the deleteKeyword() method.

Parameters
nameThe name of the keyword to remove.

Definition at line 216 of file PvlContainer.h.

References deleteKeyword(), and name().

◆ operator=()

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

This is an assignment operator.

Definition at line 375 of file PvlContainer.cpp.

References m_filename, m_keywords, m_name, and Isis::PvlKeyword::m_name.

Referenced by Isis::PvlGroup::operator=(), and Isis::PvlObject::operator=().

◆ operator[]() [1/6]

PvlKeyword & Isis::PvlContainer::operator[] ( const char * name)
inline

When you use the [] operator with a (char) name, it will call the findKeyword() method.

Parameters
nameThe name of the keyword to find.

Definition at line 130 of file PvlContainer.h.

References name(), and operator[]().

◆ operator[]() [2/6]

PvlKeyword Isis::PvlContainer::operator[] ( const char * name) const
inline

When you use the [] operator with a (char) name, it will call the findKeyword() method.

Parameters
nameThe name of the keyword to find.

Definition at line 151 of file PvlContainer.h.

References name(), and operator[]().

◆ operator[]() [3/6]

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

Return the PvlKeyword object at the specified index.

Parameters
indexThe index to use.
Returns
The PvlKeyword at the specified index.
Exceptions
iException::MessageThe index is out of bounds.

Definition at line 172 of file PvlContainer.cpp.

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

◆ operator[]() [4/6]

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

Return the PvlKeyword object at the specified index.

Parameters
indexThe index to use.
Returns
The PvlKeyword at the specified index.
Exceptions
iException::MessageThe index is out of bounds.

Definition at line 187 of file PvlContainer.cpp.

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

◆ operator[]() [5/6]

PvlKeyword & Isis::PvlContainer::operator[] ( const QString & name)
inline

When you use the [] operator with a (string) name, it will call the findKeyword() method.

Parameters
nameThe name of the keyword to find.

Definition at line 120 of file PvlContainer.h.

References findKeyword(), and name().

Referenced by operator[](), and operator[]().

◆ operator[]() [6/6]

const PvlKeyword & Isis::PvlContainer::operator[] ( const QString & name) const
inline

When you use the [] operator with a (string) name, it will call the findKeyword() method.

Parameters
nameThe name of the keyword to find.

Definition at line 141 of file PvlContainer.h.

References findKeyword(), and name().

◆ setFileName()

void Isis::PvlContainer::setFileName ( const QString & filename)
inlineprotected

Sets the filename to the specified string.

Parameters
filenameThe new filename to use.

Definition at line 301 of file PvlContainer.h.

References m_filename.

◆ setFormat()

void Isis::PvlContainer::setFormat ( PvlFormat * format)
inline

Definition at line 251 of file PvlContainer.h.

◆ setFormatTemplate()

void Isis::PvlContainer::setFormatTemplate ( PvlContainer & ref)
inline

Definition at line 236 of file PvlContainer.h.

◆ setIndent()

void Isis::PvlContainer::setIndent ( int indent)
inline

Definition at line 258 of file PvlContainer.h.

◆ setName()

void Isis::PvlContainer::setName ( const QString & name)
inline

◆ type()

QString Isis::PvlContainer::type ( ) const
inline

◆ validateAllKeywords()

void Isis::PvlContainer::validateAllKeywords ( PvlContainer & pPvlCont)
protected

Validate All the Keywords in a Container comparing with the Template.

Validate all the PvlKeywords in this container.

Author
Sharmila Prasad (9/24/2010)
Parameters
pPvlCont- Container to be Validated
History
2010-10-18 Sharmila Prasad - Added options "Type", "Range", "Value" for the keyword validation

Definition at line 394 of file PvlContainer.cpp.

References findKeyword(), hasKeyword(), keywords(), Isis::PvlKeyword::name(), Isis::IException::User, and validateRepeatOption().

Referenced by Isis::PvlGroup::validateGroup(), Isis::PvlObject::validateObject(), and Isis::Pvl::validatePvl().

◆ validateRepeatOption()

void Isis::PvlContainer::validateRepeatOption ( PvlKeyword & pPvlTmplKwrd,
PvlContainer & pPvlCont )
protected

Validate the Repeat Option for a Keyword.

Validate Repeat Option in the Template Group.

This option indicates that a particular keyname can be repeated several times

Author
Sharmila Prasad (9/24/2010)
Parameters
pPvlTmplKwrd- Template Keyword wit
pPvlCont- Container with all the Keywords
History
2010-10-18 Sharmila Prasad - Added option "Type" for the keyword validation

Definition at line 470 of file PvlContainer.cpp.

References findKeyword(), hasKeyword(), and Isis::PvlKeyword::name().

Referenced by validateAllKeywords().

Member Data Documentation

◆ m_filename

◆ m_formatTemplate

PvlContainer* Isis::PvlContainer::m_formatTemplate
protected

Definition at line 305 of file PvlContainer.h.

◆ m_keywords

QList<PvlKeyword> Isis::PvlContainer::m_keywords
protected

This is the vector of PvlKeywords the container is holding.

Definition at line 290 of file PvlContainer.h.

Referenced by addKeyword(), addKeyword(), begin(), begin(), cleanDuplicateKeywords(), clear(), deleteKeyword(), deleteKeyword(), end(), end(), keywords(), operator=(), operator[](), and operator[]().

◆ m_name

PvlKeyword Isis::PvlContainer::m_name
protected

This is the name keyword.

Definition at line 289 of file PvlContainer.h.

Referenced by isNamed(), name(), operator=(), PvlContainer(), PvlContainer(), setName(), and type().


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