]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/LongValue.cpp
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / LongValue.cpp
1 #include "LongValue.h"\r
2 \r
3 #include "LongType.h"\r
4 #include "Constants.h"\r
5 #include "Range.h"\r
6 #include "Limit.h"\r
7 \r
8 #include <sstream>\r
9 \r
10 namespace Databoard {\r
11         namespace Value {\r
12                 LongValue::LongValue(Databoard::Type::DataType* dataBoard) : Value(dataBoard)\r
13                 {\r
14                 }\r
15 \r
16                 LongValue::~LongValue()\r
17                 {\r
18                 }\r
19 \r
20                 void LongValue::setValue(long value)\r
21                 {\r
22                         Databoard::Type::LongType* longType = dynamic_cast<Databoard::Type::LongType*>(dataBoard);\r
23 \r
24                         if(longType != NULL)\r
25                         {\r
26                                 this->value = value;\r
27                         }\r
28                 }\r
29 \r
30                 long LongValue::getValue()\r
31                 {\r
32                         return value;\r
33                 }\r
34 \r
35                 std::string LongValue::writeOut(int /*indent*/)\r
36                 {\r
37                         std::string s;\r
38 \r
39                         std::stringstream oss;\r
40 \r
41                         oss << value;\r
42 \r
43                         oss >> s;\r
44 \r
45                         //if(unit.size() != 0)\r
46                         //{\r
47                         //      s += "(Unit=\"" + unit + "\")";\r
48                         //}\r
49 \r
50                         return s;\r
51                 }\r
52 \r
53                 bool LongValue::equals(const Value* other)\r
54                 {\r
55                         LongValue* o = (LongValue*)other;\r
56 \r
57                         return (this->value < o->value);\r
58 \r
59                 }\r
60 \r
61                 std::string LongValue::isValid()\r
62                 {\r
63                         if(dataBoard == NULL)\r
64                         {\r
65                                 return "LongValue: There is no datatype.";\r
66                         }\r
67 \r
68                         Databoard::Type::LongType* longType = (Databoard::Type::LongType*)dataBoard;\r
69 \r
70                         if(longType->getRange() == NULL)\r
71                         {\r
72                                 return STR_EMPTY;\r
73                         }\r
74 \r
75                         int minValue = longType->minValue();\r
76                         int maxValue = longType->maxValue();\r
77 \r
78                         if(longType->getRange()->getLower()->getInclusive() == true)\r
79                         {\r
80                                 if(value < minValue)\r
81                                 {\r
82                                         return std::string("LongValue: ") + STR_ERROR_VALUE_SMALL;\r
83                                 }\r
84                         }\r
85                         else //if(longType->getRange()->getLower()->getInclusive() == false)\r
86                         {\r
87                                 if(value <= minValue)\r
88                                 {\r
89                                         return std::string("LongValue: ") + STR_ERROR_VALUE_SMALL;\r
90                                 }\r
91                         }\r
92 \r
93                         if(longType->getRange()->getUpper()->getInclusive() == true)\r
94                         {\r
95                                 if(value > maxValue)\r
96                                 {\r
97                                         return std::string("LongValue: ") + STR_ERROR_VALUE_LARGE;\r
98                                 }\r
99                         }\r
100                         else //if(longType->getRange()->getUpper()->getInclusive() == false)\r
101                         {\r
102                                 if(value >= maxValue)\r
103                                 {\r
104                                         return std::string("LongValue: ") + STR_ERROR_VALUE_LARGE;\r
105                                 }\r
106                         }\r
107 \r
108                         return STR_EMPTY;\r
109                 }\r
110         }\r
111 }\r