/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright 2013 - 2020, nymea GmbH * Contact: contact@nymea.io * * This file is part of nymea. * This project including source code and documentation is protected by * copyright law, and remains the property of nymea GmbH. All rights, including * reproduction, publication, editing and translation, are reserved. The use of * this project is subject to the terms of a license agreement to be concluded * with nymea GmbH in accordance with the terms of use of nymea GmbH, available * under https://nymea.io/license * * GNU General Public License Usage * Alternatively, this project may be redistributed and/or modified under the * terms of the GNU General Public License as published by the Free Software * Foundation, GNU version 3. This project is distributed in the hope that it * will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with * this project. If not, see . * * For any further details and any questions please contact us under * contact@nymea.io or see our FAQ/Licensing Information on * https://nymea.io/license/faq * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include "thingclass.h" #include ThingClass::ThingClass(QObject *parent) : QObject(parent) { } QUuid ThingClass::id() const { return m_id; } void ThingClass::setId(const QUuid &id) { m_id = id; } QUuid ThingClass::vendorId() const { return m_vendorId; } void ThingClass::setVendorId(const QUuid &vendorId) { m_vendorId = vendorId; } QUuid ThingClass::pluginId() const { return m_pluginId; } void ThingClass::setPluginId(const QUuid &pluginId) { m_pluginId = pluginId; } QString ThingClass::name() const { return m_name; } void ThingClass::setName(const QString &name) { m_name = name; } QString ThingClass::displayName() const { return m_displayName; } void ThingClass::setDisplayName(const QString &displayName) { m_displayName = displayName; } QStringList ThingClass::createMethods() const { return m_createMethods; } void ThingClass::setCreateMethods(const QStringList &createMethods) { m_createMethods = createMethods; } ThingClass::DiscoveryType ThingClass::discoveryType() const { return m_discoveryType; } void ThingClass::setDiscoveryType(ThingClass::DiscoveryType discoveryType) { m_discoveryType = discoveryType; } ThingClass::SetupMethod ThingClass::setupMethod() const { return m_setupMethod; } void ThingClass::setSetupMethod(ThingClass::SetupMethod setupMethod) { m_setupMethod = setupMethod; } QStringList ThingClass::interfaces() const { return m_interfaces; } void ThingClass::setInterfaces(const QStringList &interfaces) { m_interfaces = interfaces; } QStringList ThingClass::providedInterfaces() const { return m_providedInterfaces; } void ThingClass::setProvidedInterfaces(const QStringList &providedInterfaces) { m_providedInterfaces = providedInterfaces; } QString ThingClass::baseInterface() const { foreach (const QString &interface, m_interfaces) { if (interface == "gateway") { return "gateway"; } if (interface == "shutter") { return "shutter"; } if (interface == "blind") { return "blind"; } if (interface == "garagedoor") { return "garagedoor"; } if (interface == "inputtrigger") { return "inputtrigger"; } if (interface == "awning") { return "awning"; } if (interface == "outputtrigger") { return "outputtrigger"; } if (interface == "light") { return "light"; } if (interface == "sensor") { return "sensor"; } if (interface == "weather") { return "weather"; } if (interface == "media") { return "media"; } if (interface == "button" || interface == "powerswitch") { return "button"; } if (interface == "notifications") { return "notifications"; } if (interface == "powersocket") { return "powersocket"; } if (interface == "smartmeter") { return "smartmeter"; } if (interface == "heating") { return "heating"; } if (interface == "evcharger") { return "evcharger"; } if (interface == "irrigation") { return "irrigation"; } if (interface == "barcodescanner") { return "barcodescanner"; } if (interface == "cleaningrobot") { return "cleaningrobot"; } if (interface == "account") { return "account"; } if (interface == "thermostat") { return "thermostat"; } if (interface == "electricvehicle") { return "electricvehicle"; } if (interface == "ventilation") { return "ventilation"; } if (interface == "fingerprintreader") { return "fingerprintreader"; } } return "uncategorized"; } bool ThingClass::browsable() const { return m_browsable; } void ThingClass::setBrowsable(bool browsable) { m_browsable = browsable; } ParamTypes *ThingClass::paramTypes() const { return m_paramTypes; } void ThingClass::setParamTypes(ParamTypes *paramTypes) { if (m_paramTypes) { m_paramTypes->deleteLater(); } m_paramTypes = paramTypes; emit paramTypesChanged(); } ParamTypes *ThingClass::settingsTypes() const { return m_settingsTypes; } void ThingClass::setSettingsTypes(ParamTypes *settingsTypes) { if (m_settingsTypes) { m_settingsTypes->deleteLater(); } m_settingsTypes = settingsTypes; emit settingsTypesChanged(); } ParamTypes *ThingClass::discoveryParamTypes() const { return m_discoveryParamTypes; } void ThingClass::setDiscoveryParamTypes(ParamTypes *paramTypes) { if (m_discoveryParamTypes) { m_discoveryParamTypes->deleteLater(); } m_discoveryParamTypes = paramTypes; emit discoveryParamTypesChanged(); } StateTypes *ThingClass::stateTypes() const { return m_stateTypes; } void ThingClass::setStateTypes(StateTypes *stateTypes) { if (m_stateTypes) { m_stateTypes->deleteLater(); } m_stateTypes = stateTypes; emit stateTypesChanged(); } EventTypes *ThingClass::eventTypes() const { return m_eventTypes; } void ThingClass::setEventTypes(EventTypes *eventTypes) { if (m_eventTypes) { m_eventTypes->deleteLater(); } m_eventTypes = eventTypes; emit eventTypesChanged(); } ActionTypes *ThingClass::actionTypes() const { return m_actionTypes; } void ThingClass::setActionTypes(ActionTypes *actionTypes) { if (m_actionTypes) { m_actionTypes->deleteLater(); } m_actionTypes = actionTypes; emit actionTypesChanged(); } ActionTypes *ThingClass::browserItemActionTypes() const { return m_browserItemActionTypes; } void ThingClass::setBrowserItemActionTypes(ActionTypes *browserActionTypes) { if (m_browserItemActionTypes) { m_browserItemActionTypes->deleteLater(); } m_browserItemActionTypes = browserActionTypes; emit browserItemActionTypesChanged(); } bool ThingClass::hasActionType(const QString &actionTypeId) { foreach (ActionType *actionType, m_actionTypes->actionTypes()) { if (actionType->id() == actionTypeId) { return true; } } return false; }