1 #include "IntegerValue.h"
\r
3 #include "NumberType.h"
\r
4 #include "IntegerType.h"
\r
9 #include "Constants.h"
\r
11 namespace Databoard {
\r
13 IntegerValue::IntegerValue(Databoard::Type::DataType* dataBoard) : Value(dataBoard)
\r
17 IntegerValue::~IntegerValue()
\r
21 void IntegerValue::setValue(int value)
\r
23 Databoard::Type::IntegerType* integerType = dynamic_cast<Databoard::Type::IntegerType*>(dataBoard);
\r
25 if(integerType != NULL)
\r
27 this->value = value;
\r
31 int IntegerValue::getValue()
\r
36 std::string IntegerValue::writeOut(int /*indent*/)
\r
40 std::stringstream oss;
\r
49 bool IntegerValue::equals(const Value* other)
\r
51 IntegerValue* o = (IntegerValue*)other;
\r
53 return (this->value < o->value);
\r
56 std::string IntegerValue::isValid()
\r
58 if(dataBoard == NULL)
\r
60 return "IntegerValue: There is no datatype.";
\r
63 Databoard::Type::IntegerType* integerType = (Databoard::Type::IntegerType*)dataBoard;
\r
65 if(integerType->getRange() == NULL)
\r
70 int minValue = integerType->minValue();
\r
71 int maxValue = integerType->maxValue();
\r
73 if(integerType->getRange()->getLower()->getInclusive() == true)
\r
75 if(value < minValue)
\r
77 return std::string("IntegerValue: ") + STR_ERROR_VALUE_SMALL;
\r
80 else //if(integerType->getRange()->getLower()->getInclusive() == false)
\r
82 if(value <= minValue)
\r
84 return std::string("IntegerValue: ") + STR_ERROR_VALUE_SMALL;
\r
88 if(integerType->getRange()->getUpper()->getInclusive() == true)
\r
90 if(value > maxValue)
\r
92 return std::string("IntegerValue: ") + STR_ERROR_VALUE_LARGE;
\r
95 else //if(integerType->getRange()->getUpper()->getInclusive() == false)
\r
97 if(value >= maxValue)
\r
99 return std::string("IntegerValue: ") + STR_ERROR_VALUE_LARGE;
\r