summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--project2/console/consoleAppEngine.cpp7
-rw-r--r--project2/console/consoleAppEngine.h4
-rw-r--r--project2/presenter.cpp2
-rw-r--r--project2/presenter.h2
-rw-r--r--project2/rawView.cpp14
-rw-r--r--project2/xmlPresenter.cpp4
-rw-r--r--project2/xmlPresenter.h2
7 files changed, 17 insertions, 18 deletions
diff --git a/project2/console/consoleAppEngine.cpp b/project2/console/consoleAppEngine.cpp
index 3db8ce9..5c81b95 100644
--- a/project2/console/consoleAppEngine.cpp
+++ b/project2/console/consoleAppEngine.cpp
@@ -2,7 +2,6 @@
#include "consoleEnvironment.h"
#include "../iterate.h"
#include "../xmlObjectLoader.h"
-#include "../xmlScriptParser.h"
#include <boost/foreach.hpp>
SimpleMessageException(UnknownPlatformAlias);
@@ -57,9 +56,9 @@ ConsoleApplicationEngine::ConsoleApplicationEngine(const ConsoleEnvironment * en
_env(env),
indent(0),
runtime(new ConsoleSession()),
- out(stdout, true)
+ out(stdout, true),
+ request(f.string(), false)
{
- XmlScriptParser request(f.string(), false);
xmlpp::Element * requestRoot = request.get_document()->get_root_node();
rollbackBeforeHandle = requestRoot->get_attribute_value("rollbackBeforeHandle") == "true";
localErrorHandling = requestRoot->get_attribute_value("errorHandling") == "local";
@@ -149,7 +148,7 @@ ConsoleApplicationEngine::addField(const Glib::ustring & name, const Glib::ustri
}
void
-ConsoleApplicationEngine::setText(const VariableType & value) const
+ConsoleApplicationEngine::addText(const VariableType & value) const
{
fprintf(stdout, "%*s<local> = ", indent, "");
boost::apply_visitor(out, value);
diff --git a/project2/console/consoleAppEngine.h b/project2/console/consoleAppEngine.h
index 93e76ed..3663217 100644
--- a/project2/console/consoleAppEngine.h
+++ b/project2/console/consoleAppEngine.h
@@ -12,6 +12,7 @@
#include <boost/intrusive_ptr.hpp>
#include <boost/filesystem/path.hpp>
#include <libxml++/document.h>
+#include "../xmlScriptParser.h"
class ConsoleEnvironment;
@@ -41,7 +42,7 @@ class ConsoleApplicationEngine : public ApplicationEngine, public Presenter, Req
void pushSub(const Glib::ustring & ns, const Glib::ustring & name) const;
void addAttr(const Glib::ustring & name, const Glib::ustring & ns, const VariableType & value) const;
void addField(const Glib::ustring & name, const Glib::ustring & ns, const VariableType & value) const;
- void setText(const VariableType & value) const;
+ void addText(const VariableType & value) const;
void popSub() const;
private:
mutable unsigned int indent;
@@ -50,6 +51,7 @@ class ConsoleApplicationEngine : public ApplicationEngine, public Presenter, Req
ParamCheckers parameterChecks;
SessionPtr runtime;
FileStreamVariableWriter out;
+ XmlScriptParser request;
};
#endif
diff --git a/project2/presenter.cpp b/project2/presenter.cpp
index 73a6cfa..005fa2b 100644
--- a/project2/presenter.cpp
+++ b/project2/presenter.cpp
@@ -50,7 +50,7 @@ void
Presenter::addField(const Glib::ustring & name, const Glib::ustring & ns, const VariableType & value) const
{
pushSub(name, ns);
- setText(value);
+ addText(value);
popSub();
}
diff --git a/project2/presenter.h b/project2/presenter.h
index 2391a29..cdae0fd 100644
--- a/project2/presenter.h
+++ b/project2/presenter.h
@@ -19,7 +19,7 @@ class Presenter : public virtual CommonObjects, public virtual IntrusivePtrBase
virtual void addAttr(const Glib::ustring & name, const Glib::ustring & ns, const VariableType & value) const;
virtual void addField(const Glib::ustring & name, const VariableType & value) const;
virtual void addField(const Glib::ustring & name, const Glib::ustring & ns, const VariableType & value) const;
- virtual void setText(const VariableType & value) const = 0;
+ virtual void addText(const VariableType & value) const = 0;
virtual void popSub() const = 0;
void execute() const;
diff --git a/project2/rawView.cpp b/project2/rawView.cpp
index d9ca15b..ce4605a 100644
--- a/project2/rawView.cpp
+++ b/project2/rawView.cpp
@@ -16,7 +16,7 @@ RawView::RawView(const xmlpp::Element * p) :
{
}
- void
+void
RawView::loadComplete(const CommonObjects *)
{
}
@@ -40,16 +40,14 @@ RawView::copyNode(const Presenter * p, const xmlpp::Element * n) const
BOOST_FOREACH(const xmlpp::Attribute * a, al) {
p->addAttr(a->get_name(), a->get_value());
}
- const xmlpp::TextNode * t = n->get_child_text();
- if (t) {
- p->setText(t->get_content());
- }
- xmlpp::Node::NodeList ch = n->get_children();
+ const xmlpp::Node::NodeList ch = n->get_children();
BOOST_FOREACH(const xmlpp::Node * c, ch) {
- const xmlpp::Element * e = dynamic_cast<const xmlpp::Element *>(c);
- if (e) {
+ if (const xmlpp::Element * e = dynamic_cast<const xmlpp::Element *>(c)) {
copyNode(p, e);
}
+ else if (const xmlpp::TextNode * t = dynamic_cast<const xmlpp::TextNode *>(c)) {
+ p->addText(t->get_content());
+ }
}
p->popSub();
}
diff --git a/project2/xmlPresenter.cpp b/project2/xmlPresenter.cpp
index cc31c2f..d657964 100644
--- a/project2/xmlPresenter.cpp
+++ b/project2/xmlPresenter.cpp
@@ -83,11 +83,11 @@ XmlPresenter::addAttr(const Glib::ustring & name, const Glib::ustring & ns, cons
}
void
-XmlPresenter::setText(const VariableType & value) const
+XmlPresenter::addText(const VariableType & value) const
{
if (!boost::get<Null>(&value)) {
createDoc();
- nodeStack.back()->set_child_text(value);
+ nodeStack.back()->add_child_text(value);
}
}
diff --git a/project2/xmlPresenter.h b/project2/xmlPresenter.h
index cc1312a..ee610ee 100644
--- a/project2/xmlPresenter.h
+++ b/project2/xmlPresenter.h
@@ -16,7 +16,7 @@ class XmlPresenter : public Presenter {
void pushSub(const Glib::ustring & name, const Glib::ustring & ns) const;
void addAttr(const Glib::ustring & name, const Glib::ustring & ns, const VariableType & value) const;
- void setText(const VariableType & value) const;
+ void addText(const VariableType & value) const;
void popSub() const;
virtual XmlDocumentPtr getDataDocument() const;