diff options
Diffstat (limited to 'project2/if.cpp')
-rw-r--r-- | project2/if.cpp | 21 |
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); } } |