Mercurial > hg > easaier-soundaccess
view data/fileio/SparqlResultsHandler.cpp @ 279:427272bfec3b
missing files
author | benoitrigolleau |
---|---|
date | Tue, 21 Oct 2008 15:17:16 +0000 |
parents | |
children |
line wrap: on
line source
#include "SparqlResultsHandler.h" #include <iostream> #include <windows.h> SparqlResultsHandler::SparqlResultsHandler() : QXmlDefaultHandler(), m_inBinding(false), m_curBindingName("") {} bool SparqlResultsHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes) { QString name = qName.toLower(); bool ok = false; // Valid element names: // // sparql // head // variable // results // result // binding if (name == "sparql") { // nothing needed ok = true; } else if (name == "head") { // nothing needed ok = true; } else if (name == "variable") { // nothing needed ok = true; } else if (name == "results") { // nothing needed ok = true; } else if (name == "result") { emit(newResultDetected()); ok = true; } else if (name == "binding") { m_curBindingName = attributes.value("name"); ok = true; } else if ( (name == "uri") || (name == "literal") ) { m_inBinding = true; ok = true; } if (!ok) { std::cerr << "WARNING: SparqlResultsHandler-XML: Failed to completely process element \"" << name.toLocal8Bit().data() << "\"" << std::endl; } return true; } bool SparqlResultsHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName) { QString name = qName.toLower(); if ( (name == "uri") || (name == "literal") ) { m_inBinding = false; m_curBindingName = ""; } else if (name == "result") { /*m_resultsWidget->addInfo("composer", m_composer); m_resultsWidget->addInfo("arranger", m_arranger); m_composer.clear(); m_arranger.clear(); m_composer.append(" -"); m_arranger.append(" -");*/ //Sleep(500); emit endOfResultDetected(); } return true; } bool SparqlResultsHandler::characters(const QString &str) { if (m_inBinding) { /*if (m_curBindingName.contains("composer")) { m_composer.append(" " + str); } else if (m_curBindingName.contains("arranger")) { m_arranger.append(" " + str); } else {*/ emit newInfoResultDetected(m_curBindingName,str); //} } return true; } bool SparqlResultsHandler::error(const QXmlParseException &exception) { QString errorString; errorString += QString("ERROR: SparqlResultsHandler-XML: %1 at line %2, column %3") .arg(exception.message()) .arg(exception.lineNumber()) .arg(exception.columnNumber()); std::cerr << errorString.toLocal8Bit().data() << std::endl; return QXmlDefaultHandler::error(exception); } bool SparqlResultsHandler::fatalError(const QXmlParseException &exception) { QString errorString; errorString += QString("FATAL ERROR: SparqlResultsHandler-XML: %1 at line %2, column %3") .arg(exception.message()) .arg(exception.lineNumber()) .arg(exception.columnNumber()); std::cerr << errorString.toLocal8Bit().data() << std::endl; return QXmlDefaultHandler::fatalError(exception); } bool SparqlResultsHandler::endDocument(){ emit endOfDocumentDetected(); return true; }