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
00104 virtual Holiday::List parseHolidays( const QDate &startDate, const QDate &endDate,
00105 Holiday::MultidayMode multidayMode );
00106
00116 virtual Holiday::List parseHolidays( const QDate &date, Holiday::MultidayMode multidayMode );
00117
00129 virtual Holiday::List parseHolidays( int calendarYear, const QString &calendarType,
00130 Holiday::MultidayMode multidayMode );
00131
00137 virtual void error( const QString &errorMessage );
00138
00139 protected:
00143 virtual void parse();
00144
00148 virtual void parseMetadata();
00149
00155 virtual void setParseCalendar( const QString &calendarType );
00156
00160 virtual void setParseStartEnd();
00161
00162 QString m_filePath;
00163
00164 QString m_fileCountryCode;
00165 QString m_fileLanguageCode;
00166 QString m_fileName;
00167 QString m_fileDescription;
00168
00169 QDate m_requestStart;
00170 QDate m_requestEnd;
00171
00172 Holiday::List m_resultList;
00173
00174 KCalendarSystem *m_parseCalendar;
00175 int m_parseYear;
00176 int m_parseStartYear;
00177 int m_parseEndYear;
00178
00179 Holiday::MultidayMode m_multidayMode;
00180 };
00181
00182 }
00183
00184 #endif // KHOLIDAYS_HOLIDAYPARSERDRIVER_P_H