diff options
author | Jan Dalheimer <jan@dalheimer.de> | 2014-03-10 19:24:29 +0100 |
---|---|---|
committer | Jan Dalheimer <jan@dalheimer.de> | 2014-03-10 19:24:29 +0100 |
commit | fcc5bc2ce0a1c8c3f9df9230710dd60363eb5cdb (patch) | |
tree | 851d8f8b6e6734e26fd2e4dc7b7477630329ff01 /logic/MMCJson.h | |
parent | 73fc9c79cff979e9023df0b1a77848c67b590681 (diff) | |
parent | d11f10ea1ed54336254838ff068258d2d42e0774 (diff) | |
download | PrismLauncher-fcc5bc2ce0a1c8c3f9df9230710dd60363eb5cdb.tar.gz PrismLauncher-fcc5bc2ce0a1c8c3f9df9230710dd60363eb5cdb.tar.bz2 PrismLauncher-fcc5bc2ce0a1c8c3f9df9230710dd60363eb5cdb.zip |
Merge branch 'develop' into feature_badges
Conflicts:
logic/OneSixInstance.cpp
Diffstat (limited to 'logic/MMCJson.h')
-rw-r--r-- | logic/MMCJson.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/logic/MMCJson.h b/logic/MMCJson.h new file mode 100644 index 00000000..71ded435 --- /dev/null +++ b/logic/MMCJson.h @@ -0,0 +1,46 @@ +/** + * Some de-bullshitting for Qt JSON failures. + * + * Simple exception-throwing + */ + +#pragma once +#include <QJsonValue> +#include <QJsonObject> +#include <QJsonDocument> +#include <QJsonArray> +#include "MMCError.h" + +class JSONValidationError : public MMCError +{ +public: + JSONValidationError(QString cause) : MMCError(cause) {}; + virtual ~JSONValidationError() noexcept {} +}; + +namespace MMCJson +{ +/// make sure the value exists. throw otherwise. +QJsonValue ensureExists(QJsonValue val, const QString what = "value"); + +/// make sure the value is converted into an object. throw otherwise. +QJsonObject ensureObject(const QJsonValue val, const QString what = "value"); + +/// make sure the document is converted into an object. throw otherwise. +QJsonObject ensureObject(const QJsonDocument val, const QString what = "value"); + +/// make sure the value is converted into an array. throw otherwise. +QJsonArray ensureArray(const QJsonValue val, QString what = "value"); + +/// make sure the value is converted into a string. throw otherwise. +QString ensureString(const QJsonValue val, QString what = "value"); + +/// make sure the value is converted into a boolean. throw otherwise. +bool ensureBoolean(const QJsonValue val, QString what = "value"); + +/// make sure the value is converted into an integer. throw otherwise. +int ensureInteger(const QJsonValue val, QString what = "value"); + +/// make sure the value is converted into a double precision floating number. throw otherwise. +double ensureDouble(const QJsonValue val, QString what = "value"); +} |