diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-04-19 22:28:19 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-04-19 22:28:19 (GMT) |
commit | 26609f8b8097b21e952835e7064bc938c8542d93 (patch) | |
tree | 7c46a7329b3a9be8a02bf7f7c53ede098b853751 /src/uscxml/plugins/datamodel/xpath/XPathDataModel.h | |
parent | 8101d4c77c6babf125dbe8d4a40f1b2a72a70376 (diff) | |
download | uscxml-26609f8b8097b21e952835e7064bc938c8542d93.zip uscxml-26609f8b8097b21e952835e7064bc938c8542d93.tar.gz uscxml-26609f8b8097b21e952835e7064bc938c8542d93.tar.bz2 |
Started with xpath datamodel tests
Diffstat (limited to 'src/uscxml/plugins/datamodel/xpath/XPathDataModel.h')
-rw-r--r-- | src/uscxml/plugins/datamodel/xpath/XPathDataModel.h | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/uscxml/plugins/datamodel/xpath/XPathDataModel.h b/src/uscxml/plugins/datamodel/xpath/XPathDataModel.h index 7df3918..391af0b 100644 --- a/src/uscxml/plugins/datamodel/xpath/XPathDataModel.h +++ b/src/uscxml/plugins/datamodel/xpath/XPathDataModel.h @@ -55,9 +55,13 @@ public: void setVariable(const std::string& name, const Arabica::XPath::NodeSet<std::string>& value) { _variables[name] = value; } - + bool isDeclared(const std::string& name) { + return _variables.find(name) != _variables.end(); + } + private: std::map<std::string, Arabica::XPath::NodeSet<std::string> > _variables; + friend class XPathDataModel; }; class XPathDataModel : public DataModelImpl { @@ -105,19 +109,30 @@ protected: Arabica::DOM::Element<std::string> _datamodel; Arabica::DOM::Document<std::string> _doc; - void assign(Arabica::XPath::XPathValue<std::string>& key, + // resolve value to its type + void assign(const Arabica::XPath::XPathValue<std::string>& key, const Arabica::XPath::XPathValue<std::string>& value, const Arabica::DOM::Element<std::string>& assignElem); - void assign(Arabica::XPath::XPathValue<std::string>& key, + void assign(const Arabica::XPath::XPathValue<std::string>& key, + const Arabica::XPath::NodeSet<std::string>& value, + const Arabica::DOM::Element<std::string>& assignElem); + + // assign value to a nodeset key + void assign(const Arabica::XPath::NodeSet<std::string>& key, const std::string& value, const Arabica::DOM::Element<std::string>& assignElem); - void assign(Arabica::XPath::XPathValue<std::string>& key, + void assign(const Arabica::XPath::NodeSet<std::string>& key, const double value, const Arabica::DOM::Element<std::string>& assignElem); - void assign(Arabica::XPath::XPathValue<std::string>& key, + void assign(const Arabica::XPath::NodeSet<std::string>& key, const bool value, const Arabica::DOM::Element<std::string>& assignElem); - void assign(Arabica::XPath::XPathValue<std::string>& key, + void assign(const Arabica::XPath::NodeSet<std::string>& key, + const Arabica::XPath::NodeSet<std::string>& value, + const Arabica::DOM::Element<std::string>& assignElem); + + // assign value to an element key (from nodeset) + void assign(const Arabica::DOM::Element<std::string>& key, const Arabica::XPath::NodeSet<std::string>& value, const Arabica::DOM::Element<std::string>& assignElem); |