GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::ObjectMaker Klassenreferenz

Diese Klasse kann aus einem Datensatz ein persistentes Objekt instanziieren bzw. ein persistentes Objekt befüllen und umgekehrt. Mehr ...

#include <GloObjectMaker.h>

Öffentliche Methoden

 ObjectMaker (const std::string &rstrSchemaNameWithPath, ObjCreator &rCreator)
 
virtual ~ObjectMaker ()
 
int fillPersObject (Persistent &rObject, Record &rRecord, Base *pBase) const
 
int fillRecord (Record &rRecord, Persistent &rObject, bool bWithRefRecords=false) const
 
unsigned long getClassID (BaseAllSet *pAllSet) const
 
const SchemaInterfacegetSchema ()
 
bool isKnownClassID (unsigned long ulClassID) const
 
int makeNewPersObject (Persistent *&prNewObject, Record &rRecord, Base *pBase) const
 
int makeNewRecord (Record *&prNewRecord, Persistent &rObject) const
 
int makeNewRecord (Record *&prNewRecord, unsigned long ulClassID) const
 

Private Methoden

 ObjectMaker ()
 
 ObjectMaker (const ObjectMaker &)
 
ObjectMakeroperator= (const ObjectMaker &)
 

Private Attribute

ObjCreatorm_pObjCreator
 
SchemaInterfacem_pSchema
 

Ausführliche Beschreibung

Diese Klasse kann aus einem Datensatz ein persistentes Objekt instanziieren bzw. ein persistentes Objekt befüllen und umgekehrt.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ ObjectMaker() [1/3]

glo::ObjectMaker::ObjectMaker ( )
private

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ ObjectMaker() [2/3]

glo::ObjectMaker::ObjectMaker ( const std::string & rstrSchemaNameWithPath,
ObjCreator & rCreator )

Konstruktor mit Parameterübergabe.

Parameter
[in]rstrSchemaNameWithPathDateiname des Schemas mit Pfad; z.B. "C:/Pfad/MyGloBase.ini".
[in]rCreatorDer abgeleitete ObjCreator, dieser wird kopiert.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen (z.B. wenn die Schemadatei nicht existiert oder nicht geöffnet werden kann).
Achtung
Wenn die Schemadatei mit übergebener Bezeichnung existiert, wird ein SchemaInterface instanziiert.

◆ ~ObjectMaker()

virtual glo::ObjectMaker::~ObjectMaker ( )
virtual

Destruktor, m_pSchema und m_pObjCreator werden aus dem Speicher entfernt.

◆ ObjectMaker() [3/3]

