ImagingTools Core SDK
CPath.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/QJsonObject>
7#include <QtCore/QJsonArray>
8#include <QtCore/QJsonValue>
9#include <QtCore/QString>
10#include <QtCore/QList>
11
12// ImtCore includes
13#include <imtoas/CParameter.h>
14#include <imtoas/COperation.h>
15#include <imtoas/CServer.h>
16
17
18namespace imtoas
19{
20
21
22class CPath
23{
24public:
25 [[nodiscard]]QString GetId() const;
26 void SetId(const QString& id);
27
28 [[nodiscard]] QString GetReference() const;
29 void SetReference(const QString& reference);
30
31 [[nodiscard]] QString GetSummary() const;
32 void SetSummary(const QString& summary);
33
34 [[nodiscard]] QString GetDescription() const;
35 void SetDescription(const QString& description);
36
37 [[nodiscard]] COperation GetGet() const;
38 void SetGet(const COperation& get);
39
40 [[nodiscard]] COperation GetPut() const;
41 void SetPut(const COperation& put);
42
43 [[nodiscard]] COperation GetPost() const;
44 void SetPost(const COperation& post);
45
46 [[nodiscard]] COperation GetDelete() const;
47 void SetDelete(const COperation& deleted);
48
49 [[nodiscard]] COperation GetOptions() const;
50 void SetOptions(const COperation& options);
51
52 [[nodiscard]] COperation GetHead() const;
53 void SetHead(const COperation& head);
54
55 [[nodiscard]] COperation GetPatch() const;
56 void SetPatch(const COperation& patch);
57
58 [[nodiscard]] COperation GetTrace() const;
59 void SetTrace(const COperation& trace);
60
61 [[nodiscard]] QList<CServer> GetServers() const;
62 void SetServers(const QList<CServer>& servers);
63
64 [[nodiscard]] QList<CParameter> GetParameters() const;
65 void SetParameters(const QList<CParameter>& parameters);
66
67 [[nodiscard]] static bool ReadFromJsonObject(CPath& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
68
69 bool operator==(const CPath& other) const;
70 bool operator!=(const CPath& other) const { return !(operator==(other)); }
71
72
73private:
74 QString m_id;
75 QString m_reference;
76 QString m_summary;
77 QString m_description;
78 COperation m_get;
79 COperation m_put;
80 COperation m_post;
81 COperation m_delete;
82 COperation m_options;
83 COperation m_head;
84 COperation m_patch;
85 COperation m_trace;
86 QList<CServer> m_servers;
87 QList<CParameter> m_parameters;
88};
89
90
91} // namespace imtoas
92
93
94Q_DECLARE_METATYPE(imtoas::CPath);
95
96