[Sv1-commits] SF.net SVN: sv1: [1137] sonic-visualiser/branches/rdf-import/rdf/ RDFTransformFactory
Brought to you by:
cannam
From: <ca...@us...> - 2008-06-25 12:59:46
|
Revision: 1137 http://sv1.svn.sourceforge.net/sv1/?rev=1137&view=rev Author: cannam Date: 2008-06-25 05:59:43 -0700 (Wed, 25 Jun 2008) Log Message: ----------- * Support transform output specifier using output URI Modified Paths: -------------- sonic-visualiser/branches/rdf-import/rdf/RDFTransformFactory.cpp Modified: sonic-visualiser/branches/rdf-import/rdf/RDFTransformFactory.cpp =================================================================== --- sonic-visualiser/branches/rdf-import/rdf/RDFTransformFactory.cpp 2008-06-25 12:54:31 UTC (rev 1136) +++ sonic-visualiser/branches/rdf-import/rdf/RDFTransformFactory.cpp 2008-06-25 12:59:43 UTC (rev 1137) @@ -50,6 +50,7 @@ protected: QString m_urlString; QString m_errorString; + bool setOutput(Transform &, QString, QString); bool setParameters(Transform &, QString, QString); }; @@ -181,9 +182,9 @@ Transform transform; transform.setPluginIdentifier(pluginId); - - if (result["output"].type == SimpleSPARQLQuery::LiteralValue) { - transform.setOutput(result["output"].value); + + if (!setOutput(transform, transformUri, pluginDescriptionURL)) { + return transforms; } if (result["program"].type == SimpleSPARQLQuery::LiteralValue) { @@ -231,6 +232,51 @@ } bool +RDFTransformFactoryImpl::setOutput(Transform &transform, + QString transformUri, + QString pluginDescriptionURL) +{ + SimpleSPARQLQuery outputQuery + (QString + ( + " PREFIX vamp: <http://purl.org/ontology/vamp/> " + + " SELECT ?output_id " + + " FROM <%1> " + " FROM <%2> " + + " WHERE { " + " <%3> vamp:output ?output . " + " ?output vamp:identifier ?output_id " + " } " + ) + .arg(m_urlString) + .arg(pluginDescriptionURL) + .arg(transformUri)); + + SimpleSPARQLQuery::ResultList outputResults = outputQuery.execute(); + + if (!outputQuery.isOK()) { + m_errorString = outputQuery.getErrorString(); + return false; + } + + if (outputQuery.wasCancelled()) { + m_errorString = "Query cancelled"; + return false; + } + + for (int j = 0; j < outputResults.size(); ++j) { + QString outputId = outputResults[j]["output_id"].value; + transform.setOutput(outputId); + } + + return true; +} + + +bool RDFTransformFactoryImpl::setParameters(Transform &transform, QString transformUri, QString pluginDescriptionURL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |