OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
VersionGraphVersionCfg.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
11
12// std header
13#include <list>
14#include <string>
15
16#pragma warning(disable:4251)
17
18namespace ot {
19
20 class VersionGraphCfg;
21
23 public:
25 VersionGraphVersionCfg(const std::string& _name, const std::string& _label = std::string(), const std::string& _description = std::string());
28
29 VersionGraphVersionCfg& operator = (const VersionGraphVersionCfg& _other);
30
31 void addToJsonObject(ot::JsonValue& _object, ot::JsonAllocator& _allocator, const std::string& _customParentVersion) const;
32
34 bool setFromJsonObject(const ot::ConstJsonObject& _object, VersionGraphCfg* _graph);
35
37 void setName(const std::string& _name) { m_name = _name; };
38
42 const std::string& getName(void) const { return m_name; };
43
45 void setLabel(const std::string& _title) { m_label = _title; };
46
49 const std::string& getLabel(void) const { return m_label; };
50
51 void setDescription(const std::string& _description) { m_description = _description; };
52 const std::string& getDescription(void) const { return m_description; };
53
54 VersionGraphVersionCfg* addChildVersion(const std::string& _name, const std::string& _label = std::string(), const std::string& _description = std::string());
55
58 void addChildVersion(VersionGraphVersionCfg* _child);
59 void setChildVersions(const std::list<VersionGraphVersionCfg*>& _versions);
60
63 const std::list<VersionGraphVersionCfg*>& getChildVersions(void) const { return m_childVersions; };
64
67 VersionGraphVersionCfg* findVersion(const std::string& _versionName);
68
71 const VersionGraphVersionCfg* findVersion(const std::string& _versionName) const;
72
75 bool versionStartingWithNameExists(const std::string& _prefix) const;
76
78 VersionGraphVersionCfg* getLastBranchVersion(void);
79
81 void setDirectParentIsHidden(bool _isHidden) { m_directParentIsHidden = _isHidden; };
82
84 bool getDirectParentIsHidden(void) const { return m_directParentIsHidden; };
85
87 void applyConfigOnly(const VersionGraphVersionCfg& _other);
88
89 VersionGraphVersionCfg* getParentVersion(void) { return m_parentVersion; };
90 const VersionGraphVersionCfg* getParentVersion(void) const { return m_parentVersion; };
91
92 private:
93 void setParentVersion(VersionGraphVersionCfg* _parent) { m_parentVersion = _parent; };
94 void eraseChildVersion(VersionGraphVersionCfg* _child);
95 void clear(void);
96 void clearChilds(void);
97
98 std::string m_name;
99 std::string m_label;
100 std::string m_description;
101 VersionGraphVersionCfg* m_parentVersion;
102 std::list<VersionGraphVersionCfg*> m_childVersions;
103 bool m_directParentIsHidden;
104 };
105
106}
#define OT_GUI_API_EXPORT
Definition OTGuiAPIExport.h:9
Definition VersionGraphCfg.h:13
Definition VersionGraphVersionCfg.h:22
void setDirectParentIsHidden(bool _isHidden)
Definition VersionGraphVersionCfg.h:81
VersionGraphVersionCfg * getParentVersion(void)
Definition VersionGraphVersionCfg.h:89
const std::list< VersionGraphVersionCfg * > & getChildVersions(void) const
Returns the child versions. This version keeps ownership of the versions.
Definition VersionGraphVersionCfg.h:63
void setLabel(const std::string &_title)
Definition VersionGraphVersionCfg.h:45
void setName(const std::string &_name)
Definition VersionGraphVersionCfg.h:37
bool getDirectParentIsHidden(void) const
If the direct parent is hidden the connection line will be displayed as a dashed line.
Definition VersionGraphVersionCfg.h:84
const std::string & getDescription(void) const
Definition VersionGraphVersionCfg.h:52
const std::string & getName(void) const
Returns the version name. The name is used to identify the version in a graph. The name will be displ...
Definition VersionGraphVersionCfg.h:42
const VersionGraphVersionCfg * getParentVersion(void) const
Definition VersionGraphVersionCfg.h:90
void setDescription(const std::string &_description)
Definition VersionGraphVersionCfg.h:51
const std::string & getLabel(void) const
Returns the version label. The label will be displayed on the version if it is not empty.
Definition VersionGraphVersionCfg.h:49
Definition Connector.h:8
rapidjson::Value JsonValue
Writable JSON value.
Definition JSON.h:27
rapidjson::GenericObject< true, rapidjson::GenericValue< rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > > > ConstJsonObject
Read only JSON Object.
Definition JSON.h:35
rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > JsonAllocator
Allocator used for writing to JSON values.
Definition JSON.h:30