Isis 3 Programmer Reference
PvlTranslationTable.h
1#ifndef PvlTranslationTable_h
2#define PvlTranslationTable_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include <iostream>
10#include <vector>
11#include <string>
12
13#include "FileName.h"
14#include "Pvl.h"
15
16namespace Isis {
107
108 public:
109 // Constructors
110 PvlTranslationTable(FileName transFile);
111 PvlTranslationTable(std::istream &istr);
113
114 virtual ~PvlTranslationTable();
115
116 // Return the associated input group from the trans table
117 virtual PvlKeyword InputGroup(const QString translationGroupName, const int inst = 0) const;
118
119 // Return the associated input keyword name from the trans table
120 virtual QString InputKeywordName(const QString translationGroupName) const;
121
122 // Return the associated input default value from the trans table
123 QString InputDefault(const QString translationGroupName) const;
124
125 // Translate a single input value associated with a output name to a output value
126 QString Translate(const QString translationGroupName, const QString inputKeyValue = "") const;
127
128 // Add more table entries to the translation table data
129 void AddTable(std::istream &transStm);
130 void AddTable(const QString &transFile);
131
132 protected:
134 const Pvl &TranslationTable() const;
135 virtual std::vector< std::pair<QString, int> > validKeywords() const;
136
137 bool hasInputDefault(const QString translationGroupName);
138 bool IsAuto(const QString translationGroupName);
139 bool IsOptional(const QString translationGroupName);
140 PvlKeyword OutputPosition(const QString translationGroupName);
141 QString OutputName(const QString translationGroupName);
142 const PvlGroup &findTranslationGroup(const QString translationGroupName) const;
143
144 private:
145 Pvl p_trnsTbl;
146 };
147};
148
149#endif
File name manipulation and expansion.
Definition FileName.h:100
Contains multiple PvlContainers.
Definition PvlGroup.h:41
Container for cube-like labels.
Definition Pvl.h:119
A single keyword-value pair.
Definition PvlKeyword.h:87
Internalizes a translation table.
PvlTranslationTable()
Construct an empty PvlTranslationTable.
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.
virtual std::vector< std::pair< QString, int > > validKeywords() const
Returns a vector of valid keyword names and their sizes.
const PvlGroup & findTranslationGroup(const QString translationGroupName) const
Searches for translation group with the given name.
QString Translate(const QString translationGroupName, const QString inputKeyValue="") const
Translates a single output value from the given translation group name and input value.
bool hasInputDefault(const QString translationGroupName)
Determines whether the given group has a default input value.
virtual ~PvlTranslationTable()
Destroys the PvlTranslationTable object.
QString OutputName(const QString translationGroupName)
Retrieves a string containing the value of the OutputName keyword for the translation group with the ...
void AddTable(std::istream &transStm)
Adds the contents of a translation table to the searchable groups/keys Also performs a verification,...
virtual QString InputKeywordName(const QString translationGroupName) const
Returns the input keyword name from the translation table corresponding to the output name argument.
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.
bool IsAuto(const QString translationGroupName)
Determines whether the given group should be automatically translated.
Pvl & TranslationTable()
Protected accessor for pvl translation table passed into class.
QString InputDefault(const QString translationGroupName) const
Returns the input default value from the translation table corresponding to the output name argument.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16