umbrello  2.32.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
petalnode.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2006-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef PETALNODE__H
12 #define PETALNODE__H
13 
14 #include <QList>
15 #include <QPair>
16 #include <QString>
17 #include <QStringList>
18 
39 class PetalNode
40 {
41 public:
48  struct StringOrNode {
49  QString string;
51  StringOrNode() { node = 0; }
52  virtual ~StringOrNode() { }
53  bool isEmpty() { return (string.isEmpty() && node == 0); }
54  };
55  typedef QPair<QString, StringOrNode> NameValue;
56  typedef QList<NameValue> NameValueList;
57 
59 
60  explicit PetalNode(NodeType nt);
61  virtual ~PetalNode();
62 
63  // getters
64  NodeType type() const;
65  QStringList initialArgs() const; // name and other initial args
66  QString name() const; // convenience function: equal to initialArgs().first()
67  QString documentation() const;
68  NameValueList attributes() const;
69 
70  // setters
71  //void setType(NodeType nt); see constructor
72  void setInitialArgs(const QStringList& args);
74 
75  // utilities
76  StringOrNode findAttribute(const QString& name) const;
77 
78 private:
80  QStringList m_initialArgs;
82 
83  friend QDebug operator<<(QDebug out, const PetalNode &p);
84 };
85 
86 QDebug operator<<(QDebug out, const PetalNode::StringOrNode &p);
87 QDebug operator<<(QDebug out, const PetalNode::NameValue &p);
88 QDebug operator<<(QDebug out, const PetalNode::NameValueList &p);
89 QDebug operator<<(QDebug out, const PetalNode &p);
90 #endif
91 
Definition: petalnode.h:40
friend QDebug operator<<(QDebug out, const PetalNode &p)
Definition: petalnode.cpp:153
QList< NameValue > NameValueList
Definition: petalnode.h:56
void setInitialArgs(const QStringList &args)
Definition: petalnode.cpp:129
QStringList initialArgs() const
Definition: petalnode.cpp:88
PetalNode(NodeType nt)
Definition: petalnode.cpp:74
NameValueList m_attributes
Definition: petalnode.h:81
QString documentation() const
Definition: petalnode.cpp:105
QString name() const
Definition: petalnode.cpp:93
QStringList m_initialArgs
Definition: petalnode.h:80
QPair< QString, StringOrNode > NameValue
Definition: petalnode.h:55
virtual ~PetalNode()
Definition: petalnode.cpp:79
NodeType m_type
Definition: petalnode.h:79
NameValueList attributes() const
Definition: petalnode.cpp:117
NodeType type() const
Definition: petalnode.cpp:83
NodeType
Definition: petalnode.h:58
@ nt_object
Definition: petalnode.h:58
@ nt_list
Definition: petalnode.h:58
void setAttributes(NameValueList vl)
Definition: petalnode.cpp:134
StringOrNode findAttribute(const QString &name) const
Definition: petalnode.cpp:144
QDebug operator<<(QDebug out, const PetalNode::StringOrNode &p)
Definition: petalnode.cpp:47
Definition: petalnode.h:48
virtual ~StringOrNode()
Definition: petalnode.h:52
QString string
Definition: petalnode.h:49
PetalNode * node
Definition: petalnode.h:50
StringOrNode()
Definition: petalnode.h:51
bool isEmpty()
Definition: petalnode.h:53