1 #include "otsdaq/TableCore/TableViewColumnInfo.h"
3 #include "otsdaq/Macros/CoutMacros.h"
4 #include "otsdaq/Macros/StringMacros.h"
10 #include "otsdaq/TableCore/TableView.h"
19 const std::string TableViewColumnInfo::TYPE_DATA =
"Data";
20 const std::string TableViewColumnInfo::TYPE_UNIQUE_DATA =
"UniqueData";
21 const std::string TableViewColumnInfo::TYPE_UNIQUE_GROUP_DATA =
"UniqueGroupData";
22 const std::string TableViewColumnInfo::TYPE_MULTILINE_DATA =
"MultilineData";
23 const std::string TableViewColumnInfo::TYPE_FIXED_CHOICE_DATA =
"FixedChoiceData";
24 const std::string TableViewColumnInfo::TYPE_BITMAP_DATA =
"BitMap";
26 const std::string TableViewColumnInfo::TYPE_ON_OFF =
"OnOff";
27 const std::string TableViewColumnInfo::TYPE_TRUE_FALSE =
"TrueFalse";
28 const std::string TableViewColumnInfo::TYPE_YES_NO =
"YesNo";
30 const std::string TableViewColumnInfo::TYPE_START_CHILD_LINK =
"ChildLink";
31 const std::string TableViewColumnInfo::TYPE_START_CHILD_LINK_UID =
"ChildLinkUID";
32 const std::string TableViewColumnInfo::TYPE_START_CHILD_LINK_GROUP_ID =
"ChildLinkGroupID";
33 const std::string TableViewColumnInfo::TYPE_START_GROUP_ID =
"GroupID";
34 const std::string TableViewColumnInfo::TYPE_COMMENT =
"Comment";
35 const std::string TableViewColumnInfo::TYPE_AUTHOR =
"Author";
36 const std::string TableViewColumnInfo::TYPE_TIMESTAMP =
"Timestamp";
40 const std::string TableViewColumnInfo::DATATYPE_STRING =
"STRING";
41 const std::string TableViewColumnInfo::DATATYPE_TIME =
"TIMESTAMP WITH TIMEZONE";
43 const std::string TableViewColumnInfo::TYPE_VALUE_YES =
"Yes";
44 const std::string TableViewColumnInfo::TYPE_VALUE_NO =
"No";
45 const std::string TableViewColumnInfo::TYPE_VALUE_TRUE =
"True";
46 const std::string TableViewColumnInfo::TYPE_VALUE_FALSE =
"False";
47 const std::string TableViewColumnInfo::TYPE_VALUE_ON =
"On";
48 const std::string TableViewColumnInfo::TYPE_VALUE_OFF =
"Off";
50 const std::string TableViewColumnInfo::DATATYPE_STRING_DEFAULT =
"DEFAULT";
51 const std::string TableViewColumnInfo::DATATYPE_STRING_ALT_DEFAULT =
"Default";
52 const std::string TableViewColumnInfo::DATATYPE_COMMENT_DEFAULT =
"No comment.";
53 const std::string TableViewColumnInfo::DATATYPE_COMMENT_OLD_DEFAULT =
"No Comment";
54 const std::string TableViewColumnInfo::DATATYPE_BOOL_DEFAULT =
"0";
55 const std::string TableViewColumnInfo::DATATYPE_NUMBER_DEFAULT =
"0";
57 const std::string TableViewColumnInfo::DATATYPE_NUMBER_MIN_DEFAULT =
"";
58 const std::string TableViewColumnInfo::DATATYPE_NUMBER_MAX_DEFAULT =
"";
60 const std::string TableViewColumnInfo::DATATYPE_TIME_DEFAULT =
"0";
61 const std::string TableViewColumnInfo::DATATYPE_LINK_DEFAULT =
"NO_LINK";
63 const std::string TableViewColumnInfo::COL_NAME_STATUS =
"Status";
64 const std::string TableViewColumnInfo::COL_NAME_ENABLED =
"Enabled";
65 const std::string TableViewColumnInfo::COL_NAME_PRIORITY =
"Priority";
66 const std::string TableViewColumnInfo::COL_NAME_COMMENT =
"CommentDescription";
67 const std::string TableViewColumnInfo::COL_NAME_AUTHOR =
"Author";
68 const std::string TableViewColumnInfo::COL_NAME_CREATION =
"RecordInsertionTime";
76 TableViewColumnInfo::TableViewColumnInfo(
const std::string& type,
77 const std::string& name,
78 const std::string& storageName,
79 const std::string& dataType,
80 const std::string* defaultValue,
81 const std::string& dataChoicesCSV,
82 const std::string* minValue,
83 const std::string* maxValue,
84 std::string* capturedExceptionString)
87 , storageName_(storageName)
88 , dataType_( dataType ==
"VARCHAR2" ? DATATYPE_STRING
90 , defaultValue_(defaultValue ? *defaultValue
91 : getDefaultDefaultValue(type_, dataType_))
93 dataChoices_(getDataChoicesFromString(dataChoicesCSV))
94 , minValue_(minValue ? ((*minValue) ==
"null" ?
"" : (*minValue))
95 : getMinDefaultValue(dataType_))
98 maxValue_(maxValue ? ((*maxValue) ==
"null" ?
"" : (*maxValue))
99 : getMaxDefaultValue(dataType_))
102 bitMapInfoP_(nullptr)
107 if((type_ !=
TYPE_UID) && (type_ != TYPE_DATA) && (type_ != TYPE_UNIQUE_DATA) &&
108 (type_ != TYPE_UNIQUE_GROUP_DATA) && (type_ != TYPE_MULTILINE_DATA) &&
109 (type_ != TYPE_FIXED_CHOICE_DATA) && (type_ != TYPE_BITMAP_DATA) &&
110 (type_ != TYPE_ON_OFF) && (type_ != TYPE_TRUE_FALSE) && (type_ != TYPE_YES_NO) &&
111 (type_ != TYPE_COMMENT) && (type_ != TYPE_AUTHOR) && (type_ != TYPE_TIMESTAMP) &&
114 __SS__ <<
"The type for column " << name_ <<
" is " << type_
115 <<
", while the only accepted types are: " << TYPE_DATA <<
" "
116 << TYPE_UNIQUE_DATA <<
" " << TYPE_UNIQUE_GROUP_DATA <<
" "
117 << TYPE_MULTILINE_DATA <<
" " << TYPE_FIXED_CHOICE_DATA <<
" " <<
TYPE_UID
118 <<
" " << TYPE_ON_OFF <<
" " << TYPE_TRUE_FALSE <<
" " << TYPE_YES_NO
119 <<
" " << TYPE_START_CHILD_LINK <<
"-* " << TYPE_START_CHILD_LINK_UID
120 <<
"-* " << TYPE_START_CHILD_LINK_GROUP_ID <<
"-* " << TYPE_START_GROUP_ID
121 <<
"-* " << std::endl;
122 if(capturedExceptionString)
123 *capturedExceptionString = ss.str();
127 else if(capturedExceptionString)
128 *capturedExceptionString =
"";
132 for(
unsigned int i = 0; i < type_.size(); ++i)
133 if(!((type_[i] >=
'A' && type_[i] <=
'Z') ||
134 (type_[i] >=
'a' && type_[i] <=
'z') ||
135 (type_[i] >=
'0' && type_[i] <=
'9') ||
136 (type_[i] ==
'-' || type_[i] ==
'_' || type_[i] ==
'.' || type_[i] ==
' ')))
138 __SS__ <<
"The column type for column " << name_ <<
" is '" << type_
139 <<
"'. Column types must contain only letters, numbers, "
140 <<
"dashes, underscores, periods, and spaces." << std::endl;
141 if(capturedExceptionString)
142 *capturedExceptionString += ss.str();
149 (dataType_ != DATATYPE_TIME))
151 __SS__ <<
"The data type for column " << name_ <<
" is " << dataType_
153 << DATATYPE_STRING <<
" " << DATATYPE_TIME << std::endl;
154 if(capturedExceptionString)
155 *capturedExceptionString += ss.str();
160 if(type_ == TYPE_BITMAP_DATA && dataType_ != DATATYPE_STRING)
162 __SS__ <<
"The data type for column " << name_ <<
" is '" << dataType_
163 <<
"'. Bitmap columns must have a data type of '" << DATATYPE_STRING
164 <<
"'." << std::endl;
165 if(capturedExceptionString)
166 *capturedExceptionString += ss.str();
171 if(dataType_.size() == 0)
173 __SS__ <<
"The data type for column " << name_ <<
" is '" << dataType_
174 <<
"'. Data types must contain at least 1 character." << std::endl;
175 if(capturedExceptionString)
176 *capturedExceptionString += ss.str();
183 for(
unsigned int i = 0; i < dataType_.size(); ++i)
184 if(!((dataType_[i] >=
'A' && dataType_[i] <=
'Z') ||
185 (dataType_[i] >=
'a' && dataType_[i] <=
'z') ||
186 (dataType_[i] >=
'0' && dataType_[i] <=
'9') ||
187 (dataType_[i] ==
'-' || dataType_[i] ==
'_' || dataType_[i] ==
' ')))
189 __SS__ <<
"The data type for column " << name_ <<
" is '" << dataType_
190 <<
"'. Data types must contain only letters, numbers, "
191 <<
"dashes, underscores, and spaces." << std::endl;
192 if(capturedExceptionString)
193 *capturedExceptionString += ss.str();
198 if(name_.size() == 0)
200 __SS__ <<
"There is a column named " << name_
201 <<
"'. Column names must contain at least 1 character." << std::endl;
202 if(capturedExceptionString)
203 *capturedExceptionString += ss.str();
210 for(
unsigned int i = 0; i < name_.size(); ++i)
211 if(!((name_[i] >=
'A' && name_[i] <=
'Z') ||
212 (name_[i] >=
'a' && name_[i] <=
'z') ||
213 (name_[i] >=
'0' && name_[i] <=
'9') ||
214 (name_[i] ==
'-' || name_[i] ==
'_')))
216 __SS__ <<
"There is a column named " << name_
217 <<
"'. Column names must contain only letters, numbers, "
218 <<
"dashes, and underscores." << std::endl;
219 if(capturedExceptionString)
220 *capturedExceptionString += ss.str();
225 if(storageName_.size() == 0)
227 __SS__ <<
"The storage name for column " << name_ <<
" is '" << storageName_
228 <<
"'. Storage names must contain at least 1 character." << std::endl;
229 if(capturedExceptionString)
230 *capturedExceptionString += ss.str();
237 for(
unsigned int i = 0; i < storageName_.size(); ++i)
238 if(!((storageName_[i] >=
'A' && storageName_[i] <=
'Z') ||
239 (storageName_[i] >=
'0' && storageName_[i] <=
'9') ||
240 (storageName_[i] ==
'-' || storageName_[i] ==
'_')))
242 __SS__ <<
"The storage name for column " << name_ <<
" is '" << storageName_
243 <<
"'. Storage names must contain only capital letters, numbers,"
244 <<
"dashes, and underscores." << std::endl;
245 if(capturedExceptionString)
246 *capturedExceptionString += ss.str();
255 catch(std::runtime_error& e)
257 if(capturedExceptionString)
258 *capturedExceptionString += e.what();
265 std::vector<std::string> TableViewColumnInfo::getDataChoicesFromString(
266 const std::string& dataChoicesCSV)
const
268 std::vector<std::string> dataChoices;
272 std::istringstream f(dataChoicesCSV);
274 while(getline(f, s,
','))
283 void TableViewColumnInfo::extractBitMapInfo()
286 if(type_ == TYPE_BITMAP_DATA)
290 bitMapInfoP_ =
new BitMapInfo();
318 if(dataChoices_.size() < 16)
320 __SS__ <<
"The Bit-Map data parameters for column " << name_
321 <<
" should be size 16, but is size " << dataChoices_.size()
322 <<
". Bit-Map parameters should be e.g. rows, cols, cellBitSize, and "
324 "mid, max color, etc."
328 if(dataChoices_.size() > 18)
330 __SS__ <<
"The Bit-Map data parameters for column " << name_
331 <<
" should be size 18, but is size " << dataChoices_.size()
332 <<
". Bit-Map parameters should be e.g. rows, cols, cellBitSize, and "
334 "mid, max color, etc."
339 sscanf(dataChoices_[0].c_str(),
"%u", &(bitMapInfoP_->numOfRows_));
340 sscanf(dataChoices_[1].c_str(),
"%u", &(bitMapInfoP_->numOfColumns_));
341 sscanf(dataChoices_[2].c_str(),
"%u", &(bitMapInfoP_->cellBitSize_));
343 sscanf(dataChoices_[3].c_str(),
"%lf", &(bitMapInfoP_->minValue_));
344 sscanf(dataChoices_[4].c_str(),
"%lf", &(bitMapInfoP_->maxValue_));
345 sscanf(dataChoices_[5].c_str(),
"%lf", &(bitMapInfoP_->stepValue_));
347 bitMapInfoP_->aspectRatio_ = dataChoices_[6];
348 bitMapInfoP_->minColor_ = dataChoices_[7];
349 bitMapInfoP_->midColor_ = dataChoices_[8];
350 bitMapInfoP_->maxColor_ = dataChoices_[9];
351 bitMapInfoP_->absMinColor_ = dataChoices_[10];
352 bitMapInfoP_->absMaxColor_ = dataChoices_[11];
354 bitMapInfoP_->rowsAscending_ = dataChoices_[12] ==
"Yes" ? 1 : 0;
355 bitMapInfoP_->colsAscending_ = dataChoices_[13] ==
"Yes" ? 1 : 0;
356 bitMapInfoP_->snakeRows_ = dataChoices_[14] ==
"Yes" ? 1 : 0;
357 bitMapInfoP_->snakeCols_ = dataChoices_[15] ==
"Yes" ? 1 : 0;
359 bitMapInfoP_->snakeCols_ = dataChoices_[15] ==
"Yes" ? 1 : 0;
360 if(dataChoices_.size() > 16)
361 bitMapInfoP_->floatingPoint_ = dataChoices_[16] ==
"Yes" ? 1 : 0;
362 if(dataChoices_.size() > 17)
363 bitMapInfoP_->mapToStrings_ = dataChoices_[17];
365 if(bitMapInfoP_->floatingPoint_ &&
366 bitMapInfoP_->cellBitSize_ != 32)
368 __SS__ <<
"Illegal Bit-Map data parameters for column " << name_
369 <<
" - if floating point is allowed, the Bit-field size must be 32."
374 if(bitMapInfoP_->mapToStrings_ !=
"" &&
375 bitMapInfoP_->mapToStrings_ != TableViewColumnInfo::DATATYPE_STRING_DEFAULT &&
376 bitMapInfoP_->mapToStrings_ !=
377 TableViewColumnInfo::DATATYPE_STRING_ALT_DEFAULT)
379 if(bitMapInfoP_->floatingPoint_)
381 __SS__ <<
"Illegal Bit-Map data parameters for column " << name_
382 <<
" - if floating point is allowed, then Value Map to Strings "
383 "must be empty or set to '"
384 << TableViewColumnInfo::DATATYPE_STRING_DEFAULT <<
".' "
385 <<
"Please disable floating point or clear the Value Map to "
390 bitMapInfoP_->mapsToStrings_ =
true;
393 bitMapInfoP_->mapsToStrings_ =
false;
399 TableViewColumnInfo::TableViewColumnInfo(
void) {}
402 TableViewColumnInfo::TableViewColumnInfo(
406 , storageName_(c.storageName_)
407 , dataType_(c.dataType_)
408 , defaultValue_(c.defaultValue_)
409 , dataChoices_(c.dataChoices_)
410 , minValue_(c.minValue_)
411 , maxValue_(c.maxValue_)
412 , bitMapInfoP_(nullptr)
422 __COUT__ <<
"OPERATOR= COPY CONSTRUCTOR " << std::endl;
427 __COUT__ <<
"OPERATOR= COPY CONSTRUCTOR CANNOT BE USED - TableViewColumnInfo is a "
428 "const class. SO YOUR CODE IS WRONG! You should probably instantiate "
429 "and initialize another TableViewColumnInfo, rather than assigning to "
430 "an existing TableViewColumnInfo. Crashing now."
432 __COUT__ <<
"OPERATOR= COPY CONSTRUCTOR CANNOT BE USED - TableViewColumnInfo is a "
433 "const class. SO YOUR CODE IS WRONG! You should probably instantiate "
434 "and initialize another TableViewColumnInfo, rather than assigning to "
435 "an existing TableViewColumnInfo. Crashing now."
437 __COUT__ <<
"OPERATOR= COPY CONSTRUCTOR CANNOT BE USED - TableViewColumnInfo is a "
438 "const class. SO YOUR CODE IS WRONG! You should probably instantiate "
439 "and initialize another TableViewColumnInfo, rather than assigning to "
440 "an existing TableViewColumnInfo. Crashing now."
442 __COUT__ <<
"OPERATOR= COPY CONSTRUCTOR CANNOT BE USED - TableViewColumnInfo is a "
443 "const class. SO YOUR CODE IS WRONG! You should probably instantiate "
444 "and initialize another TableViewColumnInfo, rather than assigning to "
445 "an existing TableViewColumnInfo. Crashing now."
447 __COUT__ <<
"OPERATOR= COPY CONSTRUCTOR CANNOT BE USED - TableViewColumnInfo is a "
448 "const class. SO YOUR CODE IS WRONG! You should probably instantiate "
449 "and initialize another TableViewColumnInfo, rather than assigning to "
450 "an existing TableViewColumnInfo. Crashing now."
471 TableViewColumnInfo::~TableViewColumnInfo(
void)
478 const std::string& TableViewColumnInfo::getType(
void)
const {
return type_; }
484 return defaultValue_;
486 const std::string& TableViewColumnInfo::getMinValue(
void)
const {
return minValue_; }
487 const std::string& TableViewColumnInfo::getMaxValue(
void)
const {
return maxValue_; }
493 const std::string& type,
const std::string& dataType)
495 if(dataType == TableViewColumnInfo::DATATYPE_STRING)
497 if(type == TableViewColumnInfo::TYPE_ON_OFF ||
498 type == TableViewColumnInfo::TYPE_TRUE_FALSE ||
499 type == TableViewColumnInfo::TYPE_YES_NO)
501 TableViewColumnInfo::DATATYPE_BOOL_DEFAULT);
503 return (TableViewColumnInfo::DATATYPE_LINK_DEFAULT);
504 else if(type == TableViewColumnInfo::TYPE_COMMENT)
505 return (TableViewColumnInfo::DATATYPE_COMMENT_DEFAULT);
507 return (TableViewColumnInfo::DATATYPE_STRING_DEFAULT);
510 return (TableViewColumnInfo::DATATYPE_NUMBER_DEFAULT);
511 else if(dataType == TableViewColumnInfo::DATATYPE_TIME)
512 return (TableViewColumnInfo::DATATYPE_TIME_DEFAULT);
515 __SS__ <<
"\tUnrecognized View data type: " << dataType << std::endl;
516 __COUT_ERR__ <<
"\n" << ss.str();
525 if(dataType == TableViewColumnInfo::DATATYPE_STRING)
527 DATATYPE_NUMBER_MIN_DEFAULT);
531 return (TableViewColumnInfo::DATATYPE_NUMBER_MIN_DEFAULT);
534 else if(dataType == TableViewColumnInfo::DATATYPE_TIME)
535 return (TableViewColumnInfo::DATATYPE_NUMBER_MIN_DEFAULT);
538 __SS__ <<
"\tUnrecognized View data type: " << dataType << std::endl;
539 __COUT_ERR__ <<
"\n" << ss.str();
548 if(dataType == TableViewColumnInfo::DATATYPE_STRING)
549 return (TableViewColumnInfo::DATATYPE_NUMBER_MAX_DEFAULT);
553 return (TableViewColumnInfo::DATATYPE_NUMBER_MAX_DEFAULT);
555 else if(dataType == TableViewColumnInfo::DATATYPE_TIME)
556 return (TableViewColumnInfo::DATATYPE_NUMBER_MAX_DEFAULT);
559 __SS__ <<
"\tUnrecognized View data type: " << dataType << std::endl;
560 __COUT_ERR__ <<
"\n" << ss.str();
566 std::vector<std::string> TableViewColumnInfo::getAllTypesForGUI(
void)
568 std::vector<std::string> all;
569 all.push_back(TYPE_DATA);
570 all.push_back(TYPE_UNIQUE_DATA);
571 all.push_back(TYPE_UNIQUE_GROUP_DATA);
572 all.push_back(TYPE_FIXED_CHOICE_DATA);
573 all.push_back(TYPE_MULTILINE_DATA);
574 all.push_back(TYPE_BITMAP_DATA);
575 all.push_back(TYPE_ON_OFF);
576 all.push_back(TYPE_TRUE_FALSE);
577 all.push_back(TYPE_YES_NO);
578 all.push_back(TYPE_START_CHILD_LINK_UID);
579 all.push_back(TYPE_START_CHILD_LINK_GROUP_ID);
580 all.push_back(TYPE_START_CHILD_LINK);
581 all.push_back(TYPE_START_GROUP_ID);
586 std::vector<std::string> TableViewColumnInfo::getAllDataTypesForGUI(
void)
588 std::vector<std::string> all;
589 all.push_back(DATATYPE_STRING);
591 all.push_back(DATATYPE_TIME);
597 std::map<std::pair<std::string, std::string>, std::string>
600 std::map<std::pair<std::string, std::string>, std::string> all;
602 DATATYPE_NUMBER_DEFAULT;
603 all[std::pair<std::string, std::string>(DATATYPE_TIME,
"*")] = DATATYPE_TIME_DEFAULT;
605 all[std::pair<std::string, std::string>(DATATYPE_STRING, TYPE_ON_OFF)] =
606 DATATYPE_BOOL_DEFAULT;
607 all[std::pair<std::string, std::string>(DATATYPE_STRING, TYPE_TRUE_FALSE)] =
608 DATATYPE_BOOL_DEFAULT;
609 all[std::pair<std::string, std::string>(DATATYPE_STRING, TYPE_YES_NO)] =
610 DATATYPE_BOOL_DEFAULT;
612 all[std::pair<std::string, std::string>(DATATYPE_STRING, TYPE_START_CHILD_LINK)] =
613 DATATYPE_LINK_DEFAULT;
614 all[std::pair<std::string, std::string>(DATATYPE_STRING,
"*")] =
615 DATATYPE_STRING_DEFAULT;
623 return (type_ == TYPE_ON_OFF || type_ == TYPE_TRUE_FALSE || type_ == TYPE_YES_NO);
634 const std::string& TableViewColumnInfo::getName(
void)
const {
return name_; }
637 const std::string& TableViewColumnInfo::getStorageName(
void)
const
643 const std::string& TableViewColumnInfo::getDataType(
void)
const {
return dataType_; }
646 const std::vector<std::string>& TableViewColumnInfo::getDataChoices(
void)
const
657 return *bitMapInfoP_;
661 __SS__ <<
"getBitMapInfo request for non-BitMap column of type: " << getType()
663 __COUT_ERR__ <<
"\n" << ss.str();
674 return (type.find(TYPE_START_CHILD_LINK) == 0 &&
675 type.length() > TYPE_START_CHILD_LINK.length() &&
676 type[TYPE_START_CHILD_LINK.length()] ==
'-');
685 return (type_.find(TYPE_START_CHILD_LINK) == 0 &&
686 type_.length() > TYPE_START_CHILD_LINK.length() &&
687 type_[TYPE_START_CHILD_LINK.length()] ==
'-');
696 return (type_.find(TYPE_START_CHILD_LINK_UID) == 0 &&
697 type_.length() > TYPE_START_CHILD_LINK_UID.length() &&
698 type_[TYPE_START_CHILD_LINK_UID.length()] ==
'-');
707 return (type_.find(TYPE_START_CHILD_LINK_GROUP_ID) == 0 &&
708 type_.length() > TYPE_START_CHILD_LINK_GROUP_ID.length() &&
709 type_[TYPE_START_CHILD_LINK_GROUP_ID.length()] ==
'-');
718 return (type_.find(TYPE_START_GROUP_ID) == 0 &&
719 type_.length() > TYPE_START_GROUP_ID.length() &&
720 type_[TYPE_START_GROUP_ID.length()] ==
'-');
733 return type_.substr(TYPE_START_CHILD_LINK.length() + 1);
735 return type_.substr(TYPE_START_CHILD_LINK_UID.length() + 1);
737 return type_.substr(TYPE_START_CHILD_LINK_GROUP_ID.length() + 1);
739 return type_.substr(TYPE_START_GROUP_ID.length() + 1);
743 << (
"Requesting a Link Index from a column that is not a child link member!")
745 __COUT_ERR__ << ss.str();
bool isChildLinkUID(void) const
static const std::string DATATYPE_NUMBER
static std::map< std::pair< std::string, std::string >, std::string > getAllDefaultsForGUI(void)
map of datatype,type to default value
std::string getChildLinkIndex(void) const
getChildLinkIndex
bool isChildLink(void) const
TableViewColumnInfo & operator=(const TableViewColumnInfo &c)
assignment operator because of bitmap pointer
bool isUID(void) const
isUID
bool isGroupID(void) const
static const std::string & getDefaultDefaultValue(const std::string &type, const std::string &dataType)
static const std::string TYPE_UID
NOTE: Do NOT put '-' in static const TYPEs because it will mess up javascript handling in the web gui...
static const std::string & getMaxDefaultValue(const std::string &dataType)
function to get max default value
const BitMapInfo & getBitMapInfo(void) const
uses dataChoices CSV fields if type is TYPE_BITMAP_DATA
static const std::string & getMinDefaultValue(const std::string &dataType)
function to get min default value
bool isBoolType(void) const
TODO check if min and max values need a function called getallminmaxforgui or something like that for...
bool isNumberDataType(void) const
isNumberDataType
bool isChildLinkGroupID(void) const
const std::string & getDefaultValue(void) const
returns the configued default value value for this particular column
defines used also by OtsConfigurationWizardSupervisor
static std::string decodeURIComponent(const std::string &data)
static std::string stackTrace(void)
< uses dataChoices CSV fields if type is TYPE_BITMAP_DATA