/***************************************************************************
menge.h - Interface Klasse CDokumentenmenge
-------------------
begin : Wed Aug 4 1999
copyright : (C) 1999 by Stephan Uhlmann
email : suhlmann@gmx.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef __MENGE_H__
#define __MENGE_H__
#include <qdatastream.h>
#include "dokument.h" /* Import Klasse CDokument */
#include "formular.h" /* Import Klasse CFormular */
#include "vertrag.h" /* Import Klasse CVertrag */
#include "dauerauf.h" /* Import Klasse CDauerauftrag */
/**
* Die Klasse CDokumentenmenge stellt die Daten und Methoden
* zur Verfuegung um eine Dokumentenmenge verwalten.
* Hier werden in einer polymorphen Liste alle Dokumenttypen
* verwaltet.
*/
class CDokumentenmenge
{
private:
/** einfach verkettete Liste */
typedef struct TElement
{ CDokument* Objekt; /* Inhalt des Listenelementes */
struct TElement* next; /* naechstes Listenelement */
} TElement;
/** Anzahl der Dokumente in der Dokumentenmenge */
unsigned int Anzahl;
/** erstes Element in der Dokumentenmenge */
TElement* first;
public:
/** Konstruktor */
/* pre: this existiert nicht */
/* post: this existiert und ist gueltig */
CDokumentenmenge();
/** Destruktor */
/* pre: this existiert */
/* post: this existiert nicht */
~CDokumentenmenge(); /* Destruktor */
/** generiert eine neue Dokumentenmenge und gibt einen Zeiger darauf zurueck */
/* pre: CDokumentenmenge existiert nicht */
/* post: CDokumentenmenge existiert und ist gueltig */
CDokumentenmenge* Generate();
/** gibt eine Dokumentenmenge frei */
/* pre: this existiert */
/* post: this ist ungueltig */
void Free();
/** ueberprueft die Klasseninvarianz des Objekts */
/* pre: this existiert */
/* post: TRUE wenn this gueltig, sonst FALSE */
bool ClassInvariant() const;
/** kopiert in die aktuelle Dokumentenmenge die Dokumentenmenge src */
/* pre: this existiert; src ist gueltig */
/* post: this ist gueltig; this ist gleich src */
bool Copy(CDokumentenmenge* src);
/** vergleicht zwei Dokumentenmengen miteinander */
/* pre: this und src existieren und sind gueltig */
/* post: TRUE wenn Inhalt von this gleich Inhalt von src, sonst FALSE */
bool EqualValue(CDokumentenmenge* src) const;
/** gibt die Anzahl der Dokumente in der Dokumentenmenge zurueck */
/* pre: this existiert und ist gueltig */
/* post: */
unsigned int LiefereAnzahl() const;
/** fuegt ein Dokument in die Dokumentenmenge ein */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn das Dokument eingefuegt werden konnst, sonst FALSE */
bool EinfuegeDokument(CDokument* src);
/** loescht ein Dokument aus der Dokumentenmenge */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn das Dokument geloescht werden konnst, sonst FALSE */
bool LoescheDokument(QString Schluessel);
/** Sucht ein Dokument in der Dokumentenmenge und gibt das entsprechende Element zurueck */
/* pre: this existiert und ist gueltig */
/* post: NULL wenn Dokument nicht enthalten, sonst Zeiger auf das Element in der Liste */
CDokumentenmenge::TElement* SucheDokument(QString Schluessel) const;
/** prueft ob das Dokument in der Dokumentenmenge enthalten ist */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn das Dokument enthalten ist, sonst FALSE */
bool DokumentInMenge(QString Schluessel) const;
/** gibt das erste Element der Dokumentenmenge zurueck */
/* pre: this existiert */
/* post: NULL wenn keine Elemente enthalten, sonst Zeiger auf erstes Element */
CDokumentenmenge::TElement* LiefereErstes();
/** schreibt den Inhalt der Dokumentenmmenge in den angegebenen stream */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn die CDokumentenmenge geschrieben werden konnte, sonst FALSE */
bool readData(QDataStream* stream);
/** laedt den Inhalt der Dokumentenmenge aus dem angegebenen stream */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn die CDokumentenmenge geladen werden konnte, sonst FALSE */
bool writeData(QDataStream* stream) const;
};
#endif /* __MENGE_H__ */
Documentation generated by uhlmann@fara2 on Mon Aug 30 20:37:52 MEST 1999