X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConfig%2FConfig_XMLReader.cpp;h=768232b7457e05006f7e9b44caf1ba726fb124bd;hb=7b13546ebd4d7a935189869b0a0c7b72a6f84479;hp=0f32adeecf5c69998fd011668d3fb181478b68ef;hpb=ebf7d0a77d8be18ee27cb5964621b652dfa59f26;p=modules%2Fshaper.git diff --git a/src/Config/Config_XMLReader.cpp b/src/Config/Config_XMLReader.cpp index 0f32adeec..768232b74 100644 --- a/src/Config/Config_XMLReader.cpp +++ b/src/Config/Config_XMLReader.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + /* * Config_XMLReader.cpp * @@ -62,22 +64,12 @@ Config_XMLReader::~Config_XMLReader() xmlFreeDoc(myXmlDoc); } -/* - * Read all nodes in associated xml file, - * recursively if processChildren(xmlNode) is true for the xmlNode. - * For each read node the processNode will be called. - */ void Config_XMLReader::readAll() { xmlNodePtr aRoot = findRoot(); readRecursively(aRoot); } -/* - * Allows to customize reader's behavior for a node. Virtual. - * The default impl does nothing. (In debug mode prints - * some info) - */ void Config_XMLReader::processNode(xmlNodePtr theNode) { if (isNode(theNode, NODE_SOURCE, NULL)) { @@ -94,18 +86,16 @@ void Config_XMLReader::processNode(xmlNodePtr theNode) } } -/* - * Defines which nodes should be processed recursively. Virtual. - * The default impl is to read all nodes. - */ +void Config_XMLReader::cleanup(xmlNodePtr) +{ + // do nothing; +} + bool Config_XMLReader::processChildren(xmlNodePtr aNode) { return true; } -/* - * - */ xmlNodePtr Config_XMLReader::findRoot() { if (myXmlDoc == NULL) { @@ -127,11 +117,6 @@ xmlNodePtr Config_XMLReader::findRoot() return aRoot; } -/* - * Calls processNode() for each child (for some - recursively) - * of the given node. - * \sa ReadAll() - */ void Config_XMLReader::readRecursively(xmlNodePtr theParent) { if (!theParent) @@ -146,12 +131,10 @@ void Config_XMLReader::readRecursively(xmlNodePtr theParent) if (processChildren(aNode)) { readRecursively(aNode); } + cleanup(aNode); } } -/* - * void* -> xmlNodePtr - */ xmlNodePtr Config_XMLReader::node(void* theNode) { return static_cast(theNode); @@ -174,10 +157,10 @@ void Config_XMLReader::processValidator(xmlNodePtr theNode) std::shared_ptr aMessage(new Config_ValidatorMessage(aValidatoEvent, this)); std::string aValidatorId; - std::list aValidatorParameters; - getValidatorInfo(theNode, aValidatorId, aValidatorParameters); + std::list aParameters; + getParametersInfo(theNode, aValidatorId, aParameters); aMessage->setValidatorId(aValidatorId); - aMessage->setValidatorParameters(aValidatorParameters); + aMessage->setValidatorParameters(aParameters); xmlNodePtr aFeatureOrWdgNode = theNode->parent; if (isNode(aFeatureOrWdgNode, NODE_FEATURE, NULL)) { aMessage->setFeatureId(getProperty(aFeatureOrWdgNode, _ID)); @@ -194,8 +177,12 @@ void Config_XMLReader::processSelectionFilter(xmlNodePtr theNode) Events_Loop* aEvLoop = Events_Loop::loop(); std::shared_ptr aMessage = std::make_shared(aFilterEvent, this); - std::string aSelectionFilterId = getProperty(theNode, _ID); + std::string aSelectionFilterId; + std::list aParameters; + getParametersInfo(theNode, aSelectionFilterId, aParameters); aMessage->setSelectionFilterId(aSelectionFilterId); + aMessage->setFilterParameters(aParameters); + xmlNodePtr aFeatureOrWdgNode = theNode->parent; if (isNode(aFeatureOrWdgNode, NODE_FEATURE, NULL)) { aMessage->setFeatureId(getProperty(aFeatureOrWdgNode, _ID));