2024-11-18 14:59:45 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QJsonObject>
|
|
|
|
|
#include <QJsonArray>
|
|
|
|
|
#include "data_types.h"
|
|
|
|
|
|
|
|
|
|
namespace depict {
|
|
|
|
|
class ValidateDocArray;
|
|
|
|
|
class ValidateDocObject : public datas::IDataObject {
|
|
|
|
|
friend class ValidateDocArray;
|
|
|
|
|
private:
|
|
|
|
|
QJsonObject _object_bind;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
ValidateDocObject(QJsonObject obj);
|
|
|
|
|
ValidateDocObject();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> IDataObject <20>̳<EFBFBD>
|
|
|
|
|
bool isEmpty() const override;
|
|
|
|
|
|
|
|
|
|
bool isArray() const override;
|
|
|
|
|
|
|
|
|
|
bool isObject() const override;
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<datas::IDataArray> newArray() const override;
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<datas::IDataObject> newObject() const override;
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<datas::IDataComplex> getChild(const QString& key) const override;
|
|
|
|
|
|
|
|
|
|
void setChild(const QString& key, std::shared_ptr<datas::IDataComplex> obj) override;
|
|
|
|
|
|
|
|
|
|
bool isValueField(const QString& key) const override;
|
|
|
|
|
|
|
|
|
|
bool getBool(const QString& key) const override;
|
|
|
|
|
|
|
|
|
|
double getDouble(const QString& key) const override;
|
|
|
|
|
|
|
|
|
|
int32_t getInt32(const QString& key) const override;
|
|
|
|
|
|
|
|
|
|
int64_t getInt64(const QString& key) const override;
|
|
|
|
|
|
2024-11-20 12:03:31 +00:00
|
|
|
|
uint64_t getUInt64(const QString &key) const override;
|
|
|
|
|
|
2024-11-18 14:59:45 +00:00
|
|
|
|
QString getString(const QString& key) const override;
|
|
|
|
|
|
|
|
|
|
void setBool(const QString& key, bool value) override;
|
|
|
|
|
|
|
|
|
|
void setDouble(const QString& key, double value) override;
|
|
|
|
|
|
|
|
|
|
void setInt32(const QString& key, int32_t value) override;
|
|
|
|
|
|
2024-11-20 12:03:31 +00:00
|
|
|
|
void setUInt64(const QString &key, uint64_t value) override;
|
|
|
|
|
|
2024-11-18 14:59:45 +00:00
|
|
|
|
void setInt64(const QString& key, int64_t value) override;
|
|
|
|
|
|
|
|
|
|
void setString(const QString& key, const QString& value) override;
|
|
|
|
|
|
|
|
|
|
QString toText() const override;
|
|
|
|
|
|
|
|
|
|
void loadFrom(const QString& text) override;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ValidateDocArray : public datas::IDataArray {
|
|
|
|
|
friend class ValidateDocObject;
|
|
|
|
|
private:
|
|
|
|
|
QJsonArray _array_bind;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
ValidateDocArray(QJsonArray array);
|
|
|
|
|
ValidateDocArray();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> IDataArray <20>̳<EFBFBD>
|
|
|
|
|
bool isEmpty() const override;
|
|
|
|
|
bool isArray() const override;
|
|
|
|
|
bool isObject() const override;
|
|
|
|
|
int32_t size() const override;
|
|
|
|
|
std::shared_ptr<IDataComplex> get(int index) const override;
|
|
|
|
|
void insert(int index, std::shared_ptr<IDataComplex> value) override;
|
|
|
|
|
void append(std::shared_ptr<IDataComplex> value) override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|