diff 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
line wrap: on
line diff
--- a/data/fileio/SparqlRelatedMediaReader.cpp	Tue Jun 17 11:59:02 2008 +0000
+++ b/data/fileio/SparqlRelatedMediaReader.cpp	Wed Jun 18 10:38:39 2008 +0000
@@ -15,7 +15,7 @@
 
 #include <iostream>
 
-SparqlRelatedMediaReader::SparqlRelatedMediaReader(std::list<QString> *relMediaList) : 
+SparqlRelatedMediaReader::SparqlRelatedMediaReader(std::map<QString, QString> *relMediaList) : 
 	m_relMediaList(relMediaList)
 {}
 
@@ -41,10 +41,11 @@
 	return false;
 }
 
-SparqlRelatedMediaHandler::SparqlRelatedMediaHandler(std::list<QString> *relMediaList) : QXmlDefaultHandler(),
+SparqlRelatedMediaHandler::SparqlRelatedMediaHandler(std::map<QString, QString> *relMediaList) : QXmlDefaultHandler(),
 	m_relMediaList(relMediaList),
-	m_inBinding(false),
-	m_curBindingName("")
+	m_inUriBinding(false),
+	m_inLiteralBinding(false),
+	m_curUriName("")
 {}
 
 bool SparqlRelatedMediaHandler::startElement(const QString &namespaceURI, const QString &localName,
@@ -94,8 +95,12 @@
 		// nothing needed
 		ok = true;
 
-    } else if ( (name == "uri") || (name == "literal") ) {
-		m_inBinding = true;	
+    //} else if ( (name == "uri") || (name == "literal") ) {
+	} else if (name == "uri") {
+		m_inUriBinding = true;	
+		ok = true;
+	} else if (name == "literal") {
+		m_inLiteralBinding = true;	
 		ok = true;
 	}
 
@@ -112,9 +117,14 @@
 {
 	QString name = qName.toLower();
 
-	if ( (name == "uri") || (name == "literal") )
+	//if ( (name == "uri") || (name == "literal") )
+	if (name == "uri")
 	{
-		m_inBinding = false;
+		m_inUriBinding = false;
+	}
+	if (name == "literal")
+	{
+		m_inLiteralBinding = false;
 	}
 
 	return true;
@@ -122,9 +132,13 @@
 
 bool SparqlRelatedMediaHandler::characters(const QString &str)
 {
-	if (m_inBinding)
+	if (m_inUriBinding)
 	{
-		m_relMediaList->push_back(str);
+		m_curUriName = str;
+		
+	} else if (m_inLiteralBinding)
+	{
+		m_relMediaList->insert(std::make_pair(m_curUriName,str));
 	}
 
     return true;