comparison data/fileio/AudioSourceInfoReader.cpp @ 90:87495ac7710a

support audio source info from boca
author lbajardsilogic
date Thu, 28 Jun 2007 16:57:29 +0000
parents 11e298cdb9e7
children ec2ca3fbd957
comparison
equal deleted inserted replaced
89:4fd3274908a5 90:87495ac7710a
41 } 41 }
42 42
43 return false; 43 return false;
44 } 44 }
45 45
46 AudioSourceInfoHandler::AudioSourceInfoHandler(AudioSourceInfoModel* model) : QXmlDefaultHandler() 46 AudioSourceInfoHandler::AudioSourceInfoHandler(AudioSourceInfoModel* model) : QXmlDefaultHandler(),
47 { 47 m_model(model),
48 m_model = model; 48 m_inBinding(false),
49 } 49 m_curBindingName("")
50 {}
50 51
51 bool AudioSourceInfoHandler::startElement(const QString &namespaceURI, const QString &localName, 52 bool AudioSourceInfoHandler::startElement(const QString &namespaceURI, const QString &localName,
52 const QString &qName, const QXmlAttributes &attributes) 53 const QString &qName, const QXmlAttributes &attributes)
53 { 54 {
54 QString name = qName.toLower(); 55 /*QString name = qName.toLower();
55 bool ok = false; 56 bool ok = false;
56 57
57 // Valid element names: 58 // Valid element names:
58 // easaierResource 59 // easaierResource
59 // dc:identifier 60 // dc:identifier
75 if (!ok) { 76 if (!ok) {
76 std::cerr << "WARNING: connexion config-XML: Failed to completely process element \"" 77 std::cerr << "WARNING: connexion config-XML: Failed to completely process element \""
77 << name.toLocal8Bit().data() << "\"" << std::endl; 78 << name.toLocal8Bit().data() << "\"" << std::endl;
78 } 79 }
79 80
81 return true;*/
82 QString name = qName.toLower();
83
84 bool ok = false;
85
86 // Valid element names:
87 //
88 // sparql
89 // head
90 // variable
91 // results
92 // result
93 // binding
94
95 if (name == "sparql") {
96
97 // nothing needed
98 ok = true;
99
100 } else if (name == "head") {
101
102 // nothing needed
103 ok = true;
104
105 } else if (name == "variable") {
106
107 // nothing needed
108 ok = true;
109
110 } else if (name == "results") {
111
112 // nothing needed
113 ok = true;
114
115 } else if (name == "result") {
116
117 ok = true;
118
119 } else if (name == "binding") {
120
121 m_curBindingName = attributes.value("name");
122 ok = true;
123
124 } else if ( (name == "uri") || (name == "literal") ) {
125 m_inBinding = true;
126 ok = true;
127 }
128
129 if (!ok) {
130 std::cerr << "WARNING: SparqlResultsHandler-XML: Failed to completely process element \""
131 << name.toLocal8Bit().data() << "\"" << std::endl;
132 }
133
80 return true; 134 return true;
81 } 135 }
82 136
83 bool AudioSourceInfoHandler::endElement(const QString &namespaceURI, const QString &localName, 137 bool AudioSourceInfoHandler::endElement(const QString &namespaceURI, const QString &localName,
84 const QString &qName) 138 const QString &qName)
85 { 139 {
140 QString name = qName.toLower();
141
142 if ( (name == "uri") || (name == "literal") )
143 {
144 m_inBinding = false;
145 m_curBindingName = "";
146
147 } else if (name == "result")
148 {
149 m_model->addInfo(m_property, m_value);
150 }
151
86 return true; 152 return true;
87 } 153 }
88 154
89 bool AudioSourceInfoHandler::characters(const QString &str) 155 bool AudioSourceInfoHandler::characters(const QString &str)
90 { 156 {
91 return true; 157 if (m_inBinding)
158 {
159 if (m_curBindingName == "value")
160 {
161 m_value = str;
162 }
163 else if (m_curBindingName == "property")
164 {
165 m_property = str;
166 }
167 else
168 {
169 m_model->addInfo(m_curBindingName, str);
170 }
171 }
172
173 return true;
92 } 174 }
93 175
94 bool AudioSourceInfoHandler::error(const QXmlParseException &exception) 176 bool AudioSourceInfoHandler::error(const QXmlParseException &exception)
95 { 177 {
96 QString errorString; 178 QString errorString;