instruction.h
Go to the documentation of this file.
1 #ifndef DNAI_MODELS_GUI_INSTRUCTION_H
2 #define DNAI_MODELS_GUI_INSTRUCTION_H
3 
8 
9 namespace dnai
10 {
11  namespace models
12  {
13  namespace gui
14  {
15  class Instruction : public QObject, public interfaces::IModelData<data::Instruction>, public interfaces::ASerializable<Instruction>
16  {
17  Q_OBJECT
18 
19  Q_PROPERTY(qint32 uid READ Uid WRITE setUid)
20  Q_PROPERTY(QString guid READ guid)
21  Q_PROPERTY(QList<QString> linked READ linked WRITE setLinkedEntities)
22 
23  public:
24  explicit Instruction(QObject *parent = nullptr);
25  //Implementation of ISerializable
26  virtual void serialize(QJsonObject& obj) const override;
27  protected:
28  virtual void _deserialize(const QJsonObject& obj) override;
29  //Implementation of IModelData
30  public:
31  const data::Instruction& data() const override;
32  bool setData(const data::Instruction& data) override;
33 
34  //Implementation of IInstruction
35  Q_INVOKABLE const QList<models::gui::Input*> &inputs() const;
36  bool setInputs(const QList<models::gui::Input*>& inputs);
37  Q_INVOKABLE models::gui::Input *getInput(QString const &name) const;
38  bool hasInput(QString const &name) const;
39  Q_INVOKABLE QString getInputValue(QString const &name) const;
40  Q_INVOKABLE QString getInputType(QString const &name) const;
41 
42  const QList<models::gui::Output*> &outputs() const;
43  bool hasOutput(QString const &name) const;
44  bool setOutputs(const QList<models::gui::Output*>& outputs);
45  Q_INVOKABLE models::gui::Output *getOutput(QString const &name) const;
46  Q_INVOKABLE QString getOutputType(QString const &name) const;
47 
48  models::gui::Flow* flowIn() const;
49  bool setFlowIn(models::gui::Flow* flow);
50 
51  const QList<models::gui::Flow*> &flowOut() const;
52  bool setFlowOut(const QList<models::gui::Flow*> &flow);
53 
54  qint32 instruction_id() const;
55  bool setInstructionId(qint32 id);
56 
57  quint32 Uid() const;
58  bool setUid(quint32 id);
59 
60  QList<QString> const &linked() const;
61  bool setLinkedEntities(QList<QString> const &value);
62 
63  const QUuid &guiUuid() const;
64  QString guid() const;
65  bool setGuiUuid(const QUuid &value);
66 
67  const QString &nodeMenuPath() const;
68  bool setNodeMenuPath(QString const &value);
69 
70  qint32 x() const;
71  Q_INVOKABLE bool setX(qint32 x);
72 
73  qint32 y() const;
74  Q_INVOKABLE bool setY(qint32 y);
75 
76  private:
78  };
79  }
80  }
81 }
82 
83 #endif //DNAI_MODELS_GUI_INSTRUCTION_H
bool setNodeMenuPath(QString const &value)
Definition: instruction.cpp:288
Allow inherited class to serialize and deserialize itself.
Definition: iserializable.h:33
qint32 instruction_id() const
Definition: instruction.cpp:226
Q_INVOKABLE models::gui::Input * getInput(QString const &name) const
Definition: instruction.cpp:104
bool setLinkedEntities(QList< QString > const &value)
Definition: instruction.cpp:257
Definition: input.h:17
bool setFlowIn(models::gui::Flow *flow)
Definition: instruction.cpp:179
Definition: instruction.h:15
Q_INVOKABLE bool setX(qint32 x)
Definition: instruction.cpp:205
bool setOutputs(const QList< models::gui::Output * > &outputs)
Definition: instruction.cpp:147
Q_INVOKABLE QString getInputType(QString const &name) const
Definition: instruction.cpp:124
qint32 x() const
Definition: instruction.cpp:200
bool setData(const data::Instruction &data) override
Definition: instruction.cpp:73
const data::Instruction & data() const override
Return the data component.
Definition: instruction.cpp:68
Q_INVOKABLE const QList< models::gui::Input * > & inputs() const
Definition: instruction.cpp:81
bool setInstructionId(qint32 id)
Definition: instruction.cpp:231
const QUuid & guiUuid() const
Definition: instruction.cpp:265
bool setInputs(const QList< models::gui::Input * > &inputs)
Definition: instruction.cpp:86
virtual void _deserialize(const QJsonObject &obj) override
Implement this function in order to use deserialize(const QJsonObject &obj)
Definition: instruction.cpp:44
Definition: output.h:16
qint32 y() const
Definition: instruction.cpp:213
Definition: imodeldata.h:9
bool setUid(quint32 id)
Definition: instruction.cpp:244
Q_INVOKABLE models::gui::Output * getOutput(QString const &name) const
Definition: instruction.cpp:155
Q_INVOKABLE bool setY(qint32 y)
Definition: instruction.cpp:218
qint32 uid
Definition: instruction.h:19
bool setGuiUuid(const QUuid &value)
Definition: instruction.cpp:275
const QList< models::gui::Flow * > & flowOut() const
Definition: instruction.cpp:187
Definition: flow.h:15
models::gui::Flow * flowIn() const
Definition: instruction.cpp:174
bool setFlowOut(const QList< models::gui::Flow * > &flow)
Definition: instruction.cpp:192
Q_INVOKABLE QString getInputValue(QString const &name) const
Definition: instruction.cpp:116
data::Instruction m_data
Definition: instruction.h:77
quint32 Uid() const
Definition: instruction.cpp:239
bool hasOutput(QString const &name) const
Definition: instruction.cpp:137
const QList< models::gui::Output * > & outputs() const
Definition: instruction.cpp:132
Definition: api.h:13
bool hasInput(QString const &name) const
Definition: instruction.cpp:94
virtual void serialize(QJsonObject &obj) const override
Implement this function to serialize into QJsonObject.
Definition: instruction.cpp:18
const QString & nodeMenuPath() const
Definition: instruction.cpp:283
Q_INVOKABLE QString getOutputType(QString const &name) const
Definition: instruction.cpp:166
QList< QString > const & linked() const