diff --git a/src/utils/xml/CommonXMLStructure.cpp b/src/utils/xml/CommonXMLStructure.cpp index a23eb9136368..693780abbe99 100644 --- a/src/utils/xml/CommonXMLStructure.cpp +++ b/src/utils/xml/CommonXMLStructure.cpp @@ -260,12 +260,7 @@ CommonXMLStructure::PlanParameters::writeIgnoringMessage(const CommonXMLStructur CommonXMLStructure::SumoBaseObject::SumoBaseObject(SumoBaseObject* parent) : mySumoBaseObjectParent(parent), - myTag(SUMO_TAG_NOTHING), - myVClass(SVC_IGNORING), - myVehicleTypeParameter(""), - myDefinedVehicleTypeParameter(false), - myDefinedVehicleParameter(false), - myDefinedStopParameter(false) { + myVehicleTypeParameter("") { // add this SumoBaseObject into parent children if (mySumoBaseObjectParent) { mySumoBaseObjectParent->addSumoBaseObjectChild(this); @@ -321,12 +316,24 @@ CommonXMLStructure::SumoBaseObject::setTag(const SumoXMLTag tag) { } +void +CommonXMLStructure::SumoBaseObject::markAsCreated() { + myWasCreated = true; +} + + SumoXMLTag CommonXMLStructure::SumoBaseObject::getTag() const { return myTag; } +bool +CommonXMLStructure::SumoBaseObject::wasCreated() const { + return myWasCreated; +} + + CommonXMLStructure::SumoBaseObject* CommonXMLStructure::SumoBaseObject::getParentSumoBaseObject() const { return mySumoBaseObjectParent; diff --git a/src/utils/xml/CommonXMLStructure.h b/src/utils/xml/CommonXMLStructure.h index a10b9ea9f800..b5955c42496f 100644 --- a/src/utils/xml/CommonXMLStructure.h +++ b/src/utils/xml/CommonXMLStructure.h @@ -148,12 +148,18 @@ class CommonXMLStructure { /// @brief set SumoBaseObject tag void setTag(const SumoXMLTag tag); + /// @brief mark as successfully created + void markAsCreated(); + /// @name get functions /// @{ /// @brief get XML myTag SumoXMLTag getTag() const; + /// @brief check if the object was successfully created in build<...> function + bool wasCreated() const; + /// @brief get pointer to mySumoBaseObjectParent SumoBaseObject (if is null, then is the root) SumoBaseObject* getParentSumoBaseObject() const; @@ -309,7 +315,10 @@ class CommonXMLStructure { SumoBaseObject* mySumoBaseObjectParent; /// @brief XML myTag - SumoXMLTag myTag; + SumoXMLTag myTag = SUMO_TAG_NOTHING; + + /// @brief flag to check if object was created in build<..> function (by default false) + bool myWasCreated = false; /// @brief string attributes std::map myStringAttributes; @@ -348,7 +357,7 @@ class CommonXMLStructure { std::vector mySumoBaseObjectChildren; /// @brief vehicle class - SUMOVehicleClass myVClass; + SUMOVehicleClass myVClass = SVC_IGNORING; /// @brief vehicle type parameter SUMOVTypeParameter myVehicleTypeParameter; @@ -370,13 +379,13 @@ class CommonXMLStructure { private: /// @brief flag for defined vehicle type parameter - bool myDefinedVehicleTypeParameter; + bool myDefinedVehicleTypeParameter = false; /// @brief @brief flag for defined vehicle parameter - bool myDefinedVehicleParameter; + bool myDefinedVehicleParameter = false; /// @brief @brief flag for defined stop parameter - bool myDefinedStopParameter; + bool myDefinedStopParameter = false; /// @brief handle attribute error void handleAttributeError(const SumoXMLAttr attr, const std::string& type) const;