diff options
Diffstat (limited to 'libkcal/calendarnull.h')
-rw-r--r-- | libkcal/calendarnull.h | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/libkcal/calendarnull.h b/libkcal/calendarnull.h new file mode 100644 index 000000000..6f27ed52a --- /dev/null +++ b/libkcal/calendarnull.h @@ -0,0 +1,309 @@ +/* + This file is part of libkcal. + + Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +/* + @file calendarnull.h + A null calendar class with does nothing. + + @author Cornelius Schumacher +*/ +#ifndef KCAL_CALENDARNULL_H +#define KCAL_CALENDARNULL_H + +#include "calendar.h" +#include "libkcal_export.h" + +class KConfig; + +/** + @namespace KCal + Namespace KCal is for global classes, objects and/or functions in libkcal. +*/ +namespace KCal { + +/** + @class CalendarNull + + This is a null calendar class which does nothing. It can be passed to + functions which need a calendar object when there actually isn't a real + calendar yet. CalendarNull can be used to implement the null object + design pattern. Instead of passing a 0 pointer and checking for 0 with + each access a CalendarNull object can be passed. +*/ +class LIBKCAL_EXPORT CalendarNull : public Calendar +{ + public: + /** + Constructor. + */ + CalendarNull( const QString &timeZoneId ); + + /** + Destructor. + */ + ~CalendarNull() {} + + /** + Returns a pointer to a CalendarNull object, which is constructed + if necessary. + */ + static CalendarNull *self(); + + /** + Clears out the current Calendar, freeing all used memory etc. + */ + void close() {} + + /** + Sync changes in memory to persistant storage. + */ + void save() {} + + bool reload( const QString & ) { return true;} + +// Event Specific Methods // + + /** + Insert an Evenet into the Calendar. + + First parameter is a pointer to the Event to insert. + + Returns false. + */ + bool addEvent( Event * /*event*/ ) + { return false; } + + /** + Remove an Event from the Calendar. + + First parameter is a pointer to the Event to remove. + + Returns false. + */ + bool deleteEvent( Event * /*event*/ ) + { return false; } + + /** + Return a sorted, unfiltered list of all Events for this Calendar. + + First parameter specifies the EventSortField.\n + Second parameter specifies the SortDirection. + + Returns an empty Event List. + */ + Event::List rawEvents( EventSortField /*sortField*/, + SortDirection /*sortDirection*/ ) + { return Event::List(); } + + /** + Return an unfiltered list of all Events occurring within a date range. + + First parameter is the starting date.\n + Second parameter is the ending date.\n + Third parameter, if true, specifies that only Events which are + completely included within the date range are returned. + + Returns an empty Event List. + */ + Event::List rawEvents( const QDate & /*start*/, const QDate & /*end*/, + bool /*inclusive*/ ) + { return Event::List(); } + + /** + Return an unfiltered list of all Events which occur on the given + timestamp. + + First parameter is a QDateTime to return unfiltered events for. + + Returns an empty Event List. + */ + Event::List rawEventsForDate( const QDateTime & /*qdt*/ ) + { return Event::List(); } + + /** + Return a sorted, unfiltered list of all Events which occur on the given + date. The Events are sorted according to @a sortField and + @a sortDirection. + + First parameter is a QDate to return unfiltered Events for.\n + Second parameter specifies the EventSortField.\n + Third parameter specifies the SortDirection. + + Returns an empty Event List. + */ + Event::List rawEventsForDate( + const QDate & /*date*/, + EventSortField /*sortField=EventSortUnsorted*/, + SortDirection /*sortDirection=SortDirectionAscending*/ ) + { return Event::List(); } + + /** + Returns the Event associated with the given unique identifier. + + First parameter is a unique identifier string. + + Return a null Event pointer. + */ + Event *event( const QString & /*uid*/ ) + { return 0; } + +// Todo Specific Methods // + + /** + Insert a Todo into the Calendar. + + First parameter is a pointer to the Todo to insert. + + Returns false. + */ + bool addTodo( Todo * /*todo*/ ) + { return false; } + + /** + Remove a Todo from the Calendar. + + First parameter is a pointer to the Todo to remove. + + Returns false. + */ + bool deleteTodo( Todo * /*todo*/ ) + { return false; } + + /** + Return a sorted, unfiltered list of all Todos for this Calendar. + + First parameter specifies the TodoSortField.\n + Second parameter specifies the SortDirection. + + Returns an empty Todo List. + */ + Todo::List rawTodos( TodoSortField /*sortField*/, + SortDirection /*sortDirection*/ ) + { return Todo::List(); } + + /** + Return an unfiltered list of all Todos for this Calendar which + are due on the specifed date. + + First parameter is the due date to return unfiltered Todos for. + + Returns an empty Todo List. + */ + Todo::List rawTodosForDate( const QDate & /*date*/ ) + { return Todo::List(); } + + /** + Returns the Todo associated with the given unique identifier. + + First parameter is a unique identifier string. + + Returns a null Todo pointer. + */ + Todo *todo( const QString & /*uid*/ ) + { return 0; } + +// Journal Specific Methods // + + /** + Insert a Journal into the Calendar. + + First parameter is a pointer to the Journal to insert. + + Returns false. + */ + bool addJournal( Journal * /*journal*/ ) + { return false; } + + /** + Remove a Journal from the Calendar. + + First parameter is a pointer to the Journal to remove. + + Returns false. + */ + bool deleteJournal( Journal * /*journal*/ ) + { return false; } + + /** + Return a sorted, filtered list of all Journals for this Calendar. + + First parameter specifies the JournalSortField.\n + Second parameterd specifies the SortDirection. + + Returns an empty Journal List. + */ + Journal::List rawJournals( JournalSortField /*sortField*/, + SortDirection /*sortDirection*/ ) + { return Journal::List(); } + + /** + Return an unfiltered list of all Journals for on the specifed date. + + First parameter specifies the data to return the unfiltered Journals for. + + Returns an empty Journal List. + */ + Journal::List rawJournalsForDate( const QDate & /*date*/ ) + { return Journal::List(); } + + /** + Returns the Journal associated with the given unique identifier. + + First parameter is a unique identifier string. + + Returns an null Journal pointer. + */ + Journal *journal( const QString & /*uid*/ ) + { return 0; } + +// Alarm Specific Methods // + + /** + Return a list of Alarms within a time range for this Calendar. + + First parameter is the starting timestamp.\n + Second parameter is the ending timestamp. + + Returns an empty Alarm List. + */ + + Alarm::List alarms( const QDateTime & /*from*/, const QDateTime & /*to*/ ) + { return Alarm::List(); } + +// Observer Specific Methods // + + /** + The Observer interface. So far not implemented. + First parameter is a pointer an IncidenceBase object. + */ + void incidenceUpdated( IncidenceBase * /*incidenceBase*/ ) {} + + void setTimeZoneIdViewOnly( const QString& ) {}; + + private: + static CalendarNull *mSelf; + + class Private; + Private *d; +}; + +} + +#endif |