summaryrefslogtreecommitdiffstats
path: root/src/uscxml/transform/FlatStateIdentifier.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/transform/FlatStateIdentifier.h')
-rw-r--r--src/uscxml/transform/FlatStateIdentifier.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/uscxml/transform/FlatStateIdentifier.h b/src/uscxml/transform/FlatStateIdentifier.h
index 92e6e8a..011888a 100644
--- a/src/uscxml/transform/FlatStateIdentifier.h
+++ b/src/uscxml/transform/FlatStateIdentifier.h
@@ -110,6 +110,7 @@ public:
if (closingBracketPos != std::string::npos) {
state = state.substr(0, closingBracketPos);
}
+ boost::trim(state);
if (state.length() > 0) {
active.push_back(state);
}
@@ -123,6 +124,7 @@ public:
if (closingBracketPos != std::string::npos) {
state = state.substr(0, closingBracketPos);
}
+ boost::trim(state);
if (state.length() > 0) {
visited.push_back(state);
}
@@ -150,7 +152,11 @@ public:
if (closingBracketPos != std::string::npos) {
state = state.substr(0, closingBracketPos);
}
- histories[histName].push_back(state);
+ boost::trim(state);
+ if (state.length() > 0) {
+ histories[histName].push_back(state);
+ }
+
}
start = end + 2;
@@ -171,6 +177,10 @@ public:
return flatActive;
}
+ const std::string& getFlatHistory() {
+ return flatHistories;
+ }
+
const std::list<std::string>& getVisited() {
return visited;
}
@@ -181,8 +191,15 @@ public:
const std::map<std::string, std::list<std::string> > & getHistory() {
return histories;
}
- const std::string& getFlatHistory() {
- return flatHistories;
+
+ const std::map<std::string, std::set<std::string> > getHistorySets() {
+ std::map<std::string, std::set<std::string> > histSet;
+ std::map<std::string, std::list<std::string> >::const_iterator histIter = histories.begin();
+ while(histIter != histories.end()) {
+ histSet[histIter->first].insert(histIter->second.begin(), histIter->second.end());
+ histIter++;
+ }
+ return histSet;
}
protected: