aboutsummaryrefslogtreecommitdiffstats
path: root/include/diagram/branchstatement.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/diagram/branchstatement.h')
-rw-r--r--include/diagram/branchstatement.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/diagram/branchstatement.h b/include/diagram/branchstatement.h
new file mode 100644
index 0000000..6c5e416
--- /dev/null
+++ b/include/diagram/branchstatement.h
@@ -0,0 +1,30 @@
+#ifndef DIAGRAM_BRANCHSTATEMENT_H
+#define DIAGRAM_BRANCHSTATEMENT_H
+
+#include "diagram/statement.h"
+
+#include <map>
+#include <QString>
+
+namespace samb {
+
+class BranchStatement : public Statement
+{
+public:
+ BranchStatement(Type t, const QString &condition, pointer next);
+
+ /* accessors */
+ const std::map<QString, pointer>& branches() const { return _branches; }
+ std::size_t branches_count() const { return _branchesCount; }
+
+ inline const QString& condition() const { return text(); }
+ inline void condition(const QString &condition) { return text(condition); }
+
+private:
+ std::map<QString, pointer> _branches;
+ std::size_t _branchesCount = 0;
+};
+
+} /* namespace samb */
+
+#endif /* DIAGRAM_BRANCHSTATEMENT_H */