Isis Developer Reference
Isis::PvlToPvlTranslationManager Class Reference

Allows applications to translate simple text files. More...

#include <PvlToPvlTranslationManager.h>

Inheritance diagram for Isis::PvlToPvlTranslationManager:
Inheritance graph
Collaboration diagram for Isis::PvlToPvlTranslationManager:
Collaboration graph

Public Member Functions

 PvlToPvlTranslationManager (const QString &transFile)
 Constructs and initializes a TranslationManager object from given the Pvl translation file.
 
 PvlToPvlTranslationManager (std::istream &transStrm)
 Constructs and initializes a TranslationManager object from the given input stream.
 
 PvlToPvlTranslationManager (Pvl &inputLabel, const QString &transFile)
 Constructs and initializes a TranslationManager object.
 
 PvlToPvlTranslationManager (Pvl &inputLabel, std::istream &transStrm)
 Constructs and initializes a TranslationManager object.
 
virtual ~PvlToPvlTranslationManager ()
 Destroys the TranslationManager object.
 
virtual QString Translate (QString translationGroupName, int findex=0)
 Returns a translated value.
 
void Auto (Pvl &outputLabel)
 Automatically translate all the output names found in the translation table If a output name does not translate an error will be thrown by one of the support members Store the translated key, value pairs in the argument pvl.
 
void Auto (Pvl &inputLabel, Pvl &outputLabel)
 Automatically translate all the output names found in the translation table If a output name does not translate an error will be thrown by one of the support members Store the translated key, value pairs in the argument pvl.
 
virtual const PvlKeywordInputKeyword (const QString translationGroupName) const
 Returns the ith input value associated with the output name argument.
 
virtual bool InputHasKeyword (const QString translationGroupName)
 Indicates if the input keyword corresponding to the output name exists in the label.
 
void SetLabel (Pvl &inputLabel)
 
QString Translate (const QString translationGroupName, const QString inputKeyValue="") const
 Translates a single output value from the given translation group name and input value.
 
virtual QStringList parseSpecification (QString specification) const
 Parses and validates a dependency specification.
 
virtual PvlKeyword InputGroup (const QString translationGroupName, const int inst=0) const
 Returns the input group name from the translation table corresponding to the output name argument.
 
virtual QString InputKeywordName (const QString translationGroupName) const
 Returns the input keyword name from the translation table corresponding to the output name argument.
 
QString InputDefault (const QString translationGroupName) const
 Returns the input default value from the translation table corresponding to the output name argument.
 
void AddTable (std::istream &transStm)
 Adds the contents of a translation table to the searchable groups/keys Also performs a verification, to ensure that the translation table is valid.
 
void AddTable (const QString &transFile)
 Adds the contents of a translation table to the searchable groups/keys.
 

Protected Member Functions

virtual PvlKeyword DoTranslation (const QString translationGroupName)
 Translate the requested output name to output values using the input name and values or default value.
 
virtual const PvlContainerGetContainer (const PvlKeyword &inputGroup) const
 Return a container from the input label according tund.
 
virtual PvlContainerCreateContainer (const QString translationGroupName, Pvl &pvl)
 Create the requsted container and any containers above it and return a reference to the container.
 
PvlTranslationTable ()
 Protected accessor for pvl translation table passed into class.
 
const PvlTranslationTable () const
 Protected accessor for const pvl translation table passed into class.
 
virtual std::vector< std::pair< QString, int > > validKeywords () const
 Returns a vector of valid keyword names and their sizes.
 
bool hasInputDefault (const QString translationGroupName)
 Determines whether the given group has a default input value.
 
bool IsAuto (const QString translationGroupName)
 Determines whether the given group should be automatically translated.
 
bool IsOptional (const QString translationGroupName)
 Determines whether the translation group is optional.
 
PvlKeyword OutputPosition (const QString translationGroupName)
 Retrieves the OutputPosition PvlKeyword for the translation group with the given name.
 
QString OutputName (const QString translationGroupName)
 Retrieves a string containing the value of the OutputName keyword for the translation group with the given name.
 
const PvlGroupfindTranslationGroup (const QString translationGroupName) const
 Searches for translation group with the given name.
 

Detailed Description

Allows applications to translate simple text files.

