#include "OptionalValue.h" #include "Constants.h" namespace Databoard { namespace Value { OptionalValue::OptionalValue(Databoard::Type::DataType* dataBoard) : Value(dataBoard) { this->value = NULL; } OptionalValue::~OptionalValue() { if(value != NULL) { delete value; value = NULL; } } void OptionalValue::setValue(Value* value) { if(this->value != NULL) { delete this->value; this->value = NULL; } this->value = value; } void OptionalValue::setNoValue() { if(value != NULL) { delete value; value = NULL; } } Value* OptionalValue::getValue() { return value; } bool OptionalValue::hasValue() { return (value != NULL); } std::string OptionalValue::writeOut(int /*indent*/) { std::string s; if(value != NULL) { s += value->writeOut(); } return s; } bool OptionalValue::equals(const Value* other) { OptionalValue* o = (OptionalValue*)other; if(hasValue() != o->hasValue()) { return hasValue(); } return value->equals(o->value); } std::string OptionalValue::isValid() { if(hasValue() == true) { return value->isValid(); } return STR_EMPTY; } } }