Isis 3 Programmer Reference
|
Internalizes a translation table. More...
#include <PvlTranslationTable.h>
Public Member Functions | |
PvlTranslationTable (FileName transFile) | |
Constructs and initializes a PvlTranslationTable object. More... | |
PvlTranslationTable (std::istream &istr) | |
Constructs and initializes a PvlTranslationTable object. More... | |
PvlTranslationTable () | |
Construct an empty PvlTranslationTable. More... | |
virtual | ~PvlTranslationTable () |
Destroys the PvlTranslationTable object. More... | |
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. More... | |
virtual QString | InputKeywordName (const QString translationGroupName) const |
Returns the input keyword name from the translation table corresponding to the output name argument. More... | |
QString | InputDefault (const QString translationGroupName) const |
Returns the input default value from the translation table corresponding to the output name argument. More... | |
QString | Translate (const QString translationGroupName, const QString inputKeyValue="") const |
Translates a single output value from the given translation group name and input value. More... | |
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. More... | |
void | AddTable (const QString &transFile) |
Adds the contents of a translation table to the searchable groups/keys. More... | |
Protected Member Functions | |
Pvl & | TranslationTable () |
Protected accessor for pvl translation table passed into class. More... | |
const Pvl & | TranslationTable () const |
Protected accessor for const pvl translation table passed into class. More... | |
virtual std::vector< std::pair< QString, int > > | validKeywords () const |
Returns a vector of valid keyword names and their sizes. More... | |
bool | hasInputDefault (const QString translationGroupName) |
Determines whether the given group has a default input value. More... | |
bool | IsAuto (const QString translationGroupName) |
Determines whether the given group should be automatically translated. More... | |
bool | IsOptional (const QString translationGroupName) |
Determines whether the translation group is optional. More... | |
PvlKeyword | OutputPosition (const QString translationGroupName) |
Retrieves the OutputPosition PvlKeyword for the translation group with the given name. More... | |
QString | OutputName (const QString translationGroupName) |
Retrieves a string containing the value of the OutputName keyword for the translation group with the given name. More... | |
const PvlGroup & | findTranslationGroup (const QString translationGroupName) const |
Searches for translation group with the given name. More... | |
Private Attributes | |
Pvl | p_trnsTbl |
Internalizes a translation table.
This class internalizes an Isis translation table and provides group/key searches and value translations. The group names listed are the output names used by applications to get the input names and values. There is only one level of groups and groups are not allowed to be nested. The Group names can NOT be repeated. OutputGroup is a comma delimited list of objects and/or groups in the input label. Traversing this list within the input label will lead to the correct level to find the input keyword. OutputKey is the keyword within the group which holds the information. OutputDefault is the value used if there is no value for the keyword. Translation is the output and corresponding input values. Translation may be repeated as needed. An example piece of a tranlation file:
2003-09-03 Stuart Sides - Modified to work with new isis label format.
2005-02-15 Elizabeth Ribelin - Modified file to support Doxygen documentation.
2005-09-08 Stuart Sides - Modified Translate member to handle translating any input value i.e., "*" to a specific output value (Thanks Kris Becker).
2006-08-09 Brendan George - Added IsOptional function as part of support for Optional keyword translations
2006-11-16 Brendan George - Changed instances of "Foreign" to "Input" and "Native" to "Output".
2007-06-22 Stuart Sides - Added instance parameter to InputGroup member.
2006-12-05 Brendan George - Changed OutputPosition keyword to be case insensitive, and added verification to the AddTable method so that Translation Tables are verified when read in.
2008-07-10 Steven Lambright - Made trnsTbl member into a non-pointer
2010-01-04 Steven Lambright - Now using files instead of streams where possible to improve errors and added code that checks the integrity of translation files. Also now looking for "InputPosition" keyword instead of "InputGroup." The InputGroup method (which needs renamed later) now returns a PvlKeyword.
2017-11-04 Jeannie Backer - Modified Translation input value to make a case insensitive comparison.
2018-04-16 Jeannie Backer - Updated documentation and improved coding standards/style.
Definition at line 122 of file PvlTranslationTable.h.
Isis::PvlTranslationTable::PvlTranslationTable | ( | FileName | transFile | ) |
Constructs and initializes a PvlTranslationTable object.
transFile | The translation file to be used. |
Definition at line 42 of file PvlTranslationTable.cpp.
References Isis::FileName::expanded().
Isis::PvlTranslationTable::PvlTranslationTable | ( | std::istream & | istr | ) |
Constructs and initializes a PvlTranslationTable object.
istr | The translation stream to be used to translate values |
Definition at line 52 of file PvlTranslationTable.cpp.
Isis::PvlTranslationTable::PvlTranslationTable | ( | ) |
Construct an empty PvlTranslationTable.
Definition at line 60 of file PvlTranslationTable.cpp.
|
virtual |
Destroys the PvlTranslationTable object.
Definition at line 67 of file PvlTranslationTable.cpp.
void Isis::PvlTranslationTable::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.
transStm | The stream to be added. |
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." |
Definition at line 118 of file PvlTranslationTable.cpp.
References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::PvlContainer::keywords(), Isis::PvlContainer::name(), Isis::PvlKeyword::name(), and Isis::PvlKeyword::size().
Referenced by Isis::LabelTranslationManager::LabelTranslationManager(), and Isis::XmlToPvlTranslationManager::XmlToPvlTranslationManager().
void Isis::PvlTranslationTable::AddTable | ( | const QString & | transFile | ) |
Adds the contents of a translation table to the searchable groups/keys.
transFile | The name of the translation file to be added. |
Definition at line 100 of file PvlTranslationTable.cpp.
References Isis::Pvl::read().
|
protected |
Searches for translation group with the given name.
translationGroupName | The 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. |
IException::Programmer | - "Unable to find translation group in file." |
Definition at line 554 of file PvlTranslationTable.cpp.
References _FILEINFO_, and Isis::PvlContainer::fileName().
|
protected |
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.
translationGroupName | The 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. |
Definition at line 423 of file PvlTranslationTable.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::XmlToPvlTranslationManager::Translate().
QString Isis::PvlTranslationTable::InputDefault | ( | const QString | translationGroupName | ) | const |
Returns the input default value from the translation table corresponding to the output name argument.
translationGroupName | The 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. |
Definition at line 398 of file PvlTranslationTable.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::XmlToPvlTranslationManager::Translate().
|
virtual |
Returns the input group name from the translation table corresponding to the output name argument.
translationGroupName | The 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. |
inst | The occurence number of the "InputGroup" keyword (first one is zero) |
IException::Programmer | - "Keyword [InputPosition] cannot have a comma [,] in the value." |
Definition at line 301 of file PvlTranslationTable.cpp.
References _FILEINFO_, Isis::PvlContainer::begin(), Isis::PvlContainer::end(), Isis::PvlContainer::findKeyword(), and Isis::PvlKeyword::size().
Referenced by Isis::PvlToXmlTranslationManager::doTranslation(), Isis::PvlToPvlTranslationManager::DoTranslation(), Isis::PvlToXmlTranslationManager::InputHasKeyword(), Isis::PvlToPvlTranslationManager::InputHasKeyword(), Isis::PvlToXmlTranslationManager::InputKeyword(), Isis::PvlToPvlTranslationManager::InputKeyword(), Isis::PvlToXmlTranslationManager::Translate(), and Isis::PvlToPvlTranslationManager::Translate().
|
virtual |
Returns the input keyword name from the translation table corresponding to the output name argument.
translationGroupName | The 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. |
IException::Programmer |
Definition at line 376 of file PvlTranslationTable.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::PvlToXmlTranslationManager::doTranslation(), Isis::PvlToXmlTranslationManager::InputHasKeyword(), Isis::PvlToPvlTranslationManager::InputHasKeyword(), Isis::PvlToXmlTranslationManager::InputKeyword(), Isis::PvlToPvlTranslationManager::InputKeyword(), Isis::PvlToXmlTranslationManager::Translate(), and Isis::PvlToPvlTranslationManager::Translate().
|
protected |
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.
translationGroupName | The 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. |
Definition at line 448 of file PvlTranslationTable.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::LabelTranslationManager::Auto(), Isis::PvlToXmlTranslationManager::Auto(), and Isis::PvlToPvlTranslationManager::Auto().
|
protected |
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.
translationGroupName | The 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. |
Definition at line 473 of file PvlTranslationTable.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::LabelTranslationManager::Auto(), Isis::PvlToXmlTranslationManager::Auto(), and Isis::PvlToPvlTranslationManager::Auto().
|
protected |
Retrieves a string containing the value of the OutputName keyword for the translation group with the given name.
translationGroupName | The 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. |
Definition at line 527 of file PvlTranslationTable.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::PvlToXmlTranslationManager::doTranslation(), and Isis::PvlToPvlTranslationManager::DoTranslation().
|
protected |
Retrieves the OutputPosition PvlKeyword for the translation group with the given name.
translationGroupName | The 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. |
IException::Programmer | - "Unable to find translation keyword [OutputPostion] in translation group in file." |
Definition at line 499 of file PvlTranslationTable.cpp.
References _FILEINFO_, and Isis::PvlContainer::hasKeyword().
Referenced by Isis::LabelTranslationManager::CreateContainer(), and Isis::PvlToXmlTranslationManager::createParentElements().
QString Isis::PvlTranslationTable::Translate | ( | const QString | translationGroupName, |
const QString | inputKeyValue = "" |
||
) | const |
Translates a single output value from the given translation group name and input value.
translationGroupName | The 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. |
inputKeyValue | The value to be translated, from the input keyword. |
IException::Programmer | - "No value or default value to translate for translation group." |
IException::Programmer | - "Unable to find translation value in file." |
Definition at line 232 of file PvlTranslationTable.cpp.
References _FILEINFO_, Isis::PvlContainer::begin(), Isis::PvlContainer::end(), Isis::PvlContainer::fileName(), Isis::PvlContainer::findKeyword(), and Isis::PvlContainer::hasKeyword().
Referenced by Isis::PvlToXmlTranslationManager::doTranslation(), Isis::PvlToPvlTranslationManager::DoTranslation(), Isis::PvlToXmlTranslationManager::Translate(), Isis::PvlToPvlTranslationManager::Translate(), and Isis::XmlToPvlTranslationManager::Translate().
|
protected |
Protected accessor for pvl translation table passed into class.
This method returns a reference to the translation table member.
Definition at line 78 of file PvlTranslationTable.cpp.
Referenced by Isis::LabelTranslationManager::Auto(), Isis::PvlToXmlTranslationManager::Auto(), Isis::PvlToPvlTranslationManager::Auto(), Isis::PvlToPvlTranslationManager::DoTranslation(), Isis::PvlToXmlTranslationManager::InputKeyword(), Isis::PvlToPvlTranslationManager::InputKeyword(), and Isis::XmlToPvlTranslationManager::Translate().
|
protected |
Protected accessor for const pvl translation table passed into class.
This method returns a const reference to the translation table member.
Definition at line 90 of file PvlTranslationTable.cpp.
|
protectedvirtual |
Returns a vector of valid keyword names and their sizes.
A size of -1 indicates that the keyword can be any size.
Reimplemented in Isis::XmlToPvlTranslationManager, and Isis::PvlToXmlTranslationManager.
Definition at line 195 of file PvlTranslationTable.cpp.
Referenced by Isis::PvlToXmlTranslationManager::validKeywords(), and Isis::XmlToPvlTranslationManager::validKeywords().