11#ifndef SEIMS_METADATA_INFO_H
12#define SEIMS_METADATA_INFO_H
131 string SchemaVersion() {
return m_strSchemaVersion; }
133 void SetClass(
const char* name,
const char* description);
135 string GetClassName() {
return m_oClass.Name; }
137 string GetClassDescription() {
return m_oClass.Description; }
139 void SetID(
const char* ID) { m_Info.
Id = ID; }
141 string GetID() {
return m_Info.
Id; }
143 void SetName(
const char* name) { m_Info.
Name = name; }
145 string GetName() {
return m_Info.
Name; }
147 void SetDescription(
const char* description) { m_Info.
Description = description; }
149 string GetDescription() {
return m_Info.
Description; }
151 void SetVersion(
const char* version) { m_Info.
Version = version; }
153 string GetVersion() {
return m_Info.
Version; }
155 void SetAuthor(
const char* author) { m_Info.
Author = author; }
157 string GetAuthor() {
return m_Info.
Author; }
159 void SetEmail(
const char* email) { m_Info.
EMail = email; }
161 string GetEmail() {
return m_Info.
EMail; }
163 void SetWebsite(
const char* site) { m_Info.
Website = site; }
165 string GetWebsite() {
return m_Info.
Website; }
167 void SetHelpfile(
const char* file) { m_Info.
Helpfile = file; }
169 string GetHelpfile() {
return m_Info.
Helpfile; }
173 int GetInputCount() {
return CVT_INT(m_vInputs.size()); }
175 int AddInput(
const char* name,
const char* units,
const char* desc,
const char* source,
dimensionTypes dimType,
178 string GetInputName(
int index) {
return index >= 0 && index < m_vInputs.size() ? m_vInputs[index].Name :
""; }
180 string GetInputUnits(
int index) {
return index >= 0 && index < m_vInputs.size() ? m_vInputs[index].Units :
""; }
182 string GetInputDescription(
int index) {
183 return index >= 0 && index < m_vInputs.size() ? m_vInputs[index].Description :
"";
186 string GetInputSource(
int index) {
187 return index >= 0 && index < m_vInputs.size() ? m_vInputs[index].Source :
"";
191 return index >= 0 && index < m_vInputs.size() ? m_vInputs[index].Dimension :
DT_Unknown;
195 return index >= 0 && index < m_vInputs.size() ? m_vInputs[index].tfType :
TF_None;
199 return index >= 0 && index < m_vInputs.size() ? m_vInputs[index] :
InputVariable();
204 int GetOutputCount() {
return CVT_INT(m_vOutputs.size()); }
206 int AddOutput(
const char* name,
const char* units,
const char* desc,
dimensionTypes dimType,
209 string GetOutputName(
int index) {
return index >= 0 && index < m_vOutputs.size() ? m_vOutputs[index].Name :
""; }
211 string GetOutputUnits(
int index) {
212 return index >= 0 && index < m_vOutputs.size() ? m_vOutputs[index].Units :
"";
215 string GetOutputDescription(
int index) {
216 return index >= 0 && index < m_vOutputs.size() ? m_vOutputs[index].Description :
"";
220 return index >= 0 && index < m_vOutputs.size() ? m_vOutputs[index].Dimension :
DT_Unknown;
224 return index >= 0 && index < m_vOutputs.size() ? m_vOutputs[index].tfType :
TF_None;
228 return index >= 0 && index < m_vOutputs.size() ? m_vOutputs[index] :
OutputVariable();
233 int GetInOutputCount() {
return CVT_INT(m_vInOutputs.size()); }
235 int AddInOutput(
const char* name,
const char* units,
const char* desc,
dimensionTypes dimType,
238 string GetInOutputName(
int index) {
239 return index >= 0 && index < m_vInOutputs.size() ? m_vInOutputs[index].Name :
"";
242 string GetInOutputUnits(
int index) {
243 return index >= 0 && index < m_vInOutputs.size() ? m_vInOutputs[index].Units :
"";
246 string GetInOutputDescription(
int index) {
247 return index >= 0 && index < m_vInOutputs.size() ? m_vInOutputs[index].Description :
"";
251 return index >= 0 && index < m_vInOutputs.size() ? m_vInOutputs[index].Dimension :
DT_Unknown;
255 return index >= 0 && index < m_vInOutputs.size() ? m_vInOutputs[index].tfType :
TF_None;
259 return index >= 0 && index < m_vInOutputs.size() ? m_vInOutputs[index] :
InOutputVariable();
264 int GetParameterCount() {
return CVT_INT(m_vParameters.size()); }
266 int AddParameter(
const char* name,
const char* units,
const char* desc,
const char* source,
dimensionTypes dimType);
268 string GetParameterName(
int index) {
269 return index >= 0 && index < m_vParameters.size() ? m_vParameters[index].Name :
"";
272 string GetParameterUnits(
int index) {
273 return index >= 0 && index < m_vParameters.size() ? m_vParameters[index].Units :
"";
276 string GetParameterDescription(
int index) {
277 return index >= 0 && index < m_vParameters.size() ? m_vParameters[index].Description :
"";
280 string GetParameterSource(
int index) {
281 return index >= 0 && index < m_vParameters.size() ? m_vParameters[index].Source :
"";
285 return index >= 0 && index < m_vParameters.size() ? m_vParameters[index].Dimension :
DT_Unknown;
289 return index >= 0 && index < m_vParameters.size() ? m_vParameters[index] :
Parameter();
294 int GetDependencyCount() {
return CVT_INT(m_vDependencies.size()); }
296 int AddDependency(
const char* name,
const char* description);
298 string GetDependencyName(
int index) {
299 return index >= 0 && index < m_vDependencies.size() ? m_vDependencies[index].Name :
"";
302 string GetDependencyDescription(
int index) {
303 return index >= 0 && index < m_vDependencies.size() ? m_vDependencies[index].Description :
"";
307 return index >= 0 && index < m_vDependencies.size() ? m_vDependencies[index] :
ModelClass();
310 string GetXMLDocument();
312 void OpenTag(
string name,
string attributes,
int indent,
string* sb);
314 void CloseTag(
string name,
int indent,
string* sb);
316 void FullTag(
const string& name,
int indent,
string& content,
string* sb);
318 void WriteClass(
int indent,
string* sb);
320 void WriteInformation(
int indent,
string* sb);
322 void WriteInputs(
int indent,
string* sb);
324 void WriteOutputs(
int indent,
string* sb);
326 void WriteInOutputs(
int indent,
string* sb);
328 void WriteParameters(
int indent,
string* sb);
330 void WriteDependencies(
int indent,
string* sb);
332 void WriteXMLHeader(
string* sb);
334 void DimensionTag(
string tag,
int indent,
dimensionTypes dimType,
string* sb);
336 void TransferTypeTag(
string tag,
int indent,
transferTypes tfType,
string* sb);
339 string m_strSchemaVersion;
342 vector<Parameter> m_vParameters;
343 vector<InputVariable> m_vInputs;
344 vector<OutputVariable> m_vOutputs;
345 vector<InOutputVariable> m_vInOutputs;
346 vector<ModelClass> m_vDependencies;
#define CVT_INT(param)
A reference to the postfix of executable file for RELWITHDEBINFO mode.
Definition: basic.h:325
Base type of all interfaces.
Definition: basic.h:407
string EMail
Email.
Definition: MetadataInfo.h:51
string Version
Module Version.
Definition: MetadataInfo.h:49
string Author
Author.
Definition: MetadataInfo.h:50
string Units
Units.
Definition: MetadataInfo.h:67
string Id
Module ID.
Definition: MetadataInfo.h:46
string Description
Description.
Definition: MetadataInfo.h:68
string Helpfile
Helpfile.
Definition: MetadataInfo.h:53
string Source
Source type.
Definition: MetadataInfo.h:82
string Description
Module Description.
Definition: MetadataInfo.h:48
string Name
Module Name.
Definition: MetadataInfo.h:47
string Name
Name.
Definition: MetadataInfo.h:66
dimensionTypes Dimension
Data dimension type.
Definition: MetadataInfo.h:69
string Website
Website.
Definition: MetadataInfo.h:52
transferTypes
Float values be transferred across subbasins for MPI version.
Definition: MetadataInfoConst.h:86
dimensionTypes
enum of dimension data types
Definition: MetadataInfoConst.h:63
Input and output variable information class.
Definition: MetadataInfo.h:115
Module basic description.
Definition: MetadataInfo.h:27
Output variable information class.
Definition: MetadataInfo.h:103
Model parameter information class.
Definition: MetadataInfo.h:78
Basic model parameter information.
Definition: MetadataInfo.h:62
Common Cross-platform Geographic Library (CCGL)