9
#include "XmlDocument.h"
17
typedef std::vector<std::string> VectorString;
18
typedef std::pair<std::string, std::string> PairString;
19
typedef std::vector<PairString> VectorPairString;
20
typedef std::vector<Compound*> VectorCompound;
21
typedef utility::Enumerator<VectorCompound> Enumerator;
26
Compound(xml::ElementPtr _element, const std::string& _type)
29
mName = getItemName(_element);
30
mKind = _element->findAttribute("kind");
31
mId = _element->findAttribute("refid");
33
xml::ElementEnumerator child_item = _element->getElementEnumerator();
34
while (child_item.next())
36
if (child_item->getName() == "compound")
37
mChilds.push_back(new Compound(child_item.current(), child_item->getName()));
38
else if (child_item->getName() == "member")
39
mChilds.push_back(new Compound(child_item.current(), child_item->getName()));
45
Enumerator childs = Enumerator(mChilds.begin(), mChilds.end());
46
while (childs.next()) delete childs.current();
50
const std::string& getKind() const
54
const std::string& getName() const
58
const std::string& getId() const
62
const std::string& getType() const
67
Enumerator getEnumerator() const
69
return Enumerator(mChilds.begin(), mChilds.end());
73
std::string getItemName(xml::ElementPtr _element)
75
xml::ElementEnumerator child_item = _element->getElementEnumerator();
76
while (child_item.next("name"))
77
return child_item->getContent();
86
VectorCompound mChilds;
89
} // namespace wrapper
91
#endif // __COMPOUND_H__