comparison data/fileio/SparqlRelatedMediaReader.cpp @ 257:057856cf81a2

reformat the InfoWidget and integrate the related media query
author lbajardsilogic
date Wed, 18 Jun 2008 10:38:39 +0000
parents 97fd6148fb8e
children
comparison
equal deleted inserted replaced
256:6eeb195adbb4 257:057856cf81a2
13 13
14 #include "SparqlRelatedMediaReader.h" 14 #include "SparqlRelatedMediaReader.h"
15 15
16 #include <iostream> 16 #include <iostream>
17 17
18 SparqlRelatedMediaReader::SparqlRelatedMediaReader(std::list<QString> *relMediaList) : 18 SparqlRelatedMediaReader::SparqlRelatedMediaReader(std::map<QString, QString> *relMediaList) :
19 m_relMediaList(relMediaList) 19 m_relMediaList(relMediaList)
20 {} 20 {}
21 21
22 bool SparqlRelatedMediaReader::parse(const QString & filename) 22 bool SparqlRelatedMediaReader::parse(const QString & filename)
23 { 23 {
39 } 39 }
40 40
41 return false; 41 return false;
42 } 42 }
43 43
44 SparqlRelatedMediaHandler::SparqlRelatedMediaHandler(std::list<QString> *relMediaList) : QXmlDefaultHandler(), 44 SparqlRelatedMediaHandler::SparqlRelatedMediaHandler(std::map<QString, QString> *relMediaList) : QXmlDefaultHandler(),
45 m_relMediaList(relMediaList), 45 m_relMediaList(relMediaList),
46 m_inBinding(false), 46 m_inUriBinding(false),
47 m_curBindingName("") 47 m_inLiteralBinding(false),
48 m_curUriName("")
48 {} 49 {}
49 50
50 bool SparqlRelatedMediaHandler::startElement(const QString &namespaceURI, const QString &localName, 51 bool SparqlRelatedMediaHandler::startElement(const QString &namespaceURI, const QString &localName,
51 const QString &qName, const QXmlAttributes &attributes) 52 const QString &qName, const QXmlAttributes &attributes)
52 { 53 {
92 } else if (name == "binding") { 93 } else if (name == "binding") {
93 94
94 // nothing needed 95 // nothing needed
95 ok = true; 96 ok = true;
96 97
97 } else if ( (name == "uri") || (name == "literal") ) { 98 //} else if ( (name == "uri") || (name == "literal") ) {
98 m_inBinding = true; 99 } else if (name == "uri") {
100 m_inUriBinding = true;
101 ok = true;
102 } else if (name == "literal") {
103 m_inLiteralBinding = true;
99 ok = true; 104 ok = true;
100 } 105 }
101 106
102 if (!ok) { 107 if (!ok) {
103 std::cerr << "WARNING: SparqlResultsHandler-XML: Failed to completely process element \"" 108 std::cerr << "WARNING: SparqlResultsHandler-XML: Failed to completely process element \""
110 bool SparqlRelatedMediaHandler::endElement(const QString &namespaceURI, const QString &localName, 115 bool SparqlRelatedMediaHandler::endElement(const QString &namespaceURI, const QString &localName,
111 const QString &qName) 116 const QString &qName)
112 { 117 {
113 QString name = qName.toLower(); 118 QString name = qName.toLower();
114 119
115 if ( (name == "uri") || (name == "literal") ) 120 //if ( (name == "uri") || (name == "literal") )
121 if (name == "uri")
116 { 122 {
117 m_inBinding = false; 123 m_inUriBinding = false;
124 }
125 if (name == "literal")
126 {
127 m_inLiteralBinding = false;
118 } 128 }
119 129
120 return true; 130 return true;
121 } 131 }
122 132
123 bool SparqlRelatedMediaHandler::characters(const QString &str) 133 bool SparqlRelatedMediaHandler::characters(const QString &str)
124 { 134 {
125 if (m_inBinding) 135 if (m_inUriBinding)
126 { 136 {
127 m_relMediaList->push_back(str); 137 m_curUriName = str;
138
139 } else if (m_inLiteralBinding)
140 {
141 m_relMediaList->insert(std::make_pair(m_curUriName,str));
128 } 142 }
129 143
130 return true; 144 return true;
131 } 145 }
132 146