glo::ObjectMaker::ObjectMaker ( const ObjectMaker & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ fillPersObject()

int glo::ObjectMaker::fillPersObject ( Persistent & rObject,
Record & rRecord,
Base * pBase ) const

Füllt das übergebene persistentes Objekt mit den Daten des übergebenen Datensatzs aus der übergebenen Datenbank.

Parameter
[in,out]rObjectDas mit Daten zu füllende persistente Objekt.
[in]rRecordDer Datensatz mit den Daten aus der Datenbank.
[in]pBaseDie Datenbank, in der das persistente Objekt gespeichert ist. Wird benötigt, um evtl. weitere, notwendige Daten nachzuladen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Für Glo-Entwickler: Ist in GloRecordAttributeFunctions.cpp implementiert, damit Erweiterungen von Datensatz-Attributen dort gesammelt vorgenommen werden können.

◆ fillRecord()

int glo::ObjectMaker::fillRecord ( Record & rRecord,
Persistent & rObject,
bool bWithRefRecords = false ) const

Füllt den übergebenen Datensatz mit den Daten des übetrgebenen persistenten Objektes.

Parameter
[in,out]rRecordDer mit Daten zu füllende Datensatz.
[in]rObjectDas persistente Objekt mit seinen Daten.
[in]bWithRefRecordsWenn true, werden bei Attributen des Typs PoRefRecordAttribute, StdShrdPoRefRecordAttribute, PoRefListRecordAttribute und PoRefSetRecordAttribute, wenn auf gültige Objekte referenziert wird, der jeweilige Datensatz generiert.
Das ist an- bzw. abschaltbar, da die Datensätze der referenzierten Objekt, wenn sie z.B. mitgespeichert werden sollen, über PrivateBase::getDependDataRecords (...) schon generiert werden.
Voreinstellung ist 'false'.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getClassID()

unsigned long glo::ObjectMaker::getClassID ( BaseAllSet * pAllSet) const

Liefert die Klassen-ID des übergebenen AllSets.

Rückgabe
Wenn AllSet bekannt, dann die entsprechende Klassen-ID.
Ausnahmebehandlung
eut::ErrorNExceptionWenn der Type von AllSet nicht bekannt ist, wird eine Exceptionmit dem Fehler ERR_UNKNOWN_OBJECT_TYPE geworfen.

◆ getSchema()

const SchemaInterface * glo::ObjectMaker::getSchema ( )

Liefert sein SchemaInterface.

Rückgabe
Das gelieferte Objekt lebt nur so lange wie dieses Objekt und darf von der aufrufenden Instanz nicht aus dem Speicher entfernt werden.

◆ isKnownClassID()

bool glo::ObjectMaker::isKnownClassID ( unsigned long ulClassID) const

Fragt beim m_pObjCreator an, ob die übergebene Klassen-ID für diesen gültig ist.

Parameter
[in]ulClassIDDie zu prüfende Klassen-ID.
Rückgabe
Wenn true, kann der ObjectCreator ein Objekt der persistenten Klasse mit übergebener Klassen-ID instanziieren.

◆ makeNewPersObject()

int glo::ObjectMaker::makeNewPersObject ( Persistent *& prNewObject,
Record & rRecord,
Base * pBase ) const

Liefert ein neues persistentes Objekt mit den Daten des übergebenen Datensatzes aus der übergebenen Datenbank.

Parameter
[in,out]prNewObjectIn diesem Zeiger wird das persistente Objekt geliefert.
[in]rRecordDer Datensatz mit den Daten aus der Datenbank.
[in]pBaseDie Datenbank, in der das persistente Objekt gespeichert ist. Wird benötigt, um evtl. weitere, notwendige Daten nachzuladen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Wenn ein neues Objekt geliefert wurde (es wird nicht ein evtl. schon im Speicher vorhandenes geliefert), ist der Datensatz in das neue Objekt übertragen worden und die Datenbank im neuen Objekt gesetzt.
Ausnahmebehandlung
eut::ErrorNExceptionWenn keine Datenbank übergeben wird, wird eine Exception geworfen.

◆ makeNewRecord() [1/2]

int glo::ObjectMaker::makeNewRecord ( Record *& prNewRecord,
Persistent & rObject ) const

Liefert einen neuen Datensatz (ohne Daten) welcher zu dem übergebenen persistenten Objekt passt.

Parameter
[in,out]prNewRecordDer neue Datensatz.
[in]rObjectDas Objekt, für den der Datensatz generiert werden soll.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ makeNewRecord() [2/2]

int glo::ObjectMaker::makeNewRecord ( Record *& prNewRecord,
unsigned long ulClassID ) const

Liefert einen neuen Datensatz (ohne Daten) welcher zu einem persistenten Objekt mit übergebener Klassen-ID passt.

Parameter
[in,out]prNewRecordDer neue Datensatz.
[in]ulClassIDDie Klassen-ID, für den der Datensatz generiert werden soll.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ operator=()

ObjectMaker & glo::ObjectMaker::operator= ( const ObjectMaker & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

Dokumentation der Datenelemente

◆ m_pObjCreator

ObjCreator* glo::ObjectMaker::m_pObjCreator
private

Der ObejectCreator bzw. seine Unterklasse weiß, wie persistente Objekte instanziiert werden.

◆ m_pSchema

SchemaInterface* glo::ObjectMaker::m_pSchema
private

Um aus Datensätzen Objekte und aus diesen wiederum Datensätze generieren und befüllen zu können, muß das Schema bekannt sein.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: