6#include <QtCore/QByteArray>
9#include <iser/IObject.h>
12#include <imtgql/CGqlEnum.h>
19class CGqlFieldFragment;
22class CGqlFieldObject:
virtual public iser::IObject
27 QByteArrayList GetFieldIds()
const;
28 CGqlFieldObject* CreateFieldObject(
const QByteArray& fieldId);
29 CGqlFieldFragment* CreateFragmentObject(
const QByteArray& typeId);
30 const CGqlFieldObject* GetFieldArgumentObjectPtr(
const QByteArray& fieldId)
const;
31 const CGqlFieldFragment* GetFragmentArgumentObjectPtr(
const QByteArray& fieldId)
const;
32 CGqlFieldObject* GetParentObject()
const;
33 void InsertField(
const QByteArray& fieldId);
34 void InsertField(
const QByteArray& fieldId,
const CGqlFieldObject&
object);
35 void InsertFragment(
const QByteArray& typeId,
const CGqlFieldFragment&
object);
36 bool IsObject(
const QByteArray& fieldId)
const;
37 bool IsFragment(
const QByteArray& fieldId)
const;
40 virtual bool Serialize(iser::IArchive &archive)
override;
43 virtual bool CopyFrom(
const IChangeable&
object, CompatibilityMode mode = CM_WITHOUT_REFS)
override;
44 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS)
const override;
45 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS)
override;
47 void RemoveField(
const QByteArray& fieldId);
50 QList<QByteArray> m_emptyFields;
51 QMap<QByteArray, std::shared_ptr<CGqlFieldObject>> m_objectFields;
52 QMap<QByteArray, std::shared_ptr<CGqlFieldFragment>> m_fragmentFields;
53 CGqlFieldObject* m_parentPtr;
60Q_DECLARE_METATYPE(
const imtgql::CGqlFieldObject*)