home *** CD-ROM | disk | FTP | other *** search
- /*
- 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
-