Salome HOME
Roll back the modification, not yet approved
[modules/shaper.git] / src / Config / Config_XMLReader.h
index 8b6f963d1b6bc5e24809285964d2a07e1859cdde..6cfefc62d854f96122b361d48e47a42b9a048212 100644 (file)
@@ -62,6 +62,12 @@ class Config_XMLReader
    * "selection_filter" nodes.
    */
   virtual void processNode(xmlNodePtr aNode);
+
+  /*!
+   * This method gives an ability to finalize processing of a node,
+   * when reader is about to leave the node (node and all it's children are processed)
+   */
+  virtual void cleanup(xmlNodePtr aNode);
   /*!
    * \brief Defines which nodes should be processed recursively. Virtual.
    * The default impl is to read all nodes.
@@ -81,11 +87,13 @@ class Config_XMLReader
   std::string getNodeName(xmlNodePtr theNode);
   /// Stores an attribute in internal map for later use.
   /// Key is "Node_Name:Node_Attribute" and value is getProperty(theNodeAttribute)
-  void storeAttribute(xmlNodePtr theNode, const char* theNodeAttribute);
+  void storeAttribute(xmlNodePtr theNode, const char* theNodeAttribute, bool doClean = false);
   /// Restores an attribute from internal map.
   std::string restoreAttribute(xmlNodePtr theNode, const char* theNodeAttribute);
   /// Restores an attribute from internal map.
   std::string restoreAttribute(const char* theNodeName, const char* theNodeAttribute);
+  bool cleanupAttribute(xmlNodePtr theNode, const char* theNodeAttribute);
+  bool cleanupAttribute(const char* theNodeName, const char* theNodeAttribute);
 
  protected:
   std::string myDocumentPath; ///< Path to the xml document