74 const char*
what()
const noexcept override;
92 : mContainerData(nullptr)
100 static UtmlObject makeContainer(
const std::string& aType);
102 static UtmlObject parse(
const std::string& aContainerType,
const std::string& aText);
105 static UtmlObject parseFile(
const std::string& aFilePath);
111 bool IsValue()
const {
return mContainerData ==
nullptr; }
133 void SetValueLines(
const std::vector<std::string>& aLines);
136 std::vector<std::string> GetValueLines()
const;
138 bool GetBoolValue()
const;
140 void SetBoolValue(
bool aValue);
160 assert(mContainerData);
161 return mContainerData->mProperties;
167 assert(mContainerData);
168 return mContainerData->mProperties;
171 UtmlObject* FindProperty(
const std::string& aName)
const;
175 std::string PropertyValue(
const std::string& aPropertyName,
const std::string& aDefaultValue)
const;
178 bool Contains(
const std::string& aPropertyName)
const;
182 UtmlObject& operator[](
const std::string& aName);
188 mContainerData->mObjects.push_back(
new UtmlObject(aRhs));
193 int GetObjectCount()
const {
return mContainerData ? (int)mContainerData->mObjects.size() : 0; }
196 UtmlObject& GetObject(int aIndex)
199 return *mContainerData->mObjects[aIndex];
205 return *mContainerData->mObjects[aIndex];
210 UtmlObject* FirstObjectByType(
const std::string& aTypeName)
const;
213 void GiveProperty(
const std::string& aName,
UtmlObject& aObject);
223 std::swap(mContainerData, aRhs.mContainerData);
226 std::string ToText()
const;
233 std::vector<UtmlObject*>& GetObjects() {
return mContainerData->mObjects; }
239 ContainerData(
const ContainerData& aSrc);
241 bool operator==(
const ContainerData& aRhs)
const
247 if (mObjects.size() != aRhs.mObjects.size())
251 if (mProperties != aRhs.mProperties)
255 for (
size_t i = 0; i < mObjects.size(); ++i)
257 if (*mObjects[i] != *aRhs.mObjects[i])
267 std::map<std::string, UtmlObject> mProperties;
268 std::vector<UtmlObject*> mObjects;
271 ContainerData& operator=(
const ContainerData&);
274 ContainerData* mContainerData;
289 UtTextDocument* mDocumentPtr;
300 void Write(
const UtmlObject& aObject, std::ostream& aStream);
301 void WriteRoot(
const UtmlObject& aObject, std::ostream& aStream);
303 void WriteFile(
const UtmlObject& aObject,
const std::string& aFileName,
bool aObjectIsImplicitRoot);
bool operator!=(int aId, const WsfStringInt &aRhs)
Not equal relational operator for the case of an integer on the LHS and a StringId on the RHS.
Definition WsfStringId.hpp:75
bool operator==(int aId, const WsfStringInt &aRhs)
Equal relational operator for the case of an integer on the LHS and a StringId on the RHS.
Definition WsfStringId.hpp:69
#define WSF_UT_EXPORT
Definition WsfUtExport.hpp:32
bool Contains(std::vector< int > &aQueryTargetIds, const WsfTrack &aShooterTrack)
Definition WsfWeaponThreatProcessor.cpp:1462
const UtmlObject & GetObject(int aIndex) const
returns the object at the specified index
Definition Utml.hpp:202
UtmlObject & operator+=(const UtmlObject &aRhs)
Add a sub-object to this object.
Definition Utml.hpp:185
bool IsValue() const
Definition Utml.hpp:111
int GetObjectCount() const
Returns the number of objects in the container.
Definition Utml.hpp:193
const std::map< std::string, UtmlObject > & GetProperties() const
Returns the list of properties on the object.
Definition Utml.hpp:165
std::map< std::string, UtmlObject > & GetProperties()
Returns the list of properties on the object.
Definition Utml.hpp:158
UtmlObject()
Definition Utml.hpp:91
const std::string & GetValue() const
To be used when IsContainer() is false, the value as a string.
Definition Utml.hpp:117
bool operator!=(const UtmlObject &aRhs) const
Definition Utml.hpp:230
void Swap(UtmlObject &aRhs)
}
Definition Utml.hpp:220
void SetValue(const std::string &aValue)
Assign the value. Not valid for containers.
Definition Utml.hpp:124
bool IsContainer() const
Definition Utml.hpp:114
std::map< std::string, UtmlObject > PropertyMap
Definition Utml.hpp:89
const std::string & GetType() const
}
Definition Utml.hpp:151
std::string mError
Definition Utml.hpp:76
UtmlParseError(const std::string &aError)
Definition Utml.cpp:664
const char * what() const noexcept override
Definition Utml.cpp:659
UtmlParser(UtTextDocument &aDocument)
Definition Utml.cpp:626
bool Parse(UtmlObject &aContainer)
Definition Utml.cpp:633
UtmlWriter()
Definition Utml.hpp:296
int mIndent
Definition Utml.hpp:304
void swap(WsfRoute &aLhs, WsfRoute &aRhs)
Definition WsfRoute.hpp:294