00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef STARTTAG_H
00017 #define STARTTAG_H
00018
00019 #include "Tag.h"
00020
00022
00023 class StartTag : virtual public Tag
00024 {
00025 public:
00027 StartTag(const string& name = "StartTag",
00028 const StringMap& attributes = StringMap());
00029
00033
00035
00038 virtual string Get(const string& att) const;
00039
00041
00042 virtual StringVector GetAttributes() const;
00043
00045
00046 virtual StringVector GetValues() const;
00047
00049
00050 virtual StringMap GetAttributeMap() const;
00051
00053
00056
00057 virtual StartTag SetAttributeMap(const StringMap& newAttributeMap);
00058
00060
00064 virtual StartTag SetValues(const StringVector& newVals,
00065 const StringVector& newAtts = StringVector());
00066
00068 virtual StartTag Set(const string& att, const string& val);
00069
00071
00072 virtual string& operator[] (const string& newAtt);
00073
00075
00078
00079 virtual string ToString() const;
00081
00082 protected:
00084 StartTag& Copy(const StartTag& rhs);
00085
00087 void Init(const string& newName,
00088 const StringMap& newAttributes);
00089
00091 bool Equals(const StartTag& rhs) const;
00092
00094 void NullifyPointers();
00095
00097 void Clear();
00098
00099 private:
00100 StringMap* attributes;
00101 };
00102
00103 typedef StartTag XMLStartTag;
00104 #endif