1 #include "UnionValue.h"
\r
3 #include "UnionType.h"
\r
4 #include "Component.h"
\r
5 #include "Constants.h"
\r
7 namespace Databoard {
\r
9 UnionValue::UnionValue(Databoard::Type::DataType* dataBoard) : Value(dataBoard)
\r
15 UnionValue::~UnionValue()
\r
24 int UnionValue::getTag()
\r
29 Value* UnionValue::getValue()
\r
34 void UnionValue::setValue(int tag, Value* value)
\r
37 this->value = value;
\r
40 std::string UnionValue::writeOut(int /*indent*/)
\r
44 Databoard::Type::UnionType* unionType = (Databoard::Type::UnionType*)dataBoard;
\r
46 Databoard::Type::Component* component = unionType->getComponent(tag);
\r
48 if(component != NULL)
\r
50 s += component->getName();
\r
56 s += value->writeOut();
\r
61 //if(unit.size() != 0)
\r
63 // s += "(Unit=\"" + unit + "\")";
\r
69 bool UnionValue::equals(const Value* other)
\r
71 UnionValue* o = (UnionValue*)other;
\r
75 return (tag < o->tag);
\r
78 return (value->equals(o->value));
\r
81 std::string UnionValue::isValid()
\r
83 if(dataBoard == NULL)
\r
85 return "LongValue: There is no datatype.";
\r
93 return value->isValid();
\r