11#ifndef ATTRIBUTESET_HPP
12#define ATTRIBUTESET_HPP
13#include <unordered_map>
15#include "UtVariant.hpp"
20class UtQtXmlElementReader;
45 void WriteXML(
const std::string& aName, UtQtXmlWriter& aWriter)
const;
46 void ReadXML(UtQtXmlElementReader& aReader);
52 void SetValue(
const std::string& aName,
const UtVariant& aValue);
54 bool GetValue(
const std::string& aName, UtVariant& aValue)
const;
56 UtVariant
GetValue(
const std::string& aName)
const;
58 bool GetBool(
const std::string& aName,
bool aDefautlValue)
const;
59 double GetDouble(
const std::string& aName,
double aDefaultValue)
const;
61 int GetInt(
const std::string& aName,
int aDefaultValue)
const;
63 std::string
GetString(
const std::string& aName,
const std::string& aDefaultValue)
const;
67 bool RenameChild(
const std::string& aCurrentName,
const std::string& aNewName);
68 bool Rename(
const std::string& aNewName);
72 bool HasChild(
const std::string& aChildName)
const;
88 using AttributeStringMap = std::unordered_map<std::string, UtVariant>;
89 using ChildMap = std::unordered_map<std::string, AttributeSet*>;
92 std::string mAttributeName;
93 AttributeStringMap mStrAttributes;
#define VI_EXPORT
Definition ViExport.hpp:38
Definition AttributeOwner.hpp:23
Definition AttributeSet.hpp:32
void Apply(const AttributeSet &aOtherSet)
Definition AttributeSet.cpp:133
const std::string & GetAttributeName() const
Definition AttributeSet.hpp:78
void WriteXML(const std::string &aName, UtQtXmlWriter &aWriter) const
Definition AttributeSet.cpp:294
bool GetBool(const std::string &aName, bool aDefautlValue) const
Definition AttributeSet.cpp:54
int GetInt(const std::string &aName, int aDefaultValue) const
Definition AttributeSet.cpp:64
AttributeSet(const std::string &aName)
Definition AttributeSet.cpp:33
AttributeSet & Child(const std::string &aChildName)
Definition AttributeSet.cpp:145
bool ReadSingleXML(UtQtXmlElementReader &aReader)
Read the top-level attribute set from a single entry.
Definition AttributeSet.cpp:357
friend class AttributeOwner
Definition AttributeSet.hpp:34
bool HasAttribute(const std::string &aName) const
Definition AttributeSet.cpp:121
bool HasChild(const std::string &aChildName) const
Definition AttributeSet.cpp:126
std::string ToString()
Definition AttributeSet.cpp:321
void NotifyOwnersOfChange()
Definition AttributeSet.cpp:386
AttributeSet * GetParent()
Definition AttributeSet.hpp:76
bool RenameChild(const std::string &aCurrentName, const std::string &aNewName)
Definition AttributeSet.cpp:178
std::string GetString(const std::string &aName, const std::string &aDefaultValue) const
Definition AttributeSet.cpp:87
void ReadXML(UtQtXmlElementReader &aReader)
Definition AttributeSet.cpp:328
bool RemoveChild(const std::string &aChildName)
Definition AttributeSet.cpp:156
bool Rename(const std::string &aNewName)
Definition AttributeSet.cpp:193
void SetValue(const std::string &aName, const UtVariant &aValue)
Definition AttributeSet.cpp:97
AttributeSet * FindChild(const std::string &aChildName)
Definition AttributeSet.cpp:168
double GetDouble(const std::string &aName, double aDefaultValue) const
Definition AttributeSet.cpp:74
bool GetValue(const std::string &aName, UtVariant &aValue) const
Definition AttributeSet.cpp:102