#include "abstractpropertytype.h"
+const Zone::Type Zone::FrontRight = Zone::Type(Zone::Front | Zone::Right);
+const Zone::Type Zone::FrontLeft = Zone::Type(Zone::Front | Zone::Left);
+const Zone::Type Zone::MiddleRight = Zone::Type(Zone::Middle | Zone::Right);
+const Zone::Type Zone::MiddleLeft = Zone::Type(Zone::Middle | Zone::Left);
+const Zone::Type Zone::RearRight = Zone::Type(Zone::Rear | Zone::Right);
+const Zone::Type Zone::RearLeft = Zone::Type(Zone::Rear | Zone::Left);
-void ListPropertyType::append(AbstractPropertyType *property)
-{
- mList.push_back(property->copy());
-}
-
-
-ListPropertyType::ListPropertyType()
-{
-
-}
-
-ListPropertyType::ListPropertyType(int)
-{
-
-}
-ListPropertyType::ListPropertyType(ListPropertyType &other)
+const picojson::value AbstractPropertyType::toJson()
{
- std::list<AbstractPropertyType*> l = other.list();
- for(auto itr = l.begin(); itr != l.end(); itr++)
- {
- append(*itr);
- }
-}
-
+ picojson::object obj;
-ListPropertyType::~ListPropertyType()
-{
+ obj["name"] = picojson::value(name);
+ obj["alias"] = picojson::value(alias());
+ obj["source"] = picojson::value(sourceUuid);
+ obj["zone"] = picojson::value((double)zone);
+ obj["timestamp"] = picojson::value(timestamp);
+ obj["sequence"] = picojson::value((double)sequence);
+ obj["type"] = picojson::value(amb::BasicTypes::fromAbstractProperty(this));
+ return picojson::value(obj);
}
-
-uint ListPropertyType::count()
+void AbstractPropertyType::fromJson(const picojson::value &json)
{
- return mList.size();
-}
-
-
-AbstractPropertyType *ListPropertyType::copy()
-{
- return new ListPropertyType(*this);
-}
-
-
-std::string ListPropertyType::toString() const
-{
- std::string str = "[";
-
- for(auto itr = mList.begin(); itr != mList.end(); itr++)
- {
- if(str != "[")
- str += ",";
-
- AbstractPropertyType* t = *itr;
-
- str += t->toString();
- }
-
- str += "]";
-
- return str;
-}
-
-
-void ListPropertyType::fromString(std::string)
-{
- /// TODO: try to use VehicleProperty::getPropertyType... here
-}
-
-
-GVariant *ListPropertyType::toVariant()
-{
- GVariantBuilder params;
- g_variant_builder_init(¶ms,G_VARIANT_TYPE_ARRAY);
-
- for(auto itr = mList.begin(); itr != mList.end(); itr++)
- {
- AbstractPropertyType* t;
- g_variant_builder_add_value(¶ms, t->toVariant());
- }
-
- return g_variant_builder_end(¶ms);
-}
-
-
-void ListPropertyType::fromVariant(GVariant *v)
-{
-
+ name = json.get("name").to_str();
+ mAlias = json.get("alias").to_str();
+ sourceUuid = json.get("source").to_str();
+ zone = json.get("zone").get<double>();
+ timestamp = json.get("timestamp").get<double>();
+ sequence = json.get("sequence").get<double>();
}