]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/OptionalValue.cpp
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / OptionalValue.cpp
1 #include "OptionalValue.h"
2
3 #include "Constants.h"
4
5 namespace Databoard {
6         namespace Value {
7                 OptionalValue::OptionalValue(Databoard::Type::DataType* dataBoard) : Value(dataBoard)
8                 {
9                         this->value = NULL;
10                 }
11
12                 OptionalValue::~OptionalValue()
13                 {
14                         if(value != NULL)
15                         {
16                                 delete value;
17                                 
18                                 value = NULL;
19                         }
20                 }
21
22                 void OptionalValue::setValue(Value* value)
23                 {
24                         if(this->value != NULL)
25                         {
26                                 delete this->value;
27                                 
28                                 this->value = NULL;
29                         }
30
31                         this->value = value;
32                 }
33
34                 void OptionalValue::setNoValue()
35                 {
36                         if(value != NULL)
37                         {
38                                 delete value;
39                                 
40                                 value = NULL;
41                         }
42                 }
43
44                 Value* OptionalValue::getValue()
45                 {
46                         return value;
47                 }
48
49                 bool OptionalValue::hasValue()
50                 {
51                         return (value != NULL);
52                 }
53
54                 std::string OptionalValue::writeOut(int /*indent*/)
55                 {
56                         std::string s;
57
58                         if(value != NULL)
59                         {
60                                 s += value->writeOut();
61                         }
62
63                         return s;
64                 }
65
66                 bool OptionalValue::equals(const Value* other)
67                 {
68                         OptionalValue* o = (OptionalValue*)other;
69
70                         if(hasValue() != o->hasValue())
71                         {
72                                 return hasValue();
73                         }
74
75                         return value->equals(o->value);
76                 }
77
78                 std::string OptionalValue::isValid()
79                 {
80                         if(hasValue() == true)
81                         {
82                                 return value->isValid();
83                         }
84
85                         return STR_EMPTY;
86                 }
87         }
88 }