Isis Developer Reference
PvlToXmlTranslationManager.h
Go to the documentation of this file.
1#ifndef PvlToXmlTranslationManager_h
2#define PvlToXmlTranslationManager_h
8/* SPDX-License-Identifier: CC0-1.0 */
10
11#include <string>
12
13#include <QDomDocument>
14
15#include "FileName.h"
16#include "Pvl.h"
17#include "PvlTokenizer.h"
18
19class QDomElement;
20class QString;
21
22namespace Isis {
23 class Pvl;
24 class PvlContainer;
25 class PvlKeyword;
52 public:
53 PvlToXmlTranslationManager(const QString &transFile);
54
56 const QString &transFile);
57
59
60 // Attempt to translate the requested output name to output value
61 // using the input name and value/default value
62 virtual QString Translate(QString translationGroupName, int inputIndex = 0);
63
64 // Translate all translation table groups which contain "Auto"
65 void Auto(QDomDocument &outputLabel);
66 void Auto(Pvl &inputLabel, QDomDocument &outputLabel);
67
68 // Return the ith input value associated with a output name
69 virtual const PvlKeyword &InputKeyword(const QString translationGroupName) const;
70
71 // Return true if the input lable contains the translated group and key names
72 virtual bool InputHasKeyword(const QString translationGroupName);
73
74 void SetLabel(Pvl &inputLabel);
75
76 static void addElement(QDomElement &parent, QString name, QString value, QString units = "");
77 static void setElementValue(QDomElement &element, QString value, QString units = "");
78 static void resetElementValue(QDomElement &element, QString value, QString units = "");
79
80
81 protected:
82 void doTranslation(PvlGroup transGroup, QDomElement &parent);
83 virtual const PvlContainer *GetContainer(const PvlKeyword &inputGroup) const;
84
85 virtual std::vector< std::pair<QString, int> > validKeywords() const;
86 bool checkDependencies(QDomElement element, PvlKeyword dependencies, bool isDebug) const;
87 QDomElement *createParentElements(const QString translationGroupName, QDomElement &xml);
88 void addSiblings(PvlKeyword outputSiblings, QDomElement &parent);
89 void addAttributes(PvlKeyword something, QDomElement &parent);
90
91 private:
92 Pvl m_inputLabel;
93 };
94};
95
96#endif
Allows applications to translate simple text files.
Definition LabelTranslationManager.h:43
Contains more than one keyword-value pair.
Definition PvlContainer.h:49
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
Allows applications to translate simple text files.
Definition PvlToXmlTranslationManager.h:51
void SetLabel(Pvl &inputLabel)
Internalizes a Pvl formatted label for translation.
Definition PvlToXmlTranslationManager.cpp:66
PvlToXmlTranslationManager(const QString &transFile)
Constructs and initializes a TranslationManager object from given the Pvl translation file.
Definition PvlToXmlTranslationManager.cpp:36
void doTranslation(PvlGroup transGroup, QDomElement &parent)
Translate the requested output name to output values using the input name and values or default value...
Definition PvlToXmlTranslationManager.cpp:133
bool checkDependencies(QDomElement element, PvlKeyword dependencies, bool isDebug) const
virtual ~PvlToXmlTranslationManager()
Destroys the TranslationManager object.
Definition PvlToXmlTranslationManager.cpp:57
QDomElement * createParentElements(const QString translationGroupName, QDomElement &xml)
Read the OutputPosition for the translation group name passed and create any parent elements specifie...
Definition PvlToXmlTranslationManager.cpp:378
static void resetElementValue(QDomElement &element, QString value, QString units="")
Reset the QDomElement's value, and units, if units != "".
Definition PvlToXmlTranslationManager.cpp:536
static void setElementValue(QDomElement &element, QString value, QString units="")
Set the QDomElement's value, and units, if units != "".
Definition PvlToXmlTranslationManager.cpp:516
virtual bool InputHasKeyword(const QString translationGroupName)
Indicates if the input keyword corresponding to the output name exists in the label.
Definition PvlToXmlTranslationManager.cpp:304
virtual QString Translate(QString translationGroupName, int inputIndex=0)
Returns a translated value.
Definition PvlToXmlTranslationManager.cpp:104
void addSiblings(PvlKeyword outputSiblings, QDomElement &parent)
Take in outputSiblings PvlKeyword and turn each sibling into its corresponding QDomElement.
Definition PvlToXmlTranslationManager.cpp:438
virtual std::vector< std::pair< QString, int > > validKeywords() const
Returns a vector of valid keyword names and their sizes.
Definition PvlToXmlTranslationManager.cpp:79
void addAttributes(PvlKeyword something, QDomElement &parent)
Take in the outputAttributes PvlKeyword and add each attribute to the appropriate element given as an...
Definition PvlToXmlTranslationManager.cpp:471
virtual const PvlKeyword & InputKeyword(const QString translationGroupName) const
Uses the translation file group name to find the input label's PvlKeyword that corresponds to the Inp...
Definition PvlToXmlTranslationManager.cpp:254
virtual const PvlContainer * GetContainer(const PvlKeyword &inputGroup) const
Return a container from the input label with the path given by the "InputPosition" keyword of the tra...
Definition PvlToXmlTranslationManager.cpp:330
void Auto(QDomDocument &outputLabel)
Automatically translate all the output names found in the translation table.
Definition PvlToXmlTranslationManager.cpp:221
static void addElement(QDomElement &parent, QString name, QString value, QString units="")
Add a QDomElement to the given parent with the indicated value and units.
Definition PvlToXmlTranslationManager.cpp:498
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16