00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KHOLIDAYS_HOLIDAYPARSERDRIVER_P_H
00023 #define KHOLIDAYS_HOLIDAYPARSERDRIVER_P_H
00024
00025 #include <QDate>
00026 #include <QString>
00027
00028 #include "holiday.h"
00029
00030 class KCalendarSystem;
00031
00032 namespace KHolidays {
00033
00044 class HolidayParserDriver
00045 {
00046 public:
00047
00054 explicit HolidayParserDriver( const QString &filePath );
00055
00059 virtual ~HolidayParserDriver();
00060
00069 virtual QString fileCountryCode() const;
00070
00079 virtual QString fileLanguageCode() const;
00080
00086 virtual QString fileName() const;
00087
00093 virtual QString fileDescription() const;
00094
00103 virtual Holiday::List parseHolidays( const QDate &startDate, const QDate &endDate );
00104
00113 virtual Holiday::List parseHolidays( const QDate &date );
00114
00125 virtual Holiday::List parseHolidays( int calendarYear, const QString &calendarType );
00126
00132 virtual void error( const QString &errorMessage );
00133
00134 protected:
00138 virtual void parse();
00139
00143 virtual void parseMetadata();
00144
00150 virtual void setParseCalendar( const QString &calendarType );
00151
00155 virtual void setParseStartEnd();
00156
00157 QString m_filePath;
00158
00159 QString m_fileCountryCode;
00160 QString m_fileLanguageCode;
00161 QString m_fileName;
00162 QString m_fileDescription;
00163
00164 QDate m_requestStart;
00165 QDate m_requestEnd;
00166
00167 Holiday::List m_resultList;
00168
00169 KCalendarSystem *m_parseCalendar;
00170 int m_parseYear;
00171 int m_parseStartYear;
00172 int m_parseEndYear;
00173 };
00174
00175 }
00176
00177 #endif // KHOLIDAYS_HOLIDAYPARSERDRIVER_P_H