summaryrefslogtreecommitdiffstats
path: root/src/bindings/swig/java/JavaDataModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings/swig/java/JavaDataModel.h')
-rw-r--r--src/bindings/swig/java/JavaDataModel.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/bindings/swig/java/JavaDataModel.h b/src/bindings/swig/java/JavaDataModel.h
index ef8daa6..fcfb665 100644
--- a/src/bindings/swig/java/JavaDataModel.h
+++ b/src/bindings/swig/java/JavaDataModel.h
@@ -54,11 +54,13 @@ public:
return "";
}
virtual bool evalAsBool(const std::string& expr) {
- return false;
+ return evalAsBool("", expr);
}
virtual bool evalAsBool(const Arabica::DOM::Node<std::string>& node, const std::string& expr) {
- return false;
+ std::ostringstream ssNode;
+ ssNode << node;
+ return evalAsBool(ssNode.str(), expr);
}
virtual bool isDeclared(const std::string& expr) {
@@ -73,6 +75,7 @@ public:
if (assignElem.hasAttribute("location")) {
location = assignElem.getAttribute("location");
}
+
std::ostringstream ssAssign;
ssAssign << assignElem;
std::string tmp;
@@ -80,10 +83,12 @@ public:
std::ostringstream ssContent;
ssContent << node;
tmp = ssContent.str();
+ } else if (assignElem.hasAttribute("expr")) {
+ tmp = assignElem.getAttribute("expr");
} else {
tmp = content;
}
- assign(location, ssAssign.str(), tmp);
+ assign(ssAssign.str(), location, tmp);
}
virtual void assign(const std::string& location, const Data& data) {
@@ -108,10 +113,12 @@ public:
std::ostringstream ssContent;
ssContent << node;
tmp = ssContent.str();
+ } else if (dataElem.hasAttribute("expr")) {
+ tmp = dataElem.getAttribute("expr");
} else {
tmp = content;
}
- init(location, ssData.str(), tmp);
+ init(ssData.str(), location, tmp);
}
virtual void init(const std::string& location, const Data& data) {
@@ -119,6 +126,7 @@ public:
}
// these functions are exposed to java
+ virtual bool evalAsBool(const std::string& elem, const std::string& content) { return false; }
virtual void init(const std::string& dataElem, const std::string& location, const std::string& content) {}
virtual void assign(const std::string& assignElem, const std::string& location, const std::string& content) {}
virtual void eval(const std::string& scriptElem, const std::string& expr) {}