Accelerated Computation Engine
ace_metadatamodel_node.h
1 #ifndef ACE_METADATAMODEL_NODE_H
2 #define ACE_METADATAMODEL_NODE_H
3 #include <memory>
4 #include <QList>
5 #include <QMap>
6 #include <QVariant>
7 #include "ace_metadatamodel.h"
8 #include "emetadata.h"
9 //
10 
11 
12 
13 namespace Ace
14 {
24  class MetadataModel::Node : public QObject
25  {
26  Q_OBJECT
27  public:
28  explicit Node(EMetadata::Type type = EMetadata::Null, QObject* parent = nullptr);
29  explicit Node(const EMetadata& meta, QObject* parent = nullptr);
30  Node(const Node& object);
31  bool isBytes() const;
32  bool isEditable() const;
33  bool isContainer() const;
34  bool isArray() const;
35  bool isObject() const;
36  int size() const;
37  MetadataModel::Node* parent() const;
38  QString key() const;
39  bool setKey(const QString& newKey);
40  QString type() const;
41  QByteArray bytes() const;
42  EMetadata meta() const;
43  QVariant value() const;
44  bool setValue(const QVariant& value);
45  QList<MetadataModel::Node*>::const_iterator arrayBegin() const;
46  QList<MetadataModel::Node*>::const_iterator arrayEnd() const;
47  QMap<QString,MetadataModel::Node*>::const_iterator objectBegin() const;
48  QMap<QString,MetadataModel::Node*>::const_iterator objectEnd() const;
49  MetadataModel::Node* get(int index) const;
50  int indexOf(const Node* pointer) const;
51  bool contains(const QString& key) const;
52  int getFutureIndex(const QString& key) const;
53  std::unique_ptr<MetadataModel::Node> copy(int index);
54  std::unique_ptr<MetadataModel::Node> cut(int index);
55  void insertArray(int index, std::unique_ptr<Node>&& node);
56  void insertObject(const QString& key, std::unique_ptr<Node>&& node);
57  void remove(int index);
58  private:
64  QList<Node*> _array;
70  QMap<QString,Node*> _map;
76  EMetadata _meta;
77  };
78 }
79 
80 
81 
82 #endif
bool setValue(const QVariant &value)
Definition: ace_metadatamodel_node.cpp:456
MetadataModel::Node * parent() const
Definition: ace_metadatamodel_node.cpp:224
QString key() const
Definition: ace_metadatamodel_node.cpp:242
QList< MetadataModel::Node * >::const_iterator arrayBegin() const
Definition: ace_metadatamodel_node.cpp:492
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const override final
Definition: ace_metadatamodel.cpp:120
QMap< QString, MetadataModel::Node * >::const_iterator objectEnd() const
Definition: ace_metadatamodel_node.cpp:546
Definition: ace.h:6
bool setKey(const QString &newKey)
Definition: ace_metadatamodel_node.cpp:303
bool isObject() const
Definition: ace_metadatamodel_node.cpp:171
int getFutureIndex(const QString &key) const
Definition: ace_metadatamodel_node.cpp:685
bool isBytes() const
Definition: ace_metadatamodel_node.cpp:103
Definition: ace_metadatamodel_node.h:24
bool isContainer() const
Definition: ace_metadatamodel_node.cpp:137
void insertObject(const QString &key, std::unique_ptr< Node > &&node)
Definition: ace_metadatamodel_node.cpp:831
void insertArray(int index, std::unique_ptr< Node > &&node)
Definition: ace_metadatamodel_node.cpp:798
QMap< QString, MetadataModel::Node * >::const_iterator objectBegin() const
Definition: ace_metadatamodel_node.cpp:528
Definition: emetadata.h:22
bool contains(const QString &key) const
Definition: ace_metadatamodel_node.cpp:664
QList< MetadataModel::Node * >::const_iterator arrayEnd() const
Definition: ace_metadatamodel_node.cpp:510
std::unique_ptr< MetadataModel::Node > copy(int index)
Definition: ace_metadatamodel_node.cpp:705
Definition: emetadata.h:38
Type
Definition: emetadata.h:33
std::unique_ptr< MetadataModel::Node > cut(int index)
Definition: ace_metadatamodel_node.cpp:747
int indexOf(const Node *pointer) const
Definition: ace_metadatamodel_node.cpp:608
int size() const
Definition: ace_metadatamodel_node.cpp:189
bool isArray() const
Definition: ace_metadatamodel_node.cpp:154
EMetadata meta() const
Definition: ace_metadatamodel_node.cpp:383
QString type() const
Definition: ace_metadatamodel_node.cpp:338
QVariant value() const
Definition: ace_metadatamodel_node.cpp:404
Node(EMetadata::Type type=EMetadata::Null, QObject *parent=nullptr)
Definition: ace_metadatamodel_node.cpp:23
bool isEditable() const
Definition: ace_metadatamodel_node.cpp:120
QByteArray bytes() const
Definition: ace_metadatamodel_node.cpp:356