diff options
author | Stefan Radomski <github@mintwerk.de> | 2016-05-12 13:12:33 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2016-05-12 13:12:33 (GMT) |
commit | b62e7979600feee23dc7cdb61042a8fc7673122b (patch) | |
tree | f7351372f37979dd2d048e0b68a16a4cd3b2aadb /src/uscxml/plugins/datamodel/null | |
parent | 1b11b310be61e51b3ac5ebb83f7c8a33aef3d6e8 (diff) | |
download | uscxml-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.cpp | 60 | ||||
-rw-r--r-- | src/uscxml/plugins/datamodel/null/NULLDataModel.h | 65 |
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: |