From b1d0c86db891dabb77fbc9655e7e5d5740ccf701 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 8 Sep 2007 01:11:31 +0000 Subject: Pretty RDF boolean reading. git-svn-id: http://svn.drobilla.net/lad/raul@699 a436a847-0d15-0410-975c-d299462d15a1 --- src/RDFNode.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/RDFNode.cpp') diff --git a/src/RDFNode.cpp b/src/RDFNode.cpp index afba06c..a4c672f 100644 --- a/src/RDFNode.cpp +++ b/src/RDFNode.cpp @@ -134,6 +134,29 @@ Node::to_float() return strtod((const char*)librdf_node_get_literal_value(_node), NULL); } +bool +Node::is_bool() +{ + if (_node && librdf_node_get_type(_node) == LIBRDF_NODE_TYPE_LITERAL) { + librdf_uri* datatype_uri = librdf_node_get_literal_value_datatype_uri(_node); + if (datatype_uri && !strcmp((const char*)librdf_uri_as_string(datatype_uri), + "http://www.w3.org/2001/XMLSchema#boolean")) + return true; + } + return false; +} + + +float +Node::to_bool() +{ + assert(is_bool()); + if (!strcmp((const char*)librdf_node_get_literal_value(_node), "true")) + return true; + else + return false; +} + } // namespace RDF } // namespace Raul -- cgit v1.2.1