BALL  1.5.0
paramFile.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_FORMAT_PARAMFILE_H
6 #define BALL_FORMAT_PARAMFILE_H
7 
8 #include <BALL/SYSTEM/file.h>
9 #include <BALL/DATATYPE/string.h>
10 
11 #include <QtCore/QXmlStreamReader>
12 #include <QtCore/QXmlStreamWriter>
13 #include <QtCore/QFile>
14 
15 #include <map>
16 #include <list>
17 #include <set>
18 
19 
20 namespace BALL
21 {
23  class BALL_EXPORT ParamFile : public File
24  {
25  public:
26 
28  {
32  INT,
39  //TODO: do we REALLY need these two openly galaxy specific parameter types?
40  // couldn't we do it with tags or something more elegant?
42  GALAXY_OPT_OUTID
43  };
44 
46  {
47  // constructor
49  {
50  name = "";
51  description = "";
52  category = "";
53  mandatory = false;
54  advanced = false;
55  type = INFILE;
56  allowed_values.clear();
57  supported_formats.clear();
58  hidden = false;
59  }
60 
64  bool mandatory;
65  bool advanced;
67 
69  list<String> allowed_values;
70 
73  list<String> supported_formats;
74 
75  // if parameters shall be hidden in galaxy
76  bool hidden;
77  };
78 
79  ParamFile(const String& name, File::OpenMode open_mode);
80  ~ParamFile();
81 
88  void writeSection(String section_name, String section_description, String version, const String& section_helptext,
89  const String& category, const std::list<std::pair<String,ParameterDescription> >& descriptions,
90  const std::map<String,list<String> >& values);
91 
96  void readSection(String& tool_name, String& section_description, String& version, String& section_helptext,
97  String& category, std::list<std::pair<String, ParameterDescription> >& descriptions,
98  std::map<String,list<String> >& values,
99  bool overwrite_existing=false);
100 
101  void close();
102 
104  static String buildNestedParameterName(const String& category, const String& parameter_name);
105 
107  static Size parseNestedParameterName(const String& parameter_name, String string_array[]);
108 
109 
110  protected:
111 
115  QXmlStreamReader* xmlIn_;
116  QXmlStreamWriter* xmlOut_;
117  QFile* file_;
118 
119  private:
120 
130  std::set<String> getTags(QXmlStreamAttributes& attributes);
131  };
132 }
133 
134 #endif
BALL::ParamFile::STRING
Definition: paramFile.h:31
BALL::ParamFile::ParameterDescription::ParameterDescription
ParameterDescription()
Definition: paramFile.h:48
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::ParamFile::GALAXY_OPT_OUTDIR
Definition: paramFile.h:41
BALL::ParamFile::ParameterDescription::advanced
bool advanced
Definition: paramFile.h:65
BALL::ParamFile::DOUBLE
Definition: paramFile.h:33
BALL::ParamFile::ParameterDescription::allowed_values
list< String > allowed_values
Definition: paramFile.h:69
BALL::ParamFile::INFILELIST
Definition: paramFile.h:34
BALL::ParamFile::file_
QFile * file_
Definition: paramFile.h:117
BALL::ParamFile
Definition: paramFile.h:23
BALL_SIZE_TYPE
BALL::ParamFile::xmlIn_
QXmlStreamReader * xmlIn_
Definition: paramFile.h:115
file.h
BALL
Definition: constants.h:12
BALL::ParamFile::OUTFILELIST
Definition: paramFile.h:35
BALL::ParamFile::ParameterDescription::hidden
bool hidden
Definition: paramFile.h:76
BALL::String
Definition: string.h:56
BALL::File::OpenMode
std::ios::openmode OpenMode
Definition: file.h:165
BALL::ParamFile::filename_
String filename_
Definition: paramFile.h:112
BALL::ParamFile::open_mode_
File::OpenMode open_mode_
Definition: paramFile.h:113
BALL::ParamFile::ParameterDescription
Definition: paramFile.h:45
BALL::ParamFile::xmlOut_
QXmlStreamWriter * xmlOut_
Definition: paramFile.h:116
BALL::ParamFile::ParameterDescription::description
String description
Definition: paramFile.h:62
string.h
BALL::ParamFile::DOUBLELIST
Definition: paramFile.h:38
BALL::ParamFile::INTLIST
Definition: paramFile.h:37
BALL::ParamFile::ParameterType
ParameterType
Definition: paramFile.h:27
BALL::ParamFile::ParameterDescription::supported_formats
list< String > supported_formats
Definition: paramFile.h:73
BALL::ParamFile::OUTFILE
Definition: paramFile.h:30
BALL::ParamFile::mode_read_
bool mode_read_
Definition: paramFile.h:114
BALL::File
Definition: file.h:134
BALL::ParamFile::ParameterDescription::mandatory
bool mandatory
Definition: paramFile.h:64
BALL::ParamFile::STRINGLIST
Definition: paramFile.h:36
BALL::ParamFile::ParameterDescription::type
ParameterType type
Definition: paramFile.h:66
BALL::ParamFile::INFILE
Definition: paramFile.h:29
BALL::ParamFile::ParameterDescription::name
String name
Definition: paramFile.h:61
BALL::ParamFile::ParameterDescription::category
String category
Definition: paramFile.h:63
BALL::ParamFile::INT
Definition: paramFile.h:32