#include "WimaJoinedArea.h"

const char* WimaJoinedArea::WimaJoinedAreaName = "WimaJoinedArea";

WimaJoinedArea::WimaJoinedArea(QObject *parent)
    : WimaArea (parent)
{

}

WimaJoinedArea::WimaJoinedArea(const WimaJoinedArea &other, QObject *parent)
    : WimaArea (parent)
{
    *this = other;
}

/*!
 * \overload operator=()
 *
 * Calls the inherited operator WimaArea::operator=().
 */
WimaJoinedArea &WimaJoinedArea::operator=(const WimaJoinedArea &other)
{
    WimaArea::operator=(other);

    return *this;
}


void WimaJoinedArea::saveToJson(QJsonObject &json)
{
    this->WimaArea::saveToJson(json);
    json[areaTypeName] = WimaJoinedAreaName;
}

bool WimaJoinedArea::loadFromJson(const QJsonObject &json, QString &errorString)
{
    if ( this->WimaArea::loadFromJson(json, errorString)) {
        bool retVal = true;
        // code for loading here
        return retVal;
    } else {
        qWarning() << errorString;
        return false;
    }
}

void WimaJoinedArea::init()
{
    this->setObjectName(WimaJoinedAreaName);
}

void print(const WimaJoinedArea &area)
{
    QString message;
    print(area, message);
    qWarning() << message;
}

void print(const WimaJoinedArea &area, QString &outputString)
{
    print(static_cast<const WimaArea&>(area), outputString);
}


/*!
  \class WimaJoinedArea
  \brief Joined area (derived from \c WimaArea) composed by the \c WimaMeasurementArea, the \c WimaCorridor, and the \c WimaServiceArea.
*/
