summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/null
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-05-12 13:12:33 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-05-12 13:12:33 (GMT)
commitb62e7979600feee23dc7cdb61042a8fc7673122b (patch)
treef7351372f37979dd2d048e0b68a16a4cd3b2aadb /src/uscxml/plugins/datamodel/null
parent1b11b310be61e51b3ac5ebb83f7c8a33aef3d6e8 (diff)
downloaduscxml-b62e7979600feee23dc7cdb61042a8fc7673122b.zip
uscxml-b62e7979600feee23dc7cdb61042a8fc7673122b.tar.gz
uscxml-b62e7979600feee23dc7cdb61042a8fc7673122b.tar.bz2
Major Refactoring v2.0
Diffstat (limited to 'src/uscxml/plugins/datamodel/null')
-rw-r--r--src/uscxml/plugins/datamodel/null/NULLDataModel.cpp60
-rw-r--r--src/uscxml/plugins/datamodel/null/NULLDataModel.h65
2 files changed, 52 insertions, 73 deletions
diff --git a/src/uscxml/plugins/datamodel/null/NULLDataModel.cpp b/src/uscxml/plugins/datamodel/null/NULLDataModel.cpp
index 7211dc5..773a970 100644
--- a/src/uscxml/plugins/datamodel/null/NULLDataModel.cpp
+++ b/src/uscxml/plugins/datamodel/null/NULLDataModel.cpp
@@ -21,10 +21,7 @@
#include "uscxml/Common.h"
#include "NULLDataModel.h"
-#include "uscxml/dom/DOMUtils.h"
-
-#include "uscxml/Message.h"
-#include <glog/logging.h>
+#include "uscxml/util/DOM.h"
#ifdef BUILD_AS_PLUGINS
#include <Pluma/Connector.hpp>
@@ -43,28 +40,16 @@ bool pluginConnect(pluma::Host& host) {
NULLDataModel::NULLDataModel() {
}
-boost::shared_ptr<DataModelImpl> NULLDataModel::create(InterpreterInfo* interpreter) {
- boost::shared_ptr<NULLDataModel> dm = boost::shared_ptr<NULLDataModel>(new NULLDataModel());
- dm->_interpreter = interpreter;
+std::shared_ptr<DataModelImpl> NULLDataModel::create(DataModelCallbacks* callbacks) {
+ std::shared_ptr<NULLDataModel> dm(new NULLDataModel());
+ dm->_callbacks = callbacks;
return dm;
}
NULLDataModel::~NULLDataModel() {
}
-void NULLDataModel::pushContext() {
-}
-
-void NULLDataModel::popContext() {
-}
-
-void NULLDataModel::initialize() {
-}
-
-void NULLDataModel::setEvent(const Event& event) {
-}
-
-Data NULLDataModel::getStringAsData(const std::string& content) {
+Data NULLDataModel::getAsData(const std::string& content) {
Data data = Data::fromJSON(content);
if (data.empty()) {
data = Data(content, Data::VERBATIM);
@@ -72,39 +57,13 @@ Data NULLDataModel::getStringAsData(const std::string& content) {
return data;
}
-bool NULLDataModel::validate(const std::string& location, const std::string& schema) {
- return true;
-}
-
-bool NULLDataModel::isLocation(const std::string& expr) {
- return true;
-}
-
-uint32_t NULLDataModel::getLength(const std::string& expr) {
- return 0;
-}
-
-void NULLDataModel::setForeach(const std::string& item,
- const std::string& array,
- const std::string& index,
- uint32_t iteration) {
-}
-
-void NULLDataModel::eval(const Arabica::DOM::Element<std::string>& scriptElem,
- const std::string& expr) {
-}
-
-bool NULLDataModel::isDeclared(const std::string& expr) {
- return true;
-}
-
/**
* The boolean expression language consists of the In predicate only. It has the
* form 'In(id)', where id is the id of a state in the enclosing state machine.
* The predicate must return 'true' if and only if that state is in the current
* state configuration.
*/
-bool NULLDataModel::evalAsBool(const Arabica::DOM::Element<std::string>& node, const std::string& expr) {
+bool NULLDataModel::evalAsBool(const xercesc::DOMElement* scriptNode, const std::string& expr) {
std::string trimmedExpr = expr;
boost::trim(trimmedExpr);
if (!boost::istarts_with(trimmedExpr, "in"))
@@ -138,7 +97,7 @@ bool NULLDataModel::evalAsBool(const Arabica::DOM::Element<std::string>& node, c
stateName = *stateIter;
}
- if (_interpreter->isInState(stateName)) {
+ if (_callbacks->isInState(stateName)) {
continue;
}
return false;
@@ -146,9 +105,4 @@ bool NULLDataModel::evalAsBool(const Arabica::DOM::Element<std::string>& node, c
return true;
}
-std::string NULLDataModel::evalAsString(const std::string& expr) {
- return expr;
-}
-
-
} \ No newline at end of file
diff --git a/src/uscxml/plugins/datamodel/null/NULLDataModel.h b/src/uscxml/plugins/datamodel/null/NULLDataModel.h
index f813ae1..c584357 100644
--- a/src/uscxml/plugins/datamodel/null/NULLDataModel.h
+++ b/src/uscxml/plugins/datamodel/null/NULLDataModel.h
@@ -20,7 +20,6 @@
#ifndef NULLDATAMODEL_H_KN8TWG0V
#define NULLDATAMODEL_H_KN8TWG0V
-#include "uscxml/InterpreterInfo.h"
#include "uscxml/plugins/DataModel.h"
#include <list>
@@ -39,7 +38,7 @@ class NULLDataModel : public DataModelImpl {
public:
NULLDataModel();
virtual ~NULLDataModel();
- virtual boost::shared_ptr<DataModelImpl> create(InterpreterInfo* interpreter);
+ virtual std::shared_ptr<DataModelImpl> create(DataModelCallbacks* callbacks);
virtual std::list<std::string> getNames() {
std::list<std::string> names;
@@ -47,38 +46,64 @@ public:
return names;
}
- virtual void initialize();
- virtual void setEvent(const Event& event);
+ virtual bool validate(const std::string& location, const std::string& schema) {
+ return true;
+ }
+ virtual bool isValidSyntax(const std::string& expr) {
+ return true; // overwrite when datamodel supports it
+ }
+ virtual void setEvent(const Event& event) {}
- virtual bool validate(const std::string& location, const std::string& schema);
- virtual bool isLocation(const std::string& expr);
+ size_t replaceExpressions(std::string& content) {
+ return 0;
+ }
- virtual uint32_t getLength(const std::string& expr);
+ // foreach
+ virtual uint32_t getLength(const std::string& expr) {
+ return 0;
+ }
virtual void setForeach(const std::string& item,
const std::string& array,
const std::string& index,
- uint32_t iteration);
+ uint32_t iteration) {}
- virtual void pushContext();
- virtual void popContext();
+ virtual Data getAsData(const std::string& content);
+
+ virtual Data evalAsData(const std::string& content) {
+ return getAsData(content);
+ }
+ virtual std::string evalAsString(const std::string& expr) {
+ return expr;
+ }
- virtual void assign(const Arabica::DOM::Element<std::string>& assignElem,
- const Arabica::DOM::Node<std::string>& node,
+ virtual bool evalAsBool(const xercesc::DOMElement* scriptNode,
+ const std::string& expr);
+ virtual bool evalAsBool(const std::string& expr) {
+ return evalAsBool(NULL, expr);
+ }
+
+ virtual bool isDeclared(const std::string& expr) {
+ return true;
+ }
+
+ virtual void assign(const xercesc::DOMElement* assignElem,
+ const xercesc::DOMNode* node,
const std::string& content) {}
virtual void assign(const std::string& location, const Data& data) {}
- virtual void init(const Arabica::DOM::Element<std::string>& dataElem,
- const Arabica::DOM::Node<std::string>& node,
+ virtual void init(const xercesc::DOMElement* dataElem,
+ const xercesc::DOMNode* node,
const std::string& content) {}
virtual void init(const std::string& location, const Data& data) {}
- virtual Data getStringAsData(const std::string& content);
- virtual bool isDeclared(const std::string& expr);
+ virtual void setCallbacks(DataModelCallbacks* callbacks) {
+ _callbacks = callbacks;
+ }
- virtual void eval(const Arabica::DOM::Element<std::string>& scriptElem,
- const std::string& expr);
- virtual std::string evalAsString(const std::string& expr);
- virtual bool evalAsBool(const Arabica::DOM::Element<std::string>& node, const std::string& expr);
+ virtual void addExtension(DataModelExtension* ext) {}
+ virtual std::string andExpressions(std::list<std::string>) {
+ return "";
+ }
protected: