/** * Map description object * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2016-03-03 */ #include "object_map_description.h" #include "main_handler.h" namespace AssetManagement { ObjectMapDescription::ObjectMapDescription(MainHandler *mainHandler) : m_mainHandler(mainHandler) , m_order(-1) , m_logger(getLogger("ObjectMapDescription")) { } bool ObjectMapDescription::isValid() const { return m_data.id() > 0; } Core::FunctionReplyObject ObjectMapDescription::createObject(const MapDescription &data, int order) { m_data = data; if (m_data.id() <= 0) { m_data.isUsed(false); Database::AsmMapDescription dbData(toDbData(data)); dbData.objOrder = order; if (!m_mainHandler->db()->insert(dbData)) return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmMapDescription-data into database")); m_data.id(dbData.id); DEBUG_LOG(m_logger) << "New MapDescription Id: " << m_data.id(); } else if (order != m_order && m_order >= 0) { Database::AsmMapDescription dbData(toDbData(data)); dbData.objOrder = m_order; if (!m_mainHandler->db()->update(dbData)) return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmMapDescription-data into database")); } m_order = order; return Core::FunctionReplyObject(m_data.id()); } Core::FunctionReplyObject ObjectMapDescription::updateObject(const MapDescription &data) { if (!isValid()) return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); Database::AsmMapDescription dbData(toDbData(data)); dbData.objOrder = m_order; if (!m_mainHandler->db()->update(dbData)) return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmMapDescription-data into database")); m_data = data; DEBUG_LOG(m_logger) << "Data changed for MapDescription Id: " << m_data.id(); return Core::FunctionReplyObject(m_data.id()); } Core::FunctionReplyObject ObjectMapDescription::removeObject() { if (!m_mainHandler->db()->removeAsmMapDescription(m_data.id())) return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "MapDescription with id %1 can not be removed")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id()); } // ------------------------------------------------------------------------------------------------------- // convert methods // ------------------------------------------------------------------------------------------------------- // AssetManagement::MapDescription => Database::AsmMapDescription Database::AsmMapDescription ObjectMapDescription::toDbData(const MapDescription &ddsData) { Database::AsmMapDescription dbData; dbData.id = ddsData.id(); dbData.name = QString::fromStdString(ddsData.name()); dbData.description = QString::fromStdString(ddsData.description()); dbData.trainingAreaId = ddsData.trainingAreaId(); dbData.mapTypeId = ddsData.mapTypeId(); dbData.mapDescriptionTypeId = ddsData.mapDescriptionTypeId(); dbData.url = QString::fromStdString(ddsData.url()); dbData.minScale = ddsData.minScale(); dbData.maxScale = ddsData.maxScale(); return dbData; } // ------------------------------------------------------------------------------------------------------- // Database::AsmMapDescription => AssetManagement::MapDescription MapDescription ObjectMapDescription::toDdsData(const Database::AsmMapDescription &dbData) { MapDescription ddsData; ddsData.id(dbData.id); ddsData.name(dbData.name.toStdString()); ddsData.description(dbData.description.toStdString()); ddsData.trainingAreaId(dbData.trainingAreaId); ddsData.mapTypeId(dbData.mapTypeId); ddsData.mapDescriptionTypeId(dbData.mapDescriptionTypeId); ddsData.url(dbData.url.toStdString()); ddsData.minScale(dbData.minScale); ddsData.maxScale(dbData.maxScale); // init data not in db ddsData.isDeleted(false); ddsData.isUsed(false); return ddsData; } // ------------------------------------------------------------------------------------------------------- } // Namespace AssetManagement