summaryrefslogtreecommitdiff
path: root/project2/if.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'project2/if.cpp')
-rw-r--r--project2/if.cpp21
1 files changed, 4 insertions, 17 deletions
diff --git a/project2/if.cpp b/project2/if.cpp
index ed36bad..cf5c156 100644
--- a/project2/if.cpp
+++ b/project2/if.cpp
@@ -42,13 +42,12 @@ IfSet::passes() const
If::If(const xmlpp::Element * e) :
SourceObject(e),
- NoOutputExecute(e),
+ IHaveSubTasks(e),
View(e),
- IfSet(e),
- localErrorHandling(e->get_attribute_value("errorHandling") == "local")
+ IfSet(e)
{
LoaderBase loader(true);
- loader.supportedStorers.insert(new NOEErrorStorer(&normNOEs, &errorNOEs));
+ loader.supportedStorers.insert(Storer::into(&normal));
loader.supportedStorers.insert(Storer::into(&subViews));
loader.collectAll(e, true, IgnoreUnsupported);
}
@@ -74,19 +73,7 @@ If::execute() const
{
if (passes()) {
Logger()->message(LOG_DEBUG, "IfSet passed");
- try {
- BOOST_FOREACH(const SubNOEs::value_type & sq, normNOEs) {
- sq->execute();
- }
- }
- catch (...) {
- BOOST_FOREACH(const SubNOEs::value_type & sq, errorNOEs) {
- sq->execute();
- }
- if (!localErrorHandling) {
- throw;
- }
- }
+ run(normal);
}
}