Hazelnupp/Hazelnupp/ListValue.cpp
2021-06-02 17:15:17 +02:00

63 lines
892 B
C++

#include "ListValue.h"
#include <sstream>
ListValue::ListValue() :
Value(DATA_TYPE::LIST)
{
return;
}
ListValue::~ListValue()
{
for (Value* val : value)
delete val;
value.clear();
return;
}
Value* ListValue::Deepcopy() const
{
ListValue* newList = new ListValue();
for (const Value* val : value)
newList->AddValue(val);
return newList;
}
void ListValue::AddValue(const Value* value)
{
this->value.emplace_back(value->Deepcopy());
return;
}
const std::vector<Value*>& ListValue::GetValue() const
{
return value;
}
std::string ListValue::GetAsOsString() const
{
std::stringstream ss;
ss << "ListValue: [";
for (const Value* val : value)
{
ss << *val;
if (val != value.back())
ss << ", ";
}
ss << "]";
return ss.str();
}
ListValue::operator std::vector<Value*>() const
{
return value;
}