This class allows the translation of text files which can be parsed by the Pvl class.

Author
2003-05-29 Stuart Sides

Constructor & Destructor Documentation

◆ PvlToPvlTranslationManager() [1/4]

Isis::PvlToPvlTranslationManager::PvlToPvlTranslationManager ( const QString & transFile)

Constructs and initializes a TranslationManager object from given the Pvl translation file.

If this constructor is used, the user will need to set the input label before translating. This may be done by using SetLabel(Pvl inputLabel) or Auto(Pvl inputLabel, Pvl outputLabel).

Parameters
transFileThe translation file to be used to translate keywords in the input label.

◆ PvlToPvlTranslationManager() [2/4]

Isis::PvlToPvlTranslationManager::PvlToPvlTranslationManager ( std::istream & transStrm)

Constructs and initializes a TranslationManager object from the given input stream.

If this constructor is used, the user will need to set the input label before translating. This may be done by using SetLabel(Pvl inputLabel) or Auto(Pvl inputLabel, Pvl outputLabel).

Parameters
transStrmA stream containing the translation table to be used to translate keywords in the input label.

◆ PvlToPvlTranslationManager() [3/4]

Isis::PvlToPvlTranslationManager::PvlToPvlTranslationManager ( Pvl & inputLabel,
const QString & transFile )

Constructs and initializes a TranslationManager object.

Parameters
inputLabelThe Pvl holding the input label.
transFileThe translation file to be used to translate keywords in the input label.

◆ PvlToPvlTranslationManager() [4/4]

Isis::PvlToPvlTranslationManager::PvlToPvlTranslationManager ( Pvl & inputLabel,
std::istream & transStrm )

Constructs and initializes a TranslationManager object.

Parameters
inputLabelThe Pvl holding the input label.
transStrmA stream containing the translation table to be used to translate keywords in the input label.

◆ ~PvlToPvlTranslationManager()

Isis::PvlToPvlTranslationManager::~PvlToPvlTranslationManager ( )
virtual

Destroys the TranslationManager object.

Member Function Documentation

◆ AddTable() [1/2]

void Isis::PvlTranslationTable::AddTable ( const QString & transFile)
inherited

Adds the contents of a translation table to the searchable groups/keys.

Parameters
transFileThe name of the translation file to be added.

References Isis::Pvl::read().

◆ AddTable() [2/2]

void Isis::PvlTranslationTable::AddTable ( std::istream & transStm)
inherited

Adds the contents of a translation table to the searchable groups/keys Also performs a verification, to ensure that the translation table is valid.

Parameters
transStmThe stream to be added.
Exceptions
IException::User- "Unable to find InputKey for group in translation file."
IException::User- "Keyword is not valid. Error in file."
IException::User- "Keyword does not have correct number of elements. Error in file."

References _FILEINFO_, Isis::PvlKeyword::name(), Isis::IException::User, and Isis::PvlTranslationTable::validKeywords().

Referenced by Isis::LabelTranslationManager::LabelTranslationManager(), Isis::LabelTranslationManager::LabelTranslationManager(), Isis::PvlTranslationTable::PvlTranslationTable(), Isis::XmlToPvlTranslationManager::XmlToPvlTranslationManager(), Isis::XmlToPvlTranslationManager::XmlToPvlTranslationManager(), Isis::XmlToPvlTranslationManager::XmlToPvlTranslationManager(), and Isis::XmlToPvlTranslationManager::XmlToPvlTranslationManager().

◆ Auto() [1/2]

void Isis::PvlToPvlTranslationManager::Auto ( Pvl & inputLabel,
Pvl & outputLabel )

Automatically translate all the output names found in the translation table If a output name does not translate an error will be thrown by one of the support members Store the translated key, value pairs in the argument pvl.

References Auto().

◆ Auto() [2/2]

void Isis::PvlToPvlTranslationManager::Auto ( Pvl & outputLabel)
virtual

Automatically translate all the output names found in the translation table If a output name does not translate an error will be thrown by one of the support members Store the translated key, value pairs in the argument pvl.

Reimplemented from Isis::LabelTranslationManager.

