MarkedItemsParser.cpp
Go to the documentation of this file.00001 #include "MarkedItemsParser.h"
00002
00003 MarkedItemsParser::MarkedItemsParser()
00004 : markedFolderIdList( new IdList() ), markedVocabIdList( new IdList() ), markedTermIdListMap( new IdListMap() ) {
00005 }
00006
00007 bool MarkedItemsParser::startElement( const QString&, const QString&, const QString& qname, const QXmlAttributes& attribs ) {
00008 if( qname == QString( "folders" ) ) {
00009 QStringList folderIdList( QStringList::split( QString( "," ), attribs.value( QString( "ids" ) ) ) );
00010 for( QStringList::ConstIterator it = folderIdList.begin(); it != folderIdList.end(); it++ ) {
00011 bool isIdValid;
00012 int folderId = (*it).toInt( &isIdValid, 10 );
00013 if( isIdValid )
00014 markedFolderIdList->append( folderId );
00015 }
00016 }
00017 else if( qname == QString( "glossaries" ) ) {
00018 QStringList vocabIdList( QStringList::split( QString( "," ), attribs.value( QString( "ids" ) ) ) );
00019 for( QStringList::ConstIterator it = vocabIdList.begin(); it != vocabIdList.end(); it++ ) {
00020 bool isIdValid;
00021 int vocabId = (*it).toInt( &isIdValid, 10 );
00022 if( isIdValid )
00023 markedVocabIdList->append( vocabId );
00024 }
00025 }
00026 else if( qname == QString( "terms" ) ) {
00027 QStringList termIdList( QStringList::split( QString( "," ), attribs.value( QString( "ids" ) ) ) );
00028 bool isVocabIdValid;
00029 int vocabId = attribs.value( QString( "glossId" ) ).toInt( &isVocabIdValid, 10 );
00030 if( isVocabIdValid ) {
00031 IdList* markedTermIdList = new IdList();
00032 for( QStringList::ConstIterator it = termIdList.begin(); it != termIdList.end(); it++ ) {
00033 bool isIdValid;
00034 int termId = (*it).toInt( &isIdValid, 10 );
00035 if( isIdValid )
00036 markedTermIdList->append( termId );
00037 }
00038 markedTermIdListMap->insert( vocabId, *markedTermIdList );
00039 }
00040 }
00041 return( TRUE );
00042 }
00043
00044 IdList* MarkedItemsParser::getMarkedFolders() const {
00045 return( markedFolderIdList );
00046 }
00047
00048 IdList* MarkedItemsParser::getMarkedVocabs() const {
00049 return( markedVocabIdList );
00050 }
00051
00052 IdListMap* MarkedItemsParser::getMarkedTerms() const {
00053 return( markedTermIdListMap );
00054 }