6#include<QtCore/QJsonDocument>
7#include<QtCore/QJsonObject>
10#include <imod/TModelWrap.h>
11#include <idoc/CStandardDocumentMetaInfo.h>
14#include <imtdb/IJsonBasedMetaInfoDelegate.h>
21template<
class MetaInfoRepresentation>
25 virtual bool ToJsonRepresentation(
const idoc::IDocumentMetaInfo& metaInfo, QByteArray& json,
const QByteArray& typeId)
const override;
26 virtual bool FromJsonRepresentation(
const QByteArray& json, idoc::IDocumentMetaInfo& metaInfo,
const QByteArray& typeId)
const override;
29 virtual bool FillRepresentation(MetaInfoRepresentation& metaInfoRepresentation,
const idoc::IDocumentMetaInfo& metaInfo,
const QByteArray& typeId)
const = 0;
30 virtual bool FillMetaInfo(idoc::IDocumentMetaInfo& metaInfo,
const MetaInfoRepresentation& metaInfoRepresentation,
const QByteArray& typeId)
const = 0;
34template<
class MetaInfoRepresentation>
35bool TSdlBasedMetaInfoDelegate<MetaInfoRepresentation>::ToJsonRepresentation(
const idoc::IDocumentMetaInfo& metaInfo, QByteArray& json,
const QByteArray& typeId)
const
37 MetaInfoRepresentation representation;
38 if (FillRepresentation(representation, metaInfo, typeId)){
41 if (representation.WriteToJsonObject(
object)){
42 QJsonDocument document(
object);
43 json = document.toJson(QJsonDocument::Compact);
45 return !json.isEmpty();
53template<
class MetaInfoRepresentation>
54bool TSdlBasedMetaInfoDelegate<MetaInfoRepresentation>::FromJsonRepresentation(
const QByteArray& json, idoc::IDocumentMetaInfo& metaInfo,
const QByteArray& typeId)
const
56 QJsonDocument document;
57 QJsonParseError error;
58 document = document.fromJson(json, &error);
59 if (document.isObject() && error.error == QJsonParseError::NoError){
60 QJsonObject
object = document.object();
61 MetaInfoRepresentation representation;
62 if (representation.ReadFromJsonObject(
object)){
63 if (FillMetaInfo(metaInfo, representation, typeId)){