# HG changeset patch # User Chris Cannam # Date 1337450272 -3600 # Node ID 11289d40a57afa5a6d7c6138a4f44e29516da261 # Parent f2de9a42830ef2b5248bed47d62bdd7d08b6afdb Finish converting RDFTransformFactory diff -r f2de9a42830e -r 11289d40a57a rdf/RDFTransformFactory.cpp --- a/rdf/RDFTransformFactory.cpp Sat May 19 12:50:36 2012 +0100 +++ b/rdf/RDFTransformFactory.cpp Sat May 19 18:57:52 2012 +0100 @@ -299,43 +299,36 @@ RDFTransformFactoryImpl::setParameters(Transform &transform, QString transformUri) { - SimpleSPARQLQuery paramQuery - (SimpleSPARQLQuery::QueryFromModel, - QString - ( - " PREFIX vamp: " - - " SELECT ?param_id ?param_value " - - " WHERE { " - " <%1> vamp:parameter_binding ?binding . " - " ?binding vamp:parameter ?param ; " - " vamp:value ?param_value . " - " ?param vamp:identifier ?param_id " - " } " - ) - .arg(transformUri)); + Nodes bindings = m_store->match + (Triple(Uri(transformUri), "vamp:parameter_binding", Node())).c(); - SimpleSPARQLQuery::ResultList paramResults = paramQuery.execute(); - - if (!paramQuery.isOK()) { - m_errorString = paramQuery.getErrorString(); - return false; - } - - if (paramQuery.wasCancelled()) { - m_errorString = "Query cancelled"; - return false; - } - - for (int j = 0; j < paramResults.size(); ++j) { + foreach (Node binding, bindings) { + + Node paramNode = m_store->matchFirst + (Triple(binding, "vamp:parameter", Node())).c; + + if (paramNode == Node()) { + cerr << "RDFTransformFactoryImpl::setParameters: No vamp:parameter for binding " << binding << endl; + continue; + } + + Node valueNode = m_store->matchFirst + (Triple(binding, "vamp:value", Node())).c; + + if (paramNode == Node()) { + cerr << "RDFTransformFactoryImpl::setParameters: No vamp:value for binding " << binding << endl; + continue; + } + + Node idNode = m_store->matchFirst + (Triple(paramNode, "vamp:identifier", Node())).c; - QString paramId = paramResults[j]["param_id"].value; - QString paramValue = paramResults[j]["param_value"].value; + if (idNode == Node()) { + cerr << "RDFTransformFactoryImpl::setParameters: No vamp:identifier for parameter " << paramNode << endl; + continue; + } - if (paramId == "" || paramValue == "") continue; - - transform.setParameter(paramId, paramValue.toFloat()); + transform.setParameter(idNode.value, valueNode.value.toFloat()); } return true; diff -r f2de9a42830e -r 11289d40a57a svcore.pro --- a/svcore.pro Sat May 19 12:50:36 2012 +0100 +++ b/svcore.pro Sat May 19 18:57:52 2012 +0100 @@ -235,15 +235,13 @@ rdf/RDFExporter.h \ rdf/RDFFeatureWriter.h \ rdf/RDFImporter.h \ - rdf/RDFTransformFactory.h \ - rdf/SimpleSPARQLQuery.h + rdf/RDFTransformFactory.h SOURCES += rdf/PluginRDFIndexer.cpp \ rdf/PluginRDFDescription.cpp \ rdf/RDFExporter.cpp \ rdf/RDFFeatureWriter.cpp \ rdf/RDFImporter.cpp \ - rdf/RDFTransformFactory.cpp \ - rdf/SimpleSPARQLQuery.cpp + rdf/RDFTransformFactory.cpp HEADERS += system/Init.h \ system/System.h