// // Created by cbihan on 16/06/2021. // #pragma once #include #include #include namespace BBM { class Node { private: //! @brief Node name std::string _name; //! @brief child nodes std::vector _childNodes; //! @brief node's properties std::map _properties; public: std::string getName() const; void setName(const std::string &name); void addChildNode(const Node &childNode); std::vector getChildNodes(const std::string &childNodeName); std::vector getChildNodes(void); void setProperty(const std::string &propertyName, const std::string &propertyValue); void setProperty(const std::pair &propertyNameValue); std::string getProperty(const std::string &propertyName) const; //! @brief ctor explicit Node(std::string name); //! @brief copy ctor Node(const Node &) = default; //! @brief dtor ~Node() = default; //! @brief assignment operator Node &operator=(const Node &) = default; }; }