/***************************************************************************
dokument.h - Interface Klasse CDokument
-------------------
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 __DOKUMENT_H__
#define __DOKUMENT_H__
#include <qdatetime.h>
#include <qdatastream.h>
#include "resource.h"
/**
* Die Klasse CDokument stellt die Daten und Methoden zur
* Verfuegung um ein Dokument zu verwalten.
* Dies ist die Basisklasse aller anderen Dokumenttypen
*/
class CDokument
{
private:
/** Verfasser des Dokuments */
QString Verfasser;
/** Titel des Dokuments */
QString Titel;
/** Schluessel des Dokuments */
QString Schluessel;
/** Erstellungsdatum des Dokuments */
QDateTime Erstellungsdatum;
/** Klassentyp des Objektes */
TClassID ClassID;
public:
/** Konstruktor */
/* pre: this existiert nicht */
/* post: this existiert und ist gueltig */
CDokument();
/** Destruktor */
/* pre: this existiert */
/* post: this existiert nicht */
virtual ~CDokument();
/** generiert ein neues Dokument und gibt einen Zeiger darauf zurueck */
/* pre: CDokument existiert nicht */
/* post: CDokument existiert und ist gueltig */
virtual CDokument* Generate() const;
/** loescht ein Objekt vom Typ CDokument wieder */
/* pre: this existiert */
/* post: this ist ungueltig */
virtual void Free();
/** prueft die Klasseninvarianz eines Dokuments */
/* pre: this existiert */
/* post: TRUE wenn this gueltig, sonst FALSE */
virtual bool ClassInvariant() const;
/** kopiert das Objet src in das aktuelle Objekt */
/* pre: this existiert; src ist gueltig */
/* post: this ist gueltig; this ist gleich src */
virtual bool Copy(CDokument* src);
/** vergleicht das aktuelle Objekt mir src */
/* pre: this und src existieren und sind gueltig */
/* post: TRUE wenn Inhalt von this gleich Inhalt von src, sonst FALSE */
virtual bool EqualValue(CDokument* src) const;
/** initialisiert ein instanziiertes Objekt mit gegebenen Werten */
/* pre: this existiert und ist gueltig */
/* post: this enthaelt die gewuenschten Werte */
bool InitDokument(QString NVerfasser, QString NTitel, QString NSchluessel);
/** gibt den Verfasser des Dokuments zurueck */
/* pre: this existiert und ist gueltig */
/* post: */
QString LiefereVerfasser() const;
/** gibt den Titel des Dokumentes zurueck */
/* pre: this existiert und ist gueltig */
/* post: */
QString LiefereTitel() const;
/** gibt den Schluessel des Dokumentes zurueck */
/* pre: this existiert und ist gueltig */
/* post: */
QString LiefereSchluessel() const;
/** gibt das Erstellungsdatum des Dokumentes zurueck */
/* pre: this existiert und ist gueltig */
/* post: */
QDateTime LiefereErstellungsdatum() const;
/** aendert das Erstellungsdatum des Dokumentes in NDatum */
/* pre: this existiert und ist gueltig */
/* post: */
void AendereErstellungsdatum(QDateTime NDatum);
/** gibt das aktuelle Systemdatum zurueck */
/* pre: */
/* post: */
QDateTime LiefereSystemdatum() const;
/** liefert den Klassentyp des Objektes */
/* pre: this existiert */
/* post: */
TClassID LiefereClassID() const;
/** aendert den Klassentyp des Objektes in NClassID */
/* pre: this existiert */
/* post: */
void AendereClassID(TClassID NClassID);
/** schreibt den Inhalt des Dokuments in den angegebenen stream */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn das CDokument geschrieben werden konnte, sonst FALSE */
bool readData(QDataStream* stream);
/** laedt den Inhalt des Dokuments aus dem angegebenen stream */
/* pre: this existiert und ist gueltig */
/* post: TRUE wenn das CDokument geladen werden konnte, sonst FALSE */
bool writeData(QDataStream* stream) const;
};
#endif /* __DOKUMENT_H__ */
Documentation generated by uhlmann@fara2 on Mon Aug 30 20:37:52 MEST 1999