6#include <QtCore/QByteArray>
63template<
class _CreateRepresentation,
class _UpdateRequest,
class _Base, const
char* _OID>
64class TCreateUpdateCollectionWrap:
public _Base
67 typedef _Base BaseClass;
71 [[nodiscard]]
virtual _CreateRepresentation GetRepresentationFromRequest(
const _UpdateRequest& request)
const = 0;
72 [[nodiscard]]
virtual bool SetObjectDataFromRepresentation(istd::IChangeable&
object,
const _CreateRepresentation& representation, QString& errorMessage)
const = 0;
75 istd::IChangeableUniquePtr CreateObjectFromRepresentation(
76 const _CreateRepresentation& representation,
77 QByteArray& newObjectId,
78 QString& errorMessage)
const override;
80 bool UpdateObjectFromRepresentationRequest(
81 const ::imtgql::CGqlRequest& rawGqlRequest,
82 const _UpdateRequest& updateRequest,
83 istd::IChangeable&
object,
84 QString& errorMessage)
const override;
91template<
class _CreateRepresentation,
class _UpdateRequest,
class _Base, const
char* _OID>
92istd::IChangeableUniquePtr TCreateUpdateCollectionWrap<_CreateRepresentation, _UpdateRequest, _Base, _OID>::CreateObjectFromRepresentation(
93 const _CreateRepresentation& representation,
95 QString& errorMessage)
const
97 std::unique_ptr<istd::IChangeable> objetPtr(_Base::CreateObject(QByteArray(_OID)));
99 const bool isUpdated = SetObjectDataFromRepresentation(*objetPtr, representation, errorMessage);
101 return objetPtr.release();
109template<
class _CreateRepresentation,
class _UpdateRequest,
class _Base, const
char* _OID>
110bool TCreateUpdateCollectionWrap<_CreateRepresentation, _UpdateRequest, _Base, _OID>::UpdateObjectFromRepresentationRequest(
111 const imtgql::CGqlRequest& ,
112 const _UpdateRequest& updateRequest,
113 istd::IChangeable&
object,
114 QString& errorMessage)
const
116 _CreateRepresentation repreesentation = GetRepresentationFromRequest(updateRequest);
118 return SetObjectDataFromRepresentation(
object, repreesentation, errorMessage);