USGS

Isis 3.0 Developer's Reference (API)

Home

IsisAml.h

Go to the documentation of this file.
00001 #ifndef IsisAml_h
00002 #define IsisAml_h
00003 
00027 #include <string>
00028 #include <vector>
00029 
00030 #include <QString>
00031 
00032 #include <xercesc/sax2/SAX2XMLReader.hpp>
00033 
00034 #include "IsisXMLApplication.h"
00035 #include "IsisAmlData.h"
00036 #include "Pvl.h"
00037 
00038 class QString;
00039 
00149 class IsisAml : protected IsisAmlData {
00150 
00151 // Public section
00152   public:
00153 
00154     IsisAml(const QString &xmlfile);
00155 
00156     ~IsisAml();
00157 
00158 
00159     // Methods for searching and retrieving application info
00160     // via the parameter name
00161 
00162     void PutAsString(const QString &paramName, const QString &value);
00163     void PutAsString(const QString &paramName, const std::vector<QString> &value);
00164 
00165     void PutFileName(const QString &paramName, const QString &value);
00166     void PutFileName(const QString &paramName, const std::vector<QString> &value);
00167 
00168     void PutDouble(const QString &paramName, const double &value);
00169     void PutDouble(const QString &paramName, const std::vector<double> &value);
00170 
00171     void PutInteger(const QString &paramName, const int &value);
00172     void PutInteger(const QString &paramName, const std::vector<int> &value);
00173 
00174     void PutBoolean(const QString &paramName, const bool &value);
00175     void PutBoolean(const QString &paramName, const std::vector<bool> &value);
00176 
00177     void PutString(const QString &paramName, const QString &value);
00178     void PutString(const QString &paramName, const std::vector<QString> &value);
00179 
00180     QString GetAsString(const QString &paramName) const;
00181     void GetAsString(const QString &paramName, std::vector<QString> &values) const;
00182 
00183     QString GetFileName(const QString &paramName, QString extension = "") const;
00184     void GetFileName(const QString &paramName, std::vector<QString> &values) const;
00185 
00186     QString GetString(const QString &paramName) const;
00187     void GetString(const QString &paramName, std::vector<QString> &values) const;
00188 
00189     int GetInteger(const QString &paramName) const;
00190     void GetInteger(const QString &paramName, std::vector<int> &values) const;
00191 
00192     bool GetBoolean(const QString &paramName) const;
00193 
00194     void GetBoolean(const QString &paramName, std::vector<bool> &values) const;
00195 
00196     double GetDouble(const QString &paramName) const;
00197     void GetDouble(const QString &paramName, std::vector<double> &values) const;
00198 
00199     bool WasEntered(const QString &paramName) const;
00200     void Clear(const QString &paramName);
00201 
00202     Isis::CubeAttributeInput &GetInputAttribute(const QString &paramName);
00203     Isis::CubeAttributeOutput &GetOutputAttribute(const QString &paramName);
00204 
00205     // Methods for retrieving application info not inside a group
00206 
00207     QString ProgramName() const;
00208     QString Brief() const;
00209     QString Description() const;
00210 
00211     // Methods for searching and retrieving application info
00212     // via the index into groups and parameters
00213 
00214     int  NumGroups() const;
00215 
00216     QString GroupName(const int &group) const;
00217     
00219     int GroupIndex(const QString & grpName) const;
00220 
00221     int NumParams(const int &) const;
00222 
00223     QString ParamName(const int &group, const int &param) const;
00224 
00225     QString ParamType(const int &group, const int &param) const;
00226 
00227     QString ParamBrief(const int &group, const int &param) const;
00228 
00229     QString ParamDescription(const int &group, const int &param) const;
00230 
00231     QString ParamMinimum(const int &group, const int &param) const;
00232 
00233     QString ParamMinimumInclusive(const int &group, const int &param) const;
00234 
00235     QString ParamMaximum(const int &group, const int &param) const;
00236 
00237     QString ParamMaximumInclusive(const int &group, const int &param) const;
00238 
00239     QString ParamOdd(const int &group, const int &param) const;
00240 
00241     int ParamGreaterThanSize(const int &group, const int &param) const;
00242 
00243     int ParamGreaterThanOrEqualSize(const int &group, const int &param) const;
00244 
00245     int ParamLessThanSize(const int &group, const int &param) const;
00246 
00247     int ParamLessThanOrEqualSize(const int &group, const int &param) const;
00248 
00249     int ParamNotEqualSize(const int &group, const int &param) const;
00250 
00251     QString ParamGreaterThan(const int &group, const int &param,
00252                                  const int &great) const;
00253 
00254     QString ParamGreaterThanOrEqual(const int &group, const int &param,
00255                                         const int &great) const;
00256 
00257     QString ParamLessThan(const int &group, const int &param,
00258                               const int &great) const;
00259 
00260     QString ParamLessThanOrEqual(const int &group, const int &param,
00261                                      const int &les) const;
00262 
00263     QString ParamNotEqual(const int &group, const int &param,
00264                               const int &notEq) const;
00265 
00266     int ParamListSize(const int &group, const int &param) const;
00267 
00268     QString ParamListValue(const int &group, const int &param,
00269                                const int &option) const;
00270 
00271     QString ParamListBrief(const int &group, const int &param,
00272                                const int &option) const;
00273 
00274     QString ParamListDescription(const int &group, const int &param,
00275                                      const int &option) const;
00276 
00277     int ParamListExcludeSize(const int &group, const int &param,
00278                              const int &option) const;
00279 
00280     QString ParamListExclude(const int &group, const int &param,
00281                                  const int &option, const int &exclude) const;
00282 
00283     int ParamListIncludeSize(const int &group, const int &param,
00284                              const int &option) const;
00285 
00286     QString ParamListInclude(const int &group, const int &param,
00287                                  const int &option, const int &include) const;
00288 
00289     QString ParamDefault(const int &group, const int &param) const;
00290 
00291     QString ParamInternalDefault(const int &group, const int &param) const;
00292 
00293     QString ParamFilter(const int &group, const int &param) const;
00294 
00295     QString ParamPath(const int &group, const int &param) const;
00296 
00297     QString ParamFileMode(const int &group, const int &param) const;
00298 
00299     int ParamExcludeSize(const int &group, const int &param) const;
00300 
00301     QString ParamExclude(const int &group, const int &param,
00302                              const int &exclude) const;
00303     int ParamIncludeSize(const int &group, const int &param) const;
00304 
00305     QString ParamInclude(const int &group, const int &param,
00306                              const int &include) const;
00307 
00308     QString PixelType(const int &group, const int &param) const;
00309 
00310     int HelpersSize(const int &group, const int &param) const;
00311 
00312     QString HelperButtonName(const int &group, const int &param,
00313                                  const int &helper) const;
00314 
00315     QString HelperFunction(const int &group, const int &param,
00316                                const int &helper) const;
00317 
00318     QString HelperBrief(const int &group, const int &param,
00319                             const int &helper) const;
00320 
00321     QString HelperDescription(const int &group, const int &param,
00322                                   const int &helper) const;
00323 
00324     QString HelperIcon(const int &group, const int &param,
00325                            const int &helper) const;
00326 
00329     bool IsParamInPvlInclude(QString & paramName, std::vector<QString> & exclude);
00330     
00332     void CreatePVL(Isis::Pvl &pvlDef , QString guiGrpName, QString pvlObjName, 
00333                    QString pvlGrpName, std::vector<QString> & exclude);
00334     
00335     // Test all parameters for valid values and conditions
00336     void VerifyAll();
00337 
00338     bool StringToBool(QString value) const;
00339 
00340     void CommandLine(Isis::Pvl &lab) const;
00341 
00342     QString Version() const;
00343 
00344 
00345   protected:
00346     const IsisParameterData *ReturnParam(const QString &paramName) const;
00347 
00348 
00349   private:
00351     XERCES::SAX2XMLReader *parser;
00353     IsisXMLApplication *appHandler;
00354 
00355     // Member functions
00356     void StartParser(const char *xmlfile);
00357 
00358 
00359     void Verify(const IsisParameterData *param);
00360     
00361     void CheckFileNamePreference(QString filename, QString paramname);
00362 };
00363 
00364 
00365 #endif