References CreateContainer(), DoTranslation(), Isis::PvlObject::group(), Isis::PvlObject::groups(), Isis::PvlTranslationTable::IsAuto(), Isis::PvlTranslationTable::IsOptional(), and Isis::PvlTranslationTable::TranslationTable().

Referenced by Auto().

◆ CreateContainer()

PvlContainer * Isis::PvlToPvlTranslationManager::CreateContainer ( const QString translationGroupName,
Pvl & pvl )
protectedvirtual

Create the requsted container and any containers above it and return a reference to the container.

List is a PvlKeyword with an array of container types and their names.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
pvlPvl

Reimplemented from Isis::LabelTranslationManager.

References Isis::LabelTranslationManager::CreateContainer().

Referenced by Auto().

◆ DoTranslation()

PvlKeyword Isis::PvlToPvlTranslationManager::DoTranslation ( const QString translationGroupName)
protectedvirtual

Translate the requested output name to output values using the input name and values or default value.

Note: This is a protected method used when automatically translating

See also
Auto().
Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
PvlKeyword

Reimplemented from Isis::LabelTranslationManager.

References Isis::PvlKeyword::addValue(), Isis::PvlObject::findGroup(), GetContainer(), Isis::PvlTranslationTable::InputGroup(), Isis::PvlTranslationTable::OutputName(), Isis::PvlKeyword::setName(), Isis::PvlTranslationTable::Translate(), and Isis::PvlTranslationTable::TranslationTable().

Referenced by Auto().

◆ findTranslationGroup()

const PvlGroup & Isis::PvlTranslationTable::findTranslationGroup ( const QString translationGroupName) const
protectedinherited

Searches for translation group with the given name.

See also
PvlObject::findGroup()
Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
const PvlGroup& The first PVL group with the given name.
Exceptions
IException::Programmer- "Unable to find translation group in file."

References _FILEINFO_, Isis::PvlContainer::fileName(), Isis::PvlObject::findGroup(), Isis::PvlObject::hasGroup(), and Isis::IException::Programmer.

Referenced by Isis::PvlTranslationTable::hasInputDefault(), Isis::PvlTranslationTable::InputDefault(), Isis::PvlTranslationTable::InputGroup(), Isis::PvlTranslationTable::InputKeywordName(), Isis::PvlTranslationTable::IsAuto(), Isis::PvlTranslationTable::IsOptional(), Isis::PvlTranslationTable::OutputName(), Isis::PvlTranslationTable::OutputPosition(), and Isis::PvlTranslationTable::Translate().

◆ GetContainer()

const PvlContainer * Isis::PvlToPvlTranslationManager::GetContainer ( const PvlKeyword & inputGroup) const
protectedvirtual

Return a container from the input label according tund.

References Isis::PvlObject::findObject(), and Isis::PvlKeyword::stringEqual().

Referenced by DoTranslation(), InputHasKeyword(), InputKeyword(), and Translate().

◆ hasInputDefault()

bool Isis::PvlTranslationTable::hasInputDefault ( const QString translationGroupName)
protectedinherited

Determines whether the given group has a default input value.

This method returns true if the translation group contains a PvlKeyword with the name "InputDefault". Note: no value needs to be assigned to this keyword.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
bool Indicates whether the given group has an InputDefault keyword.

References Isis::PvlTranslationTable::findTranslationGroup().

Referenced by Isis::XmlToPvlTranslationManager::Translate().

◆ InputDefault()

QString Isis::PvlTranslationTable::InputDefault ( const QString translationGroupName) const
inherited

Returns the input default value from the translation table corresponding to the output name argument.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
QString The input default value.

References Isis::PvlTranslationTable::findTranslationGroup().

Referenced by Isis::XmlToPvlTranslationManager::Translate().

◆ InputGroup()

PvlKeyword Isis::PvlTranslationTable::InputGroup ( const QString translationGroupName,
const int inst = 0 ) const
virtualinherited

Returns the input group name from the translation table corresponding to the output name argument.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
instThe occurence number of the "InputGroup" keyword (first one is zero)
Returns
QString The input group name
Exceptions
IException::Programmer- "Keyword [InputPosition] cannot have a comma [,] in the value."

References _FILEINFO_, Isis::PvlTranslationTable::findTranslationGroup(), Isis::IException::Programmer, and Isis::PvlKeyword::size().

Referenced by DoTranslation(), Isis::PvlToXmlTranslationManager::doTranslation(), InputHasKeyword(), Isis::PvlToXmlTranslationManager::InputHasKeyword(), InputKeyword(), Isis::PvlToXmlTranslationManager::InputKeyword(), Translate(), and Isis::PvlToXmlTranslationManager::Translate().

◆ InputHasKeyword()

bool Isis::PvlToPvlTranslationManager::InputHasKeyword ( const QString translationGroupName)
virtual

Indicates if the input keyword corresponding to the output name exists in the label.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.

References GetContainer(), Isis::PvlTranslationTable::InputGroup(), and Isis::PvlTranslationTable::InputKeywordName().

◆ InputKeyword()

const PvlKeyword & Isis::PvlToPvlTranslationManager::InputKeyword ( const QString translationGroupName) const
virtual

Returns the ith input value associated with the output name argument.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
findexThe index into the input keyword array. Defaults to 0
Exceptions
IException::Programmer

References _FILEINFO_, Isis::PvlContainer::fileName(), GetContainer(), Isis::PvlTranslationTable::InputGroup(), Isis::PvlTranslationTable::InputKeywordName(), Isis::IException::Programmer, and Isis::PvlTranslationTable::TranslationTable().

◆ InputKeywordName()

QString Isis::PvlTranslationTable::InputKeywordName ( const QString translationGroupName) const
virtualinherited

Returns the input keyword name from the translation table corresponding to the output name argument.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
QString The input keyword name
Exceptions
IException::Programmer

References Isis::PvlTranslationTable::findTranslationGroup().

Referenced by Isis::PvlToXmlTranslationManager::doTranslation(), InputHasKeyword(), Isis::PvlToXmlTranslationManager::InputHasKeyword(), InputKeyword(), Isis::PvlToXmlTranslationManager::InputKeyword(), Translate(), and Isis::PvlToXmlTranslationManager::Translate().

◆ IsAuto()

bool Isis::PvlTranslationTable::IsAuto ( const QString translationGroupName)
protectedinherited

Determines whether the given group should be automatically translated.

This method returns true if the translation group contains a PvlKeyword with the name "Auto". Note: no value is assigned to this keyword.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
bool Indicates whether the given group has an Auto keyword.

References Isis::PvlTranslationTable::findTranslationGroup().

Referenced by Isis::LabelTranslationManager::Auto(), Auto(), and Isis::PvlToXmlTranslationManager::Auto().

◆ IsOptional()

bool Isis::PvlTranslationTable::IsOptional ( const QString translationGroupName)
protectedinherited

Determines whether the translation group is optional.

This method returns true if the translation group contains a PvlKeyword with the name "Optional". Note: no value is assigned to this keyword.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
bool Indicates whether the given group has an Optional keyword.

References Isis::PvlTranslationTable::findTranslationGroup().

Referenced by Isis::LabelTranslationManager::Auto(), Auto(), and Isis::PvlToXmlTranslationManager::Auto().

◆ OutputName()

QString Isis::PvlTranslationTable::OutputName ( const QString translationGroupName)
protectedinherited

Retrieves a string containing the value of the OutputName keyword for the translation group with the given name.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
QString The value of the OutputName keyword from the given translation group.

References Isis::PvlTranslationTable::findTranslationGroup().

Referenced by DoTranslation(), and Isis::PvlToXmlTranslationManager::doTranslation().

◆ OutputPosition()

PvlKeyword Isis::PvlTranslationTable::OutputPosition ( const QString translationGroupName)
protectedinherited

Retrieves the OutputPosition PvlKeyword for the translation group with the given name.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
Returns
PvlKeyword The OutputPosition keyword from the given translation group.
Exceptions
IException::Programmer- "Unable to find translation keyword [OutputPostion] in translation group in file."

References _FILEINFO_, Isis::PvlContainer::fileName(), Isis::PvlTranslationTable::findTranslationGroup(), and Isis::IException::Programmer.

Referenced by Isis::LabelTranslationManager::CreateContainer(), and Isis::PvlToXmlTranslationManager::createParentElements().

◆ parseSpecification()

QStringList Isis::LabelTranslationManager::parseSpecification ( QString specification) const
virtualinherited

Parses and validates a dependency specification.

Parameters
specificationThe dependency specification string.
Returns
QStringList The dependency split into 3 components
  1. the type (att or tag)
  2. the name of what to check
  3. the value to check for
Exceptions
IException::Programmer"Malformed dependency specification."
IException::Programmer"Specification does not have two components separated by [@], the type of dependency and the name-value pair. @throws IException::Programmer "Dependency type specification is invalid. Valid types are [att] and [tag]" @throws IException::Programmer "Name-value specification does not have two components separated by [|]."

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

Referenced by Isis::PvlToXmlTranslationManager::addAttributes(), Isis::PvlToXmlTranslationManager::addSiblings(), Isis::XmlToPvlTranslationManager::checkDependencies(), Isis::PvlToXmlTranslationManager::createParentElements(), and Isis::PvlToXmlTranslationManager::doTranslation().

◆ SetLabel()

void Isis::PvlToPvlTranslationManager::SetLabel ( Pvl & inputLabel)

◆ Translate() [1/2]

QString Isis::PvlTranslationTable::Translate ( const QString translationGroupName,
const QString inputKeyValue = "" ) const
inherited

Translates a single output value from the given translation group name and input value.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
inputKeyValueThe value to be translated, from the input keyword.
Returns
QString The translated value, for the output keyword.
Exceptions
IException::Programmer- "No value or default value to translate for translation group."
IException::Programmer- "Unable to find translation value in file."

References _FILEINFO_, Isis::PvlContainer::fileName(), Isis::PvlTranslationTable::findTranslationGroup(), and Isis::IException::Programmer.

Referenced by DoTranslation(), Isis::PvlToXmlTranslationManager::doTranslation(), Translate(), Isis::XmlToPvlTranslationManager::Translate(), and Isis::PvlToXmlTranslationManager::Translate().

◆ Translate() [2/2]

QString Isis::PvlToPvlTranslationManager::Translate ( QString translationGroupName,
int findex = 0 )
virtual

Returns a translated value.

The output name is used to find the input group, keyword, default and translations in the translation table. If the keyword does not exist in the input label and an input default is available, then this default will be used as the input value. This input value is then used to search all of the translations. If a match is found the translated value is returned.

Parameters
translationGroupNameThe name of the PVL translation group used to identify the input/output keywords to be translated. Often, this is the same as the output keyword name.
findexThe index into the input keyword array. Defaults to 0
Returns
string

Implements Isis::LabelTranslationManager.

References GetContainer(), Isis::PvlTranslationTable::InputGroup(), Isis::PvlTranslationTable::InputKeywordName(), and Isis::PvlTranslationTable::Translate().

◆ TranslationTable() [1/2]

Pvl & Isis::PvlTranslationTable::TranslationTable ( )
protectedinherited

Protected accessor for pvl translation table passed into class.

This method returns a reference to the translation table member.

Returns
Pvl The translation table as a PVL object.

Referenced by Isis::LabelTranslationManager::Auto(), Auto(), Isis::PvlToXmlTranslationManager::Auto(), DoTranslation(), InputKeyword(), Isis::PvlToXmlTranslationManager::InputKeyword(), and Isis::XmlToPvlTranslationManager::Translate().

◆ TranslationTable() [2/2]

const Pvl & Isis::PvlTranslationTable::TranslationTable ( ) const
protectedinherited

Protected accessor for const pvl translation table passed into class.

This method returns a const reference to the translation table member.

Returns
Pvl The translation table as a PVL object.

◆ validKeywords()

vector< pair< QString, int > > Isis::PvlTranslationTable::validKeywords ( ) const
protectedvirtualinherited

Returns a vector of valid keyword names and their sizes.

A size of -1 indicates that the keyword can be any size.

Returns
vector<pair<QString,int>> A vector of valid keyword names and their sizes.

Reimplemented in Isis::PvlToXmlTranslationManager, and Isis::XmlToPvlTranslationManager.

References Isis::PvlTranslationTable::validKeywords().

Referenced by Isis::PvlTranslationTable::AddTable(), Isis::PvlToXmlTranslationManager::validKeywords(), Isis::PvlTranslationTable::validKeywords(), and Isis::XmlToPvlTranslationManager::validKeywords().


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