Isis 3.0 Developer's Reference (API) |
Home |
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 ¶mName, const QString &value); 00163 void PutAsString(const QString ¶mName, const std::vector<QString> &value); 00164 00165 void PutFileName(const QString ¶mName, const QString &value); 00166 void PutFileName(const QString ¶mName, const std::vector<QString> &value); 00167 00168 void PutDouble(const QString ¶mName, const double &value); 00169 void PutDouble(const QString ¶mName, const std::vector<double> &value); 00170 00171 void PutInteger(const QString ¶mName, const int &value); 00172 void PutInteger(const QString ¶mName, const std::vector<int> &value); 00173 00174 void PutBoolean(const QString ¶mName, const bool &value); 00175 void PutBoolean(const QString ¶mName, const std::vector<bool> &value); 00176 00177 void PutString(const QString ¶mName, const QString &value); 00178 void PutString(const QString ¶mName, const std::vector<QString> &value); 00179 00180 QString GetAsString(const QString ¶mName) const; 00181 void GetAsString(const QString ¶mName, std::vector<QString> &values) const; 00182 00183 QString GetFileName(const QString ¶mName, QString extension = "") const; 00184 void GetFileName(const QString ¶mName, std::vector<QString> &values) const; 00185 00186 QString GetString(const QString ¶mName) const; 00187 void GetString(const QString ¶mName, std::vector<QString> &values) const; 00188 00189 int GetInteger(const QString ¶mName) const; 00190 void GetInteger(const QString ¶mName, std::vector<int> &values) const; 00191 00192 bool GetBoolean(const QString ¶mName) const; 00193 00194 void GetBoolean(const QString ¶mName, std::vector<bool> &values) const; 00195 00196 double GetDouble(const QString ¶mName) const; 00197 void GetDouble(const QString ¶mName, std::vector<double> &values) const; 00198 00199 bool WasEntered(const QString ¶mName) const; 00200 void Clear(const QString ¶mName); 00201 00202 Isis::CubeAttributeInput &GetInputAttribute(const QString ¶mName); 00203 Isis::CubeAttributeOutput &GetOutputAttribute(const QString ¶mName); 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 ¶m) const; 00224 00225 QString ParamType(const int &group, const int ¶m) const; 00226 00227 QString ParamBrief(const int &group, const int ¶m) const; 00228 00229 QString ParamDescription(const int &group, const int ¶m) const; 00230 00231 QString ParamMinimum(const int &group, const int ¶m) const; 00232 00233 QString ParamMinimumInclusive(const int &group, const int ¶m) const; 00234 00235 QString ParamMaximum(const int &group, const int ¶m) const; 00236 00237 QString ParamMaximumInclusive(const int &group, const int ¶m) const; 00238 00239 QString ParamOdd(const int &group, const int ¶m) const; 00240 00241 int ParamGreaterThanSize(const int &group, const int ¶m) const; 00242 00243 int ParamGreaterThanOrEqualSize(const int &group, const int ¶m) const; 00244 00245 int ParamLessThanSize(const int &group, const int ¶m) const; 00246 00247 int ParamLessThanOrEqualSize(const int &group, const int ¶m) const; 00248 00249 int ParamNotEqualSize(const int &group, const int ¶m) const; 00250 00251 QString ParamGreaterThan(const int &group, const int ¶m, 00252 const int &great) const; 00253 00254 QString ParamGreaterThanOrEqual(const int &group, const int ¶m, 00255 const int &great) const; 00256 00257 QString ParamLessThan(const int &group, const int ¶m, 00258 const int &great) const; 00259 00260 QString ParamLessThanOrEqual(const int &group, const int ¶m, 00261 const int &les) const; 00262 00263 QString ParamNotEqual(const int &group, const int ¶m, 00264 const int ¬Eq) const; 00265 00266 int ParamListSize(const int &group, const int ¶m) const; 00267 00268 QString ParamListValue(const int &group, const int ¶m, 00269 const int &option) const; 00270 00271 QString ParamListBrief(const int &group, const int ¶m, 00272 const int &option) const; 00273 00274 QString ParamListDescription(const int &group, const int ¶m, 00275 const int &option) const; 00276 00277 int ParamListExcludeSize(const int &group, const int ¶m, 00278 const int &option) const; 00279 00280 QString ParamListExclude(const int &group, const int ¶m, 00281 const int &option, const int &exclude) const; 00282 00283 int ParamListIncludeSize(const int &group, const int ¶m, 00284 const int &option) const; 00285 00286 QString ParamListInclude(const int &group, const int ¶m, 00287 const int &option, const int &include) const; 00288 00289 QString ParamDefault(const int &group, const int ¶m) const; 00290 00291 QString ParamInternalDefault(const int &group, const int ¶m) const; 00292 00293 QString ParamFilter(const int &group, const int ¶m) const; 00294 00295 QString ParamPath(const int &group, const int ¶m) const; 00296 00297 QString ParamFileMode(const int &group, const int ¶m) const; 00298 00299 int ParamExcludeSize(const int &group, const int ¶m) const; 00300 00301 QString ParamExclude(const int &group, const int ¶m, 00302 const int &exclude) const; 00303 int ParamIncludeSize(const int &group, const int ¶m) const; 00304 00305 QString ParamInclude(const int &group, const int ¶m, 00306 const int &include) const; 00307 00308 QString PixelType(const int &group, const int ¶m) const; 00309 00310 int HelpersSize(const int &group, const int ¶m) const; 00311 00312 QString HelperButtonName(const int &group, const int ¶m, 00313 const int &helper) const; 00314 00315 QString HelperFunction(const int &group, const int ¶m, 00316 const int &helper) const; 00317 00318 QString HelperBrief(const int &group, const int ¶m, 00319 const int &helper) const; 00320 00321 QString HelperDescription(const int &group, const int ¶m, 00322 const int &helper) const; 00323 00324 QString HelperIcon(const int &group, const int ¶m, 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 ¶mName) 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