objecttype.h
Go to the documentation of this file.
1 #ifndef DNAI_MODELS_DECLARABLE_OBJECTTYPE_H
2 #define DNAI_MODELS_DECLARABLE_OBJECTTYPE_H
3 
5 #include "entity.h"
6 
7 namespace dnai
8 {
9  namespace models
10  {
11  namespace gui
12  {
13  namespace declarable
14  {
15  class ObjectType : public QObject, public Entity<data::ObjectType, ObjectType>
16  {
17  Q_OBJECT
18  Q_PROPERTY(QStringList attributes READ attributes NOTIFY attributesChanged)
19  Q_PROPERTY(QStringList functions READ functions NOTIFY functionsChanged)
20 
21  public:
22  explicit ObjectType() = default;
23 
24  QStringList attributes();
25  void addAttribute(QString const &name, QUuid const &type);
26  void removeAttribute(QString const &name);
27  void renameAttribute(QString const &name, QString const &newName);
28  Q_INVOKABLE QUuid getAttribute(QString name) const;
29 
30  public:
31  QStringList functions() const;
32  void addFunction(QUuid const &funcUid);
33  void removeFunction(QUuid const &funcUid);
34  bool hasFunction(QUuid const &funcUid);
35  Q_INVOKABLE bool isFunctionMember(QString name) const;
36 
37  signals:
38  void attributesChanged(QStringList attrs);
39  void functionsChanged(QStringList functions);
40 
41  public:
42  //Implementation of ISerializable
43  void serialize(QJsonObject& obj) const override;
44  protected:
45  void _deserialize(const QJsonObject& obj) override;
46  };
47  }
48  }
49  }
50 }
51 
52 #endif //DNAI_MODELS_DECLARABLE_OBJECTTYPE_H
void removeAttribute(QString const &name)
Definition: objecttype.cpp:31
bool hasFunction(QUuid const &funcUid)
Definition: objecttype.cpp:81
void removeFunction(QUuid const &funcUid)
Definition: objecttype.cpp:73
void serialize(QJsonObject &obj) const override
Implement this function to serialize into QJsonObject.
Definition: objecttype.cpp:102
void addFunction(QUuid const &funcUid)
Definition: objecttype.cpp:65
Q_INVOKABLE QUuid getAttribute(QString name) const
Definition: objecttype.cpp:46
void _deserialize(const QJsonObject &obj) override
Implement this function in order to use deserialize(const QJsonObject &obj)
Definition: objecttype.cpp:130
void functionsChanged(QStringList functions)
Definition: moc_objecttype.cpp:203
void renameAttribute(QString const &name, QString const &newName)
Definition: objecttype.cpp:39
Definition: api.h:13
Q_INVOKABLE bool isFunctionMember(QString name) const
Definition: objecttype.cpp:86
void attributesChanged(QStringList attrs)
Definition: moc_objecttype.cpp:196
void addAttribute(QString const &name, QUuid const &type)
Definition: objecttype.cpp:22