ImagingTools Core SDK
CSdlField.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QString>
7
8//Acf includes
9#include <iser/ISerializable.h>
10
11
12
13namespace imtsdl
14{
15
16class CSdlField;
17typedef QList<CSdlField> SdlFieldList;
18
19
20class CSdlField: public iser::ISerializable
21{
22
23public:
24 static bool SerializeSdlFieldList(
25 iser::IArchive& archive,
26 QList<CSdlField>& container,
27 const QByteArray& containerTagName,
28 const QByteArray& elementTagName);
29
30public:
31 CSdlField();
32
33 bool IsRequired() const;
34 void SetIsRequired(bool isRequired);
35
36 bool IsArray() const;
37 void SetIsArray(bool isArray);
38
39 bool IsNonEmpty() const;
40 void SetIsNonEmpty(bool isNonEmpty);
41
42 QString GetType() const;
43 void SetType(const QString& type);
44
45 QString GetId() const;
46 void SetId(const QString& id);
47
48 // operators
49 bool operator==(const CSdlField& other) const;
50 bool operator!=(const CSdlField& other) const {return !(operator==(other));}
51
52 // reimplemented(iser::ISerializable)
53 virtual bool Serialize(iser::IArchive& archive) override;
54
55private:
59 bool m_isRequired;
63 bool m_isArray;
67 bool m_isNonEmpty;
71 QString m_type;
75 QString m_id;
76
77};
78
79
80} // namespace imtsdl