diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-08-11 14:12:28 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-08-11 14:12:28 (GMT) |
commit | c30b602cdb5ede809b960e35fc7e702b7f1f76e2 (patch) | |
tree | a7935d13b35abde551d7b06836b4bc617fc5274e /src/uscxml/transform/FlatStateIdentifier.h | |
parent | b95a9c2d23c4bfba84dfac8683c47153d598e09f (diff) | |
download | uscxml-c30b602cdb5ede809b960e35fc7e702b7f1f76e2.zip uscxml-c30b602cdb5ede809b960e35fc7e702b7f1f76e2.tar.gz uscxml-c30b602cdb5ede809b960e35fc7e702b7f1f76e2.tar.bz2 |
Reformatted w3c tests with xmllint
Diffstat (limited to 'src/uscxml/transform/FlatStateIdentifier.h')
-rw-r--r-- | src/uscxml/transform/FlatStateIdentifier.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/uscxml/transform/FlatStateIdentifier.h b/src/uscxml/transform/FlatStateIdentifier.h index 61d0f1b..08451c2 100644 --- a/src/uscxml/transform/FlatStateIdentifier.h +++ b/src/uscxml/transform/FlatStateIdentifier.h @@ -21,6 +21,7 @@ #define FLATSTATEIDENTIFIER_H_E9534AF9 #include "uscxml/Common.h" +#include "uscxml/Convenience.h" #include "uscxml/DOMUtils.h" #include <XPath/XPath.hpp> @@ -44,7 +45,18 @@ public: } for (int i = 0; i < alreadyEnteredStates.size(); i++) { - visited.push_back(ATTR_CAST(alreadyEnteredStates[i], "id")); + const Arabica::DOM::NodeList<std::string>& children = alreadyEnteredStates[i].getChildNodes(); + bool isRelevant = false; + for (int j = 0; j < children.getLength(); j++) { + if (children.item(j).getNodeType() != Arabica::DOM::Node_base::ELEMENT_NODE) + continue; + if (iequals(LOCALNAME_CAST(children.item(j)), "data") || iequals(LOCALNAME_CAST(children.item(j)), "datamodel")) { + isRelevant = true; + break; + } + } + if (isRelevant) + visited.push_back(ATTR_CAST(alreadyEnteredStates[i], "id")); } std::map<std::string, Arabica::XPath::NodeSet<std::string> >::const_iterator histIter; @@ -79,7 +91,7 @@ public: active.push_back(state); } } - } else if (boost::starts_with(section, "entered:{")) { + } else if (boost::starts_with(section, "visited:{")) { // entered:{s0,s1,s2} std::stringstream stateSS(section.substr(9, section.size() - 10)); std::string state; @@ -152,7 +164,7 @@ protected: if (visited.size() > 0) { seperator = ""; - stateIdSS << ";entered:{"; + stateIdSS << ";visited:{"; for (std::list<std::string>::const_iterator visitIter = visited.begin(); visitIter != visited.end(); visitIter++) { stateIdSS << seperator << *visitIter; seperator = ","; |