summaryrefslogtreecommitdiffstats
path: root/libkcal/calendarnull.h
diff options
context:
space:
mode:
Diffstat (limited to 'libkcal/calendarnull.h')
-rw-r--r--libkcal/calendarnull.h309
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