Isis Developer Reference
IsisAml.h
Go to the documentation of this file.
1#ifndef IsisAml_h
2#define IsisAml_h
3
9/* SPDX-License-Identifier: CC0-1.0 */
10
11#include <string>
12#include <vector>
13
14#include <QString>
15
16#include <xercesc/sax2/SAX2XMLReader.hpp>
17
18#include "IsisXMLApplication.h"
19#include "IsisAmlData.h"
20#include "Pvl.h"
21
22class QString;
23
138class IsisAml : protected IsisAmlData {
139
140// Public section
141 public:
142
143 IsisAml(const QString &xmlfile);
144
145 ~IsisAml();
146
147
148 // Methods for searching and retrieving application info
149 // via the parameter name
150
151 void PutAsString(const QString &paramName, const QString &value);
152 void PutAsString(const QString &paramName, const std::vector<QString> &value);
153
154 void PutFileName(const QString &paramName, const QString &value);
155 void PutFileName(const QString &paramName, const std::vector<QString> &value);
156
157 void PutCubeName(const QString &paramName, const QString &value);
158
159 void PutDouble(const QString &paramName, const double &value);
160 void PutDouble(const QString &paramName, const std::vector<double> &value);
161
162 void PutInteger(const QString &paramName, const int &value);
163 void PutInteger(const QString &paramName, const std::vector<int> &value);
164
165 void PutBoolean(const QString &paramName, const bool &value);
166 void PutBoolean(const QString &paramName, const std::vector<bool> &value);
167
168 void PutString(const QString &paramName, const QString &value);
169 void PutString(const QString &paramName, const std::vector<QString> &value);
170
171 QString GetAsString(const QString &paramName) const;
172 void GetAsString(const QString &paramName, std::vector<QString> &values) const;
173
174 QString GetFileName(const QString &paramName, QString extension = "") const;
175 void GetFileName(const QString &paramName, std::vector<QString> &values) const;
176
177 QString GetCubeName(const QString &paramName, QString extension = "") const;
178
179 QString GetString(const QString &paramName) const;
180 void GetString(const QString &paramName, std::vector<QString> &values) const;
181
182 int GetInteger(const QString &paramName) const;
183 void GetInteger(const QString &paramName, std::vector<int> &values) const;
184
185 bool GetBoolean(const QString &paramName) const;
186
187 void GetBoolean(const QString &paramName, std::vector<bool> &values) const;
188
189 double GetDouble(const QString &paramName) const;
190 void GetDouble(const QString &paramName, std::vector<double> &values) const;
191
192 bool WasEntered(const QString &paramName) const;
193 void Clear(const QString &paramName);
194
195 Isis::CubeAttributeInput &GetInputAttribute(const QString &paramName);
196 Isis::CubeAttributeOutput &GetOutputAttribute(const QString &paramName);
197
198 // Methods for retrieving application info not inside a group
199
200 QString ProgramName() const;
201 QString Brief() const;
202 QString Description() const;
203
204 // Methods for searching and retrieving application info
205 // via the index into groups and parameters
206
207 int NumGroups() const;
208
209 QString GroupName(const int &group) const;
210
212 int GroupIndex(const QString & grpName) const;
213
214 int NumParams(const int &) const;
215
216 QString ParamName(const int &group, const int &param) const;
217
218 QString ParamType(const int &group, const int &param) const;
219
220 QString ParamBrief(const int &group, const int &param) const;
221
222 QString ParamDescription(const int &group, const int &param) const;
223
224 QString ParamMinimum(const int &group, const int &param) const;
225
226 QString ParamMinimumInclusive(const int &group, const int &param) const;
227
228 QString ParamMaximum(const int &group, const int &param) const;
229
230 QString ParamMaximumInclusive(const int &group, const int &param) const;
231
232 QString ParamOdd(const int &group, const int &param) const;
233
234 int ParamGreaterThanSize(const int &group, const int &param) const;
235
236 int ParamGreaterThanOrEqualSize(const int &group, const int &param) const;
237
238 int ParamLessThanSize(const int &group, const int &param) const;
239
240 int ParamLessThanOrEqualSize(const int &group, const int &param) const;
241
242 int ParamNotEqualSize(const int &group, const int &param) const;
243
244 QString ParamGreaterThan(const int &group, const int &param,
245 const int &great) const;
246
247 QString ParamGreaterThanOrEqual(const int &group, const int &param,
248 const int &great) const;
249
250 QString ParamLessThan(const int &group, const int &param,
251 const int &great) const;
252
253 QString ParamLessThanOrEqual(const int &group, const int &param,
254 const int &les) const;
255
256 QString ParamNotEqual(const int &group, const int &param,
257 const int &notEq) const;
258
259 int ParamListSize(const int &group, const int &param) const;
260
261 QString ParamListValue(const int &group, const int &param,
262 const int &option) const;
263
264 QString ParamListBrief(const int &group, const int &param,
265 const int &option) const;
266
267 QString ParamListDescription(const int &group, const int &param,
268 const int &option) const;
269
270 int ParamListExcludeSize(const int &group, const int &param,
271 const int &option) const;
272
273 QString ParamListExclude(const int &group, const int &param,
274 const int &option, const int &exclude) const;
275
276 int ParamListIncludeSize(const int &group, const int &param,
277 const int &option) const;
278
279 QString ParamListInclude(const int &group, const int &param,
280 const int &option, const int &include) const;
281
282 QString ParamDefault(const int &group, const int &param) const;
283
284 QString ParamInternalDefault(const int &group, const int &param) const;
285
286 QString ParamFilter(const int &group, const int &param) const;
287
288 QString ParamPath(const int &group, const int &param) const;
289
290 QString ParamFileMode(const int &group, const int &param) const;
291
292 int ParamExcludeSize(const int &group, const int &param) const;
293
294 QString ParamExclude(const int &group, const int &param,
295 const int &exclude) const;
296 int ParamIncludeSize(const int &group, const int &param) const;
297
298 QString ParamInclude(const int &group, const int &param,
299 const int &include) const;
300
301 QString PixelType(const int &group, const int &param) const;
302
303 int HelpersSize(const int &group, const int &param) const;
304
305 QString HelperButtonName(const int &group, const int &param,
306 const int &helper) const;
307
308 QString HelperFunction(const int &group, const int &param,
309 const int &helper) const;
310
311 QString HelperBrief(const int &group, const int &param,
312 const int &helper) const;
313
314 QString HelperDescription(const int &group, const int &param,
315 const int &helper) const;
316
317 QString HelperIcon(const int &group, const int &param,
318 const int &helper) const;
319
322 bool IsParamInPvlInclude(QString & paramName, std::vector<QString> & exclude);
323
325 void CreatePVL(Isis::Pvl &pvlDef , QString guiGrpName, QString pvlObjName,
326 QString pvlGrpName, std::vector<QString> & exclude);
327
328 // Test all parameters for valid values and conditions
329 void VerifyAll();
330
331 bool StringToBool(QString value) const;
332
333 void CommandLine(Isis::Pvl &lab) const;
334
335 QString Version() const;
336
337
338 protected:
339 const IsisParameterData *ReturnParam(const QString &paramName) const;
340
341
342 private:
344 XERCES::SAX2XMLReader *parser;
346 IsisXMLApplication *appHandler;
347
348 // Member functions
349 void StartParser(const char *xmlfile);
350
351
352 void Verify(const IsisParameterData *param);
353
354 void CheckFileNamePreference(QString filename, QString paramname);
355};
356
357
358#endif
Manipulate and parse attributes of input cube filenames.
Definition: CubeAttribute.h:381
Manipulate and parse attributes of output cube filenames.
Definition: CubeAttribute.h:473
Container for cube-like labels.
Definition: Pvl.h:119
Definition: IsisAmlData.h:124
Application program XML file parameter manager.
Definition: IsisAml.h:138
void PutDouble(const QString &paramName, const std::vector< double > &value)
double GetDouble(const QString &paramName) const
Allows the retrieval of a value for a parameter of type "double".
Definition: IsisAml.cpp:964
void CommandLine(Isis::Pvl &lab) const
Creates a QString which could be used as a command line.
Definition: IsisAml.cpp:3038
QString ParamOdd(const int &group, const int &param) const
Returns whether the selected parameter has a restriction on odd values or not.
Definition: IsisAml.cpp:1400
int ParamExcludeSize(const int &group, const int &param) const
Returns the number of parameters excluded in this parameter's exclusions.
Definition: IsisAml.cpp:1833
Isis::CubeAttributeInput & GetInputAttribute(const QString &paramName)
Gets the attributes for an input cube.
Definition: IsisAml.cpp:1998
int GetInteger(const QString &paramName) const
Allows the retrieval of a value for a parameter of type "integer".
Definition: IsisAml.cpp:881
QString ParamLessThan(const int &group, const int &param, const int &great) const
Returns the name of the specified lessThan parameter.
Definition: IsisAml.cpp:1514
QString ParamLessThanOrEqual(const int &group, const int &param, const int &les) const
Returns the name of the specified lessThanOrEqual parameter.
Definition: IsisAml.cpp:1530
QString ParamBrief(const int &group, const int &param) const
Returns the brief description of a parameter in a specified group.
Definition: IsisAml.cpp:1315
QString ParamListInclude(const int &group, const int &param, const int &option, const int &include) const
Returns the parameter name to be included if this option is selected.
Definition: IsisAml.cpp:1818
QString ParamDescription(const int &group, const int &param) const
Returns the long description of a parameter in a specified group.
Definition: IsisAml.cpp:1329
bool StringToBool(QString value) const
Returns a boolean value based on the QString contents.
Definition: IsisAml.cpp:2995
void PutCubeName(const QString &paramName, const QString &value)
Allows the insertion of a value for a parameter of type "cubename".
Definition: IsisAml.cpp:270
void GetInteger(const QString &paramName, std::vector< int > &values) const
int ParamListIncludeSize(const int &group, const int &param, const int &option) const
Returns the number of items in a parameters list include section.
Definition: IsisAml.cpp:1802
void PutBoolean(const QString &paramName, const bool &value)
Allows the insertion of a value for a parameter of type "boolean".
Definition: IsisAml.cpp:476
QString GetFileName(const QString &paramName, QString extension="") const
Allows the retrieval of a value for a parameter of type "filename".
Definition: IsisAml.cpp:638
void PutString(const QString &paramName, const std::vector< QString > &value)
void PutBoolean(const QString &paramName, const std::vector< bool > &value)
bool WasEntered(const QString &paramName) const
Returns a true if the parameter has a value, and false if it does not.
Definition: IsisAml.cpp:1959
QString ParamListValue(const int &group, const int &param, const int &option) const
Returns the option value for a specific option to a parameter.
Definition: IsisAml.cpp:1722
int NumGroups() const
Returns the number of groups found in the XML.
Definition: IsisAml.cpp:1162
int ParamListExcludeSize(const int &group, const int &param, const int &option) const
Returns the number of items in a parameters list exclude section.
Definition: IsisAml.cpp:1770
QString PixelType(const int &group, const int &param) const
Returns the default pixel type from the XML.
Definition: IsisAml.cpp:1859
QString GetString(const QString &paramName) const
Allows the retrieval of a value for a parameter of type "string".
Definition: IsisAml.cpp:767
bool GetBoolean(const QString &paramName) const
Allows the retrieval of a value for a parameter of type "boolean".
Definition: IsisAml.cpp:1047
int ParamGreaterThanSize(const int &group, const int &param) const
Returns the number of values in the parameters greater than list.
Definition: IsisAml.cpp:1414
QString ParamNotEqual(const int &group, const int &param, const int &notEq) const
Returns the name of the specified notEqual parameter.
Definition: IsisAml.cpp:1546
void PutInteger(const QString &paramName, const int &value)
Allows the insertion of a value for a parameter of type "integer".
Definition: IsisAml.cpp:308
int HelpersSize(const int &group, const int &param) const
Returns the number of helpers the parameter has.
Definition: IsisAml.cpp:1872
void GetFileName(const QString &paramName, std::vector< QString > &values) const
QString ParamGreaterThanOrEqual(const int &group, const int &param, const int &great) const
Returns the name of the specified greaterThanOrEqual parameter.
Definition: IsisAml.cpp:1498
void GetBoolean(const QString &paramName, std::vector< bool > &values) const
void CreatePVL(Isis::Pvl &pvlDef, QString guiGrpName, QString pvlObjName, QString pvlGrpName, std::vector< QString > &exclude)
Create Pvl with the parameters in a user defined group given the Pvl object and group name.
Definition: IsisAml.cpp:1212
QString GetCubeName(const QString &paramName, QString extension="") const
Retrieves of a value for a parameter of type "cubename".
Definition: IsisAml.cpp:722
QString ParamMaximumInclusive(const int &group, const int &param) const
Returns whether the maximum value is inclusive or not.
Definition: IsisAml.cpp:1385
QString Description() const
Returns the full description of the program.
Definition: IsisAml.cpp:1152
QString ParamType(const int &group, const int &param) const
Returns the parameter type of a parameter in a specified group.
Definition: IsisAml.cpp:1593
int ParamListSize(const int &group, const int &param) const
Returns the number of options in the specified parameter's list.
Definition: IsisAml.cpp:1708
int NumParams(const int &) const
Returns the number of parameters in a group.
Definition: IsisAml.cpp:1288
QString Version() const
Returns the application version date.
Definition: IsisAml.cpp:3115
QString GroupName(const int &group) const
Returns the group name of group[index].
Definition: IsisAml.cpp:1174
QString ParamExclude(const int &group, const int &param, const int &exclude) const
Returns the name of the specified excluded parameter.
Definition: IsisAml.cpp:1562
QString HelperFunction(const int &group, const int &param, const int &helper) const
Returns the name of the helper function.
Definition: IsisAml.cpp:1901
void PutAsString(const QString &paramName, const std::vector< QString > &value)
QString HelperButtonName(const int &group, const int &param, const int &helper) const
Returns the name of the helper button.
Definition: IsisAml.cpp:1886
QString Brief() const
Returns the brief description of the program.
Definition: IsisAml.cpp:1142
const IsisParameterData * ReturnParam(const QString &paramName) const
Returns a pointer to a parameter whose name starts with paramName.
Definition: IsisAml.cpp:2091
QString ParamFilter(const int &group, const int &param) const
Returns the parameter filter for a parameter in a specified group.
Definition: IsisAml.cpp:1647
QString ParamListExclude(const int &group, const int &param, const int &option, const int &exclude) const
Returns the parameter name to be excluded if this option is selected.
Definition: IsisAml.cpp:1786
int ParamLessThanOrEqualSize(const int &group, const int &param) const
Returns the number of values in the parameters less than or equal list.
Definition: IsisAml.cpp:1454
QString ParamListBrief(const int &group, const int &param, const int &option) const
Returns the brief description for a specific option to a parameter.
Definition: IsisAml.cpp:1738
QString ParamListDescription(const int &group, const int &param, const int &option) const
Returns the full description for a specific option to a parameter.
Definition: IsisAml.cpp:1754
QString ParamDefault(const int &group, const int &param) const
Returns the default for a parameter in a specified group.
Definition: IsisAml.cpp:1607
void GetAsString(const QString &paramName, std::vector< QString > &values) const
int ParamLessThanSize(const int &group, const int &param) const
Returns the number of values in the parameters less than list.
Definition: IsisAml.cpp:1441
QString HelperBrief(const int &group, const int &param, const int &helper) const
Returns the brief description of the helper button.
Definition: IsisAml.cpp:1916
QString ParamInclude(const int &group, const int &param, const int &include) const
Returns the name of the specified included parameter.
Definition: IsisAml.cpp:1578
QString GetAsString(const QString &paramName) const
Allows the retrieval of a value for a parameter of any type.
Definition: IsisAml.cpp:567
int GroupIndex(const QString &grpName) const
Given the group name get its index in group array.
Definition: IsisAml.cpp:1189
void PutDouble(const QString &paramName, const double &value)
Allows the insertion of a value for a parameter of type "double".
Definition: IsisAml.cpp:392
int ParamGreaterThanOrEqualSize(const int &group, const int &param) const
Returns the number of values in the parameters greater than or equal list.
Definition: IsisAml.cpp:1427
QString ParamInternalDefault(const int &group, const int &param) const
Returns the internal default for a parameter in a specified group.
Definition: IsisAml.cpp:1627
int ParamNotEqualSize(const int &group, const int &param) const
Returns the number of values in the not equal list.
Definition: IsisAml.cpp:1468
QString ProgramName() const
Returns the Program name.
Definition: IsisAml.cpp:1131
int ParamIncludeSize(const int &group, const int &param) const
Returns the number of parameters included in this parameter's inclusions.
Definition: IsisAml.cpp:1846
QString ParamMinimumInclusive(const int &group, const int &param) const
Returns whether the minimum value is inclusive or not.
Definition: IsisAml.cpp:1371
void PutString(const QString &paramName, const QString &value)
Allows the insertion of a value for any parameter.
Definition: IsisAml.cpp:128
QString ParamGreaterThan(const int &group, const int &param, const int &great) const
Returns the name of the specified greaterThan parameter.
Definition: IsisAml.cpp:1482
QString ParamMinimum(const int &group, const int &param) const
Returns the minimum value of a parameter in a specified group.
Definition: IsisAml.cpp:1343
QString ParamFileMode(const int &group, const int &param) const
Returns the file mode for a parameter in a specified group.
Definition: IsisAml.cpp:1687
void PutInteger(const QString &paramName, const std::vector< int > &value)
Isis::CubeAttributeOutput & GetOutputAttribute(const QString &paramName)
Gets the attributes for an output cube.
Definition: IsisAml.cpp:2044
void GetDouble(const QString &paramName, std::vector< double > &values) const
void GetString(const QString &paramName, std::vector< QString > &values) const
void Clear(const QString &paramName)
Clears the value(s) in the named parameter.
Definition: IsisAml.cpp:1976
QString ParamPath(const int &group, const int &param) const
Returns the default path for a filename/cube parameter.
Definition: IsisAml.cpp:1667
QString HelperDescription(const int &group, const int &param, const int &helper) const
Returns the long description of the helper button.
Definition: IsisAml.cpp:1931
void VerifyAll()
Verify all parameters.
Definition: IsisAml.cpp:2514
QString ParamName(const int &group, const int &param) const
Returns the parameter name.
Definition: IsisAml.cpp:1301
QString HelperIcon(const int &group, const int &param, const int &helper) const
Returns the name of the icon for the helper button.
Definition: IsisAml.cpp:1946
bool IsParamInPvlInclude(QString &paramName, std::vector< QString > &exclude)
Verify whether Parameter name is in the Include list Used in creation of DefFile.
Definition: IsisAml.cpp:1270
void PutAsString(const QString &paramName, const QString &value)
Allows the insertion of a value for any parameter.
Definition: IsisAml.cpp:65
~IsisAml()
Destructs an IsisAml object.
Definition: IsisAml.cpp:45
void PutFileName(const QString &paramName, const QString &value)
Allows the insertion of a value for a parameter of type "filename".
Definition: IsisAml.cpp:195
QString ParamMaximum(const int &group, const int &param) const
Returns the maximum value of a parameter in a specified group.
Definition: IsisAml.cpp:1357
void PutFileName(const QString &paramName, const std::vector< QString > &value)
Definition: IsisAmlData.h:53
This is free and unencumbered software released into the public domain.
Definition: IsisXMLApplication.h:19