diff options
Diffstat (limited to 'kradio3/src/stationlistxmlhandler.cpp')
-rw-r--r-- | kradio3/src/stationlistxmlhandler.cpp | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/kradio3/src/stationlistxmlhandler.cpp b/kradio3/src/stationlistxmlhandler.cpp deleted file mode 100644 index 04e9d6f..0000000 --- a/kradio3/src/stationlistxmlhandler.cpp +++ /dev/null @@ -1,230 +0,0 @@ -/*************************************************************************** - StationListXmlHandler.cpp - description - ------------------- - begin : Son Jan 12 2003 - copyright : (C) 2003 by Martin Witte - email : witte@kawo1.rwth-aachen.de - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include "include/stationlistxmlhandler.h" -#include <klocale.h> - -const char *TDERadioConfigElement = "kradiorc"; - -const char *StationListElement = "stationlist"; -const char *compatStationElement = "station"; - -const char *StationListInfo = "info"; -const char *StationListInfoMaintainer = "maintainer"; -const char *StationListInfoCountry = "country"; -const char *StationListInfoCity = "city"; -const char *StationListInfoMedia = "media"; -const char *StationListInfoComments = "comments"; -const char *StationListInfoChanged = "changed"; -const char *StationListInfoCreator = "creator"; - -const char *StationListFormat = "format"; - - -StationListXmlHandler::StationListXmlHandler (const IErrorLogClient &logger) - : m_logger(logger), - m_compatMode (false) -{ - m_newStation = NULL; -} - - -StationListXmlHandler::~StationListXmlHandler () -{ -} - - -bool StationListXmlHandler::startDocument () -{ - m_status.clear(); - - m_stations.clear(); - clearNewStation(); - - return true; -} - - - -#define START_ELEMENT_ERROR m_logger.logError("StationListXmlHandler::startElement: " + \ - i18n("misplaced element %1") \ - .arg(qname));\ - return false; - -bool StationListXmlHandler::startElement (const TQString &/*ns*/, const TQString &/*localname*/, - const TQString& _qname, const TQXmlAttributes &) -{ - TQString qname = _qname; - if (qname == TDERadioConfigElement) { - if (m_status.size()) { START_ELEMENT_ERROR } - - // station list - } else if (qname == StationListElement) { - if (!m_status.size() || m_status.back() != TDERadioConfigElement) { START_ELEMENT_ERROR } - m_stations.clear(); - clearNewStation(); - - } else if (qname == StationListFormat) { - if (!m_status.size() || m_status.back() != StationListElement) { START_ELEMENT_ERROR } - - } else if (qname == StationListInfo) { - if (!m_status.size() || m_status.back() != StationListElement) { START_ELEMENT_ERROR } - - } else if (qname == StationListInfoMaintainer || - qname == StationListInfoCountry || - qname == StationListInfoCity || - qname == StationListInfoMedia || - qname == StationListInfoComments || - qname == StationListInfoChanged || - qname == StationListInfoCreator - ) - { - if (!m_status.size() || m_status.back() != StationListInfo) { START_ELEMENT_ERROR } - - } else if (!m_newStation && m_status.size() && m_status.back() == StationListElement) { - - if (qname == compatStationElement) { - qname = "FrequencyRadioStation"; - m_compatMode = true; - } - - const RadioStation *x = RadioStation::getStationClass(qname); - m_newStation = x ? x->copy() : NULL; - - if (!m_newStation) { START_ELEMENT_ERROR } - - } else if (m_newStation && m_status.size() && m_status.back() == m_newStation->getClassName()) { - - // check done later when characters arrive - - } else { // unknown - m_logger.logWarning("StationListXmlHandler::startElement: " + - i18n("unknown or unexpected element %1").arg(qname)); - } - - m_status.push_back(qname); - return true; -} - - -bool StationListXmlHandler::endElement (const TQString &/*ns*/, const TQString &/*localname*/, - const TQString &_qname) -{ - TQString qname = _qname; - if (qname == compatStationElement) { - qname = "FrequencyRadioStation"; - m_compatMode = true; - } - - if (m_status.size() && m_status.back() == qname) { - - if (m_newStation && qname == m_newStation->getClassName()) { - m_stations.append(m_newStation); - clearNewStation(); - } - - m_status.pop_back(); - - } else { - if (m_status.size()) { - m_logger.logError("StationListXmlHandler::endElement: " + - i18n("expected element %1, but found %2") - .arg(m_status.back()).arg(qname)); - } else { - m_logger.logError("StationListXmlHandler::endElement: " + - i18n("unexpected element %1").arg(qname)); - } - } - return true; -} - - -#define CHARACTERS_ERROR m_logger.logError("StationListXmlHandler::characters: " + \ - i18n("invalid data for element %1") \ - .arg(stat)); \ - return false; - -bool StationListXmlHandler::characters (const TQString &ch) -{ - TQString stat = m_status.back(); - TQString str = ch.stripWhiteSpace(); - - // Station parsing - - // information on list - if (stat == StationListFormat) { - - if (str != STATION_LIST_FORMAT) { - m_logger.logError(i18n("found a station list with unknown format %1").arg(str)); - return false; - } - - } else if (stat == StationListInfo) { - - } else if (stat == StationListInfoMaintainer) { - - m_metaData.maintainer = str; - - } else if (stat == StationListInfoCountry) { - - m_metaData.country = str; - - } else if (stat == StationListInfoCity) { - - m_metaData.city = str; - - } else if (stat == StationListInfoMedia) { - - m_metaData.media = str; - - } else if (stat == StationListInfoComments) { - - m_metaData.comment = str; - - } else if (stat == StationListInfoChanged) { - - m_metaData.lastChange = TQDateTime::fromString(str, Qt::ISODate); - - } else if (stat == StationListInfoCreator) { - - // do nothing - - // stations - - } else if (m_newStation && m_newStation->getClassName() != stat) { - - if (!m_newStation->setProperty(stat, str)) { - m_logger.logWarning("StationListXmlHandler::characters: " + - i18n("unknown property %1 for class %2") - .arg(stat) - .arg(m_newStation->getClassName())); - } - - } else if (str.length()) { - m_logger.logError("StationListXmlHandler::characters: " + - i18n("characters ignored for element %1").arg(stat)); - } - return true; -} - - -void StationListXmlHandler::clearNewStation() -{ - if (m_newStation) - delete m_newStation; - m_newStation = NULL; -} |