PenetrateBase/PenetrateBasic/validate_depict.h

82 lines
2.0 KiB
C++

#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();
// ͨ¹ý IDataObject ¼Ì³Ð
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;
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;
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();
// ͨ¹ý IDataArray ¼Ì³Ð
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;
};
}