1#ifndef PvlToXmlTranslationManager_h
2#define PvlToXmlTranslationManager_h
9#include "LabelTranslationManager.h"
13#include <QDomDocument>
55 const QString &transFile);
61 virtual QString
Translate(QString translationGroupName,
int inputIndex = 0);
64 void Auto(QDomDocument &outputLabel);
65 void Auto(Pvl &inputLabel, QDomDocument &outputLabel);
68 virtual const PvlKeyword &
InputKeyword(
const QString translationGroupName)
const;
75 static void addElement(QDomElement &parent, QString name, QString value, QString units =
"");
76 static void setElementValue(QDomElement &element, QString value, QString units =
"");
77 static void resetElementValue(QDomElement &element, QString value, QString units =
"");
82 virtual const PvlContainer *
GetContainer(
const PvlKeyword &inputGroup)
const;
84 virtual std::vector< std::pair<QString, int> >
validKeywords()
const;
85 bool checkDependencies(QDomElement element, PvlKeyword dependencies,
bool isDebug)
const;
87 void addSiblings(PvlKeyword outputSiblings, QDomElement &parent);
88 void addAttributes(PvlKeyword something, QDomElement &parent);
LabelTranslationManager()
Constructs a default LabelTranslationManager.
void SetLabel(Pvl &inputLabel)
Internalizes a Pvl formatted label for translation.
PvlToXmlTranslationManager(const QString &transFile)
Constructs and initializes a TranslationManager object from given the Pvl translation file.
void doTranslation(PvlGroup transGroup, QDomElement &parent)
Translate the requested output name to output values using the input name and values or default value...
virtual ~PvlToXmlTranslationManager()
Destroys the TranslationManager object.
QDomElement * createParentElements(const QString translationGroupName, QDomElement &xml)
Read the OutputPosition for the translation group name passed and create any parent elements specifie...
static void resetElementValue(QDomElement &element, QString value, QString units="")
Reset the QDomElement's value, and units, if units != "".
static void setElementValue(QDomElement &element, QString value, QString units="")
Set the QDomElement's value, and units, if units != "".
virtual bool InputHasKeyword(const QString translationGroupName)
Indicates if the input keyword corresponding to the output name exists in the label.
virtual QString Translate(QString translationGroupName, int inputIndex=0)
Returns a translated value.
void addSiblings(PvlKeyword outputSiblings, QDomElement &parent)
Take in outputSiblings PvlKeyword and turn each sibling into its corresponding QDomElement.
virtual std::vector< std::pair< QString, int > > validKeywords() const
Returns a vector of valid keyword names and their sizes.
void addAttributes(PvlKeyword something, QDomElement &parent)
Take in the outputAttributes PvlKeyword and add each attribute to the appropriate element given as an...
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...
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...
void Auto(QDomDocument &outputLabel)
Automatically translate all the output names found in the translation table.
static void addElement(QDomElement &parent, QString name, QString value, QString units="")
Add a QDomElement to the given parent with the indicated value and units.
Pvl m_inputLabel
A Pvl object for the input label file.
This is free and unencumbered software released into the public domain.