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

Diese Klasse beinhaltet alle Informationen um Objekte einer Klasse in einer Datenbank speichern zu können, um aus Tabellen Objekte und aus Objekten Tabellen bauen zu können. Mehr ...

#include <GloClassInfo.h>

Klassen

class  SuperClassIdInfoTuple
 Diese Parameterklasse wird genutzt, um die Superklassen-IDs mit einer zusätzlichen Infos zu liefern und entgegen zu nehmen. Mehr ...
 

Öffentliche Methoden

 ClassInfo ()
 
 ClassInfo (const ClassInfo &rT)
 
 ClassInfo (const std::string &rsSchemaName, const std::string &rsName, unsigned long ulClassID, const std::string &rsSuperClasses, const std::string &rsSuperClassesInfo)
 
virtual ~ClassInfo ()
 
std::string _DEBUG_ToString ()
 
bool asSubClassAvailable (unsigned long ulSubClassID) const
 
bool attributeExisting (ClassInfoAttribute *pAttribute) const
 
bool attributeExisting (const std::string &rsAttributeName) const
 
int attributeFieldNameExisting (const std::string &rsAttributeFieldName)
 
void deleteAllInfoAttributes ()
 
void deleteAllInfoIndexes ()
 
std::string getAllAttributeFildNamesAsColumnRow (char cColumnDelimiter=g_cTableColumnDelimiter) const
 
void getAllAttributesSortByFieldPos (std::map< int, ClassInfoAttribute *, std::less< int > > &rRetValMap) const
 
void getAllClassMemberNamesSortByID (std::map< AttributeID, std::string > &rRetValMap) const
 
ClassInfoAttributegetAttribute (EnSeekMode eMode)
 
ClassInfoAttributegetAttributeByFieldName (const std::string &rsTableName, const std::string &rsFieldName) const
 
ClassInfoAttributegetAttributeByID (const AttributeID &rAttributeID) const
 
ClassInfoAttributegetAttributeByName (const std::string &rsName) const
 
std::string getClassDescription () const
 
unsigned long getClassID () const
 
std::string getClassModifier () const
 
std::string getClassName () const
 
std::string getFileDescription () const
 
std::string getFileName () const
 
ClassInfoIndexgetIndex (EnSeekMode eMode)
 
void getIndexes (std::vector< AllSetIndexInfo > &rIndexes) const
 
ClassInfoIndexgetIndexFromName (const std::string &rsIndexName) const
 
std::string getName () const
 
void getNamespaces (std::vector< std::string > &rNamespaces) const
 
std::size_t getNumberOfAttributes () const
 
std::size_t getNumberOfIndexes () const
 
std::string getSchemaName () const
 
std::list< ClassInfo * > & getSubClassInfos ()
 
std::string getSuperClasses () const
 
void getSuperClasses (std::vector< unsigned long > &rSuperClassIdVector) const
 
std::string getSuperClassesInfo () const
 
void getSuperClassesInfo (std::vector< std::string > &rSuperClassesInfoVector) const
 
void getSuperClassesInfoTuples (std::vector< std::shared_ptr< SuperClassIdInfoTuple > > &rSuperClassesInfoTuplesVector) const
 
std::string getTableNameFirstAttribute () const
 
int indexExisting (ClassInfoIndex *pIndex) const
 
int indexExisting (const std::string &rsIndexName) const
 
void insertSubClassInfo (ClassInfo *pSubClassInfo)
 
bool isDirectSubclassOf (unsigned long ulSuperClassID) const
 
ClassInfooperator= (const ClassInfo &rT)
 
int removeAttribute (ClassInfoAttribute *pAttribute, bool bDelete=false)
 
int removeIndex (ClassInfoIndex *pIndex, bool bDelete=false)
 
void removeSubClassInfo (unsigned long ulClassID)
 
void setAllAttributesTableName (const std::string &rsTableName) const
 
void setClassDescription (const std::string &rstrClassDescription)
 
void setClassID (unsigned long ulClassID)
 
void setClassModifier (const std::string &rstrClassModifier)
 
void setFileDescription (const std::string &rstrFileDescription)
 
void setFileName (const std::string &rsFileName)
 
void setName (const std::string &rsName)
 
void setSchemaName (const std::string &rsSchemaName)
 
void setSuperClasses (const std::string &rsSuperClasses)
 
void setSuperClassesInfo (const std::string &rsSuperClassesInfo)
 
void setSuperClassesInfoTuples (const std::vector< std::shared_ptr< SuperClassIdInfoTuple > > &rSuperClassesInfoTuplesVector)
 
int takeOverAttribute (ClassInfoAttribute *pAttribute)
 
int takeOverIndex (ClassInfoIndex *pIndex)
 

Private Methoden

void copyAttributListFrom (const ClassInfo &rT)
 
void copyIndexListFrom (const ClassInfo &rT)
 

Private Attribute

std::list< ClassInfoAttribute * > m_AttributeList
 
std::list< ClassInfoAttribute * >::iterator m_AttributeListIterator
 
std::list< ClassInfoIndex * > m_IndexList
 
std::list< ClassInfoIndex * >::iterator m_IndexListIterator
 
std::string m_sClassDescription
 
std::string m_sClassModifier
 
std::string m_sFileDescription
 
std::string m_sFileName
 
std::string m_sName
 
std::string m_sSchemaName
 
std::string m_sSuperClasses
 
std::string m_sSuperClassesInfo
 
std::list< ClassInfo * > m_SubClassInfoList
 
unsigned long m_ulClassID
 

Freundbeziehungen

class SchemaInterface
 

Ausführliche Beschreibung

Diese Klasse beinhaltet alle Informationen um Objekte einer Klasse in einer Datenbank speichern zu können, um aus Tabellen Objekte und aus Objekten Tabellen bauen zu können.

Das SchemaInterface liefert für jede Klasse eine Objekt dieser Klasse.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ ClassInfo() [1/3]

glo::ClassInfo::ClassInfo ( )

Standard-Konstruktor.

◆ ClassInfo() [2/3]

glo::ClassInfo::ClassInfo ( const std::string & rsSchemaName,
const std::string & rsName,
unsigned long ulClassID,
const std::string & rsSuperClasses,
const std::string & rsSuperClassesInfo )

Konstruktor mit Parameterübergabe.

Parameter
[in]rsSchemaNameDie Schema- bzw. Datenbankbezeichnung.
[in]rsNameDie Klassenbezeichnung.
[in]ulClassIDDie Klassen-ID.
[in]rsSuperClassesDie Oberklasse/n als Klassen-ID getrennt durch '|' (z.B. "3|").
[in]rsSuperClassesInfoInformation zur Vererbung von Oberklasse/n wie z.B. "virtual|".

◆ ClassInfo() [3/3]

glo::ClassInfo::ClassInfo ( const ClassInfo & rT)

Copy-Konstruktor.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.
Zu beachten
Es werden alle Attribute ausser m_SubClassInfoList berücksichtigt.

◆ ~ClassInfo()

virtual glo::ClassInfo::~ClassInfo ( )
virtual

Destruktor.

Dokumentation der Elementfunktionen

◆ _DEBUG_ToString()

std::string glo::ClassInfo::_DEBUG_ToString ( )

Liefert den Objektinhalt als String.

◆ asSubClassAvailable()

bool glo::ClassInfo::asSubClassAvailable ( unsigned long ulSubClassID) const

Prüft ob eine Klasse mit übergebener Klassen-ID eine direkte Unterklasse ist.

Parameter
[in]ulSubClassIDDie Klassen-ID welche geprüft wird.
Rückgabe
Liefert true wenn es eine direkte Unterklasse mit übergebener Klassen-ID gibt.
Achtung
Wenn die Klasseninformation nicht von SchemaInterface geliefert wurde (ggf. von Base) ist die Liste der Unterklassen ggf. leer (siehe auch m_SubClassInfoList).

◆ attributeExisting() [1/2]

bool glo::ClassInfo::attributeExisting ( ClassInfoAttribute * pAttribute) const

Prüft, ob ein Klasseninformations-Attribut in seiner Liste der Attribute enthalten ist.

Parameter
[in]pAttributeDas zu prüfende Klasseninformations-Attribut.
Achtung
Es wird nicht auf Inhalt verglichen, sondern auf Gleichheit der Zeiger.
Rückgabe
Liefert true, wenn übergebenes Attribut in Liste der Attribute enthalten ist.

◆ attributeExisting() [2/2]

bool glo::ClassInfo::attributeExisting ( const std::string & rsAttributeName) const

Prüft ob ein Klasseninformations-Attribut mit übergebener Bezeichnung in seiner Liste der Attribute enthalten ist.

Parameter
[in]rsAttributeNameDie Bezeichnung (aus ClassInfoAttribute::getName()) des zu prüfende Klasseninformations-Attribut.
Rückgabe
Liefert true, wenn ein Attribut mit übergebener Bezeichnung in der Liste der Attribute enthalten ist.

◆ attributeFieldNameExisting()

int glo::ClassInfo::attributeFieldNameExisting ( const std::string & rsAttributeFieldName)

Prüft ob ein Klasseninformations-Attribut mit der übergebenen Tabellenfeldbezeichnung in der Liste der Attribute enthalten ist.

Parameter
[in]rsAttributeFieldNameDie Tabellenfeldbezeichnung des zu prüfende Klasseninformations-Attribut.
Rückgabe
Liefert true, wenn ein Attribut mit der übergebenen Tabellenfeldbezeichnung in Liste der Attribute enthalten ist.

◆ copyAttributListFrom()

void glo::ClassInfo::copyAttributListFrom ( const ClassInfo & rT)
private

Kopiert von übergebener Klasseninformation alle Klasseninformations-Attribute in seine Liste der Attribute.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ copyIndexListFrom()

void glo::ClassInfo::copyIndexListFrom ( const ClassInfo & rT)
private

Kopiert von übergebener Klasseninformation alle Klasseninformations-Indizes in seine Liste der Indizes.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ deleteAllInfoAttributes()

void glo::ClassInfo::deleteAllInfoAttributes ( )

Entfernt alle Klasseninformations-Attribute aus der Liste der Attribute und aus dem Speicher.

◆ deleteAllInfoIndexes()

void glo::ClassInfo::deleteAllInfoIndexes ( )

Entfernt alle Klasseninformations-Indizes aus der Liste der Indizes und aus dem Speicher.

◆ getAllAttributeFildNamesAsColumnRow()

std::string glo::ClassInfo::getAllAttributeFildNamesAsColumnRow ( char cColumnDelimiter = g_cTableColumnDelimiter) const

Liefert alle Klasseninformations-Attribute als vollständige Feldnamenzeile. Die einzelnen Attribute sind durch g_cTableColumnDelimiter getrennt.
Z.B. wenn g_cTableColumnDelimiter == '\a': "ObjID[BEL]CreateDate[BEL]LastChange[BEL]"

Parameter
[in]cColumnDelimiterEs kann ein anderes Trennzeichen übergeben werden.
Rückgabe
s.o.

◆ getAllAttributesSortByFieldPos()

void glo::ClassInfo::getAllAttributesSortByFieldPos ( std::map< int, ClassInfoAttribute *, std::less< int > > & rRetValMap) const

Liefert alle Klasseninformations-Attribute sortiert nach SpaltenPosition.

Parameter
[in,out]rRetValMapDie Klasseninformations-Attribute.
Achtung
Gelieferte Objekte in rRetValMap dürfen nicht aus dem Speicher entfernt werden und leben nur so lange wie dieses Objekt.

◆ getAllClassMemberNamesSortByID()

void glo::ClassInfo::getAllClassMemberNamesSortByID ( std::map< AttributeID, std::string > & rRetValMap) const

Liefert von allen Klasseninformations-Attributen aus seiner Liste der Attribute die Attributbezeichnung mit Klassenbezeichnung, getrennt durch einen Punkt und sortiert nach Attribut-ID (z.B. "MyClass.m_MyAttribute").

Parameter
[in,out]rRetValMapDie Attributbezeichnungen mit Klassenbezeichnung der Klasseninformations-Attribute (siehe auch ClassInfoAttribute::getClassAttributeName()).

◆ getAttribute()

ClassInfoAttribute * glo::ClassInfo::getAttribute ( EnSeekMode eMode)

Liefert ein Klasseninformations-Attribut aus seiner Liste der Attribute in Bezug auf eMode.

Parameter
[in]eModeDer Suchmodus.

Parameterbeispiele:

Rückgabe
Ein Klasseninformations-Attribut. Eine Rückgabe == NULL_PTR zeigt das Ende der Liste der Attribute an.
Achtung
Geliefertes Objekt darf nicht aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::takeOverAttribute (...), ClassInfo::removeAttribute (...), ClassInfo::getAttributeByName (...), ClassInfo::getAttributeByFieldName (...) ClassInfo::getAttributeByID (...)

◆ getAttributeByFieldName()

ClassInfoAttribute * glo::ClassInfo::getAttributeByFieldName ( const std::string & rsTableName,
const std::string & rsFieldName ) const

Liefert ein Klasseninformations-Attribut aus seiner Liste der Attribute dessen Tabellenbezeichnung und Tabellenfeldbezeichnung mit übergebenen Bezeichnungen übereinstimmt

Parameter
[in]rsTableNameDie Tabellenbezeichnung des gesuchten Klasseninformations-Attribut.
[in]rsFieldNameDie Tabellenfeldbezeichnung des gesuchten Klasseninformations-Attribut.
Achtung
Geliefertes Objekt darf nicht aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::getAttribute (...), ClassInfo::removeAttribute (...), ClassInfo::getAttributeByName (...), ClassInfo::takeOverAttribute (...) ClassInfo::getAttributeByID (...)

◆ getAttributeByID()

ClassInfoAttribute * glo::ClassInfo::getAttributeByID ( const AttributeID & rAttributeID) const

Liefert ein Klasseninformations-Attribut aus seiner Liste der Attribute dessen Attribute-ID mit übergebener Attribute-ID übereinstimmt.

Parameter
[in]rAttributeIDDie AttributeID des gesuchten Klasseninformations-Attribut.
Achtung
Geliefertes Objekt darf nicht aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::getAttribute (...), ClassInfo::removeAttribute (...), ClassInfo::getAttributeByName (...), ClassInfo::takeOverAttribute (...)

◆ getAttributeByName()

ClassInfoAttribute * glo::ClassInfo::getAttributeByName ( const std::string & rsName) const

Liefert ein Klasseninformations-Attribut aus seiner Liste der Attribute dessen Bezeichnung mit übergebener Bezeichnung übereinstimmt

Parameter
[in]rsNameDie Bezeichnung des gesuchten Klasseninformations-Attribut.
Achtung
Geliefertes Objekt darf nicht aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::getAttribute (...), ClassInfo::removeAttribute (...), ClassInfo::takeOverAttribute (...), ClassInfo::getAttributeByFieldName (...) ClassInfo::getAttributeByID (...)

◆ getClassDescription()

std::string glo::ClassInfo::getClassDescription ( ) const

Liefert die Klassenbeschreibung welche in die generierte Header-Datei der Klasse einkopiert werden kann.

Rückgabe
Die Klassenbeschreibung.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!
Siehe auch
ClassInfo::setClassDescription (...)

◆ getClassID()

unsigned long glo::ClassInfo::getClassID ( ) const
Rückgabe
Die Klassen-ID.
Siehe auch
ClassInfo::setClassID (...)

◆ getClassModifier()

std::string glo::ClassInfo::getClassModifier ( ) const

Liefert den Klassenmodifizierer wie z.B. '__declspec(dllexport)' welche in die generierte Header-Datei der Klasse zwischen "class" und der Klassenbezeichnung einkopiert werden kann.

Rückgabe
Der Klassenmodifizierer.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!
Siehe auch
ClassInfo::setClassModifier (...)

◆ getClassName()

std::string glo::ClassInfo::getClassName ( ) const
Rückgabe
Die Klassenbezeichnung ohne evtl vorhandene Namensräume.
Siehe auch
ClassInfo::getName()
ClassInfo::getNamespaces (...)

◆ getFileDescription()

std::string glo::ClassInfo::getFileDescription ( ) const

Liefert die Dateibeschreibung welche in die generierte Header-Datei der Klasse einkopiert werden kann.

Rückgabe
Die Dateibeschreibung.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!
Siehe auch
ClassInfo::setFileDescription (...)

◆ getFileName()

std::string glo::ClassInfo::getFileName ( ) const

Liefert die Dateibezeichnung, in welche die generierte Header-Datei der Klasse einkopiert werden kann.

Rückgabe
Die Dateibezeichnung.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen.
Siehe auch
ClassInfo::setFileName (...)

◆ getIndex()

ClassInfoIndex * glo::ClassInfo::getIndex ( EnSeekMode eMode)

Liefert einen Klasseninformations-Index aus seiner Liste der Indizes in Bezug auf eMode.

Parameter
[in]eModeDer Suchmodus.

Parameterbeispiele:

Rückgabe
Ein Klasseninformations-Index. Eine Rückgabe == NULL_PTR zeigt das Ende der Liste der Indizes an.
Achtung
Geliefertes Objekt darf nicht aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::takeOverIndex (...), ClassInfo::getIndexFromName (...), ClassInfo::removeIndex (...)

◆ getIndexes()

void glo::ClassInfo::getIndexes ( std::vector< AllSetIndexInfo > & rIndexes) const

Fügt alle Indexe aus seiner Liste der Indizes in übergebenen Vector rIndexes am Ende ein.

Parameter
[in,out]rIndexesDie Indizes.
Zu beachten
Ggf. vorhandene Einträge im übergebenen Vector werden nicht tangiert.

◆ getIndexFromName()

ClassInfoIndex * glo::ClassInfo::getIndexFromName ( const std::string & rsIndexName) const

Liefert das Klasseninformations-Index aus seiner Liste der Indizes dessen Bezeichnung mit übergebener Bezeichnung übereinstimmt.

Parameter
[in]rsIndexNameDie Bezeichnung des gesuchten Klasseninformations-Index.
Achtung
Geliefertes Objekt darf nicht aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::getIndex (...), ClassInfo::takeOverIndex (...), ClassInfo::removeIndex (...)

◆ getName()

std::string glo::ClassInfo::getName ( ) const
Rückgabe
Die Klassenbezeichnung.
Zu beachten
Die Klassenbezeichnung kann um Namensräume am Anfang erweitert sein, z.B. "toc::roc::MyName". Dieses bedeutet, dass sich im Namensraum "roc" befindet, der sich wiederum im Namenraum "toc" befindet.
Siehe auch
ClassInfo::setName (...)
ClassInfo::getClassName()
ClassInfo::getNamespaces (...)

◆ getNamespaces()

void glo::ClassInfo::getNamespaces ( std::vector< std::string > & rNamespaces) const

Liefert im übergebenen Vector die Namensräume, wenn vorhanden. Wenn die Klassenbezeichnung z.B."toc::roc::MyName", werden "toc" und "roc" in der selben Reihenfoleg in den übergebenen Vector eingefügt.

Siehe auch
ClassInfo::getName()
ClassInfo::getClassName()

◆ getNumberOfAttributes()

std::size_t glo::ClassInfo::getNumberOfAttributes ( ) const
Rückgabe
Die Anzahl der Klasseninformations-Attribute.

◆ getNumberOfIndexes()

std::size_t glo::ClassInfo::getNumberOfIndexes ( ) const
Rückgabe
Die Anzahl der Klasseninformations-Indizes.

◆ getSchemaName()

std::string glo::ClassInfo::getSchemaName ( ) const
Rückgabe
Die Schema- bzw. Datenbankbezeichnung.
Siehe auch
ClassInfo::setSchemaName (...)

◆ getSubClassInfos()

std::list< ClassInfo * > & glo::ClassInfo::getSubClassInfos ( )

Liefert die Referenz auf die interne Liste der Unterklassen.

Achtung
Diese Möglichkeit des Zugriffs sollte sich nur darauf beschränken, mit einem anderen Iterator auf die Objekte zuzugreifen. Ein Hinzufügen oder Entfernen von Objekten kann undefiniertes Verhalten hervorrufen.
Siehe auch
ClassInfo::insertSubClassInfo (...), ClassInfo::removeSubClassInfo (...)

◆ getSuperClasses() [1/2]

std::string glo::ClassInfo::getSuperClasses ( ) const

Liefert die Oberklasse/n als Klassen-ID getrennt durch '|' wie z.B. "3|4|" => Klasse hat zwei Oberklassen mit der Klassen-ID "3" und "4".

Rückgabe
Die Oberklasse/n.
Siehe auch
ClassInfo::setSuperClasses (...)

◆ getSuperClasses() [2/2]

void glo::ClassInfo::getSuperClasses ( std::vector< unsigned long > & rSuperClassIdVector) const

Fügt alle Klassen-IDs der direkten Oberklassen in den übergebenen Vector ein. Der übergebene Vector wird vorher entleert.

Parameter
[in,out]rSuperClassIdVectorDer Vector in den die Klassen-IDs der direkten Oberklassen eingefügt werden.

◆ getSuperClassesInfo() [1/2]

std::string glo::ClassInfo::getSuperClassesInfo ( ) const

Liefert die Information zur Vererbung von Oberklasse/n. Wenn Wert z.B. " |virtual|" (erste Klasse nicht virtuel, daher Space) und wenn z.B. in m_sSuperClasses die IDs "3|4|", dann ist die Vererbung von der Klasse mit der ID 4 virtual.

Rückgabe
Die Information zur Vererbung von Oberklasse/n.
Siehe auch
ClassInfo::setSuperClassesInfo (...)

◆ getSuperClassesInfo() [2/2]

void glo::ClassInfo::getSuperClassesInfo ( std::vector< std::string > & rSuperClassesInfoVector) const

Fügt alle Information zur Vererbung von Oberklasse/n in den übergebenen Vector ein. Der übergebene Vector wird vorher entleert.

Parameter
[in,out]rSuperClassesInfoVectorDer Vector in den die Information eingefügt werden.
Siehe auch
ClassInfo::getSuperClassesInfo()const

◆ getSuperClassesInfoTuples()

void glo::ClassInfo::getSuperClassesInfoTuples ( std::vector< std::shared_ptr< SuperClassIdInfoTuple > > & rSuperClassesInfoTuplesVector) const

Fügt alle Klassen-IDs der direkten Oberklassen und die zugehörigen Information zur Vererbung in den übergebenen Vector am Ende ein.
Der übergebene Vector wird vorher nicht entleert.

Parameter
[in,out]rSuperClassesInfoTuplesVectorDer Vector, in den die Information eingefügt werden.

◆ getTableNameFirstAttribute()

std::string glo::ClassInfo::getTableNameFirstAttribute ( ) const

Liefert die Tabellenbezeichnung des ersten Attributes (alle persistenten Attribute einer Klasse werden in einer Tabelle gespeichert).

Rückgabe
Die Tabellenbezeichnung.

◆ indexExisting() [1/2]

int glo::ClassInfo::indexExisting ( ClassInfoIndex * pIndex) const

Prüft ob ein Klasseninformations-Index in der Liste der Indizes enthalten ist.

Parameter
[in]pIndexDas zu prüfende Klasseninformations-Index.
Achtung
Es wird nicht auf Inhalt verglichen, sondern auf Gleichheit der Zeiger.
Rückgabe
Liefert true, wenn übergebener Index in Liste der Attribute enthalten ist.

◆ indexExisting() [2/2]

int glo::ClassInfo::indexExisting ( const std::string & rsIndexName) const

Prüft, ob ein Klasseninformations-Index, mit der übergebener Bezeichnung, in der Liste der Indizes enthalten ist.

Parameter
[in]rsIndexNameDie Indexbezeichnung des zu prüfende Klasseninformations-Index.
Rückgabe
Liefert true, wenn übergebener Index in Liste der Attribute enthalten ist.

◆ insertSubClassInfo()

void glo::ClassInfo::insertSubClassInfo ( ClassInfo * pSubClassInfo)

Fügt die übergebene Klasseninformation in die Liste der Unterklassen ein.

Parameter
[in]pSubClassInfoDie einzufügende Unterklasse.
Achtung
Die aufrufende Instanz darf das übergebene Obejkt nicht aus dem Speicher entfernen.
Siehe auch
ClassInfo::getSubClassInfos (...), ClassInfo::removeSubClassInfo (...)

◆ isDirectSubclassOf()

bool glo::ClassInfo::isDirectSubclassOf ( unsigned long ulSuperClassID) const

Prüft ob übergebene Klassen-ID die ID einer direkten Oberklasse ist.

Parameter
[in]ulSuperClassIDDie zu prüfende Klassen-ID.
Rückgabe
Liefert true, wenn übergebene Klassen-ID zu einer direkten Oberklasse gehört, ansonsten false.

◆ operator=()

ClassInfo & glo::ClassInfo::operator= ( const ClassInfo & rT)

Zuweisungsoperator, es werden alle Attribute ausser m_SubClassInfoList berücksichtigt.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ removeAttribute()

int glo::ClassInfo::removeAttribute ( ClassInfoAttribute * pAttribute,
bool bDelete = false )

Entfernt übergebenes Klasseninformations-Attribut aus der Liste der Attribute.

Parameter
[in]pAttributeDas zu entfernende Klasseninformations-Attribut.
[in]bDeleteWenn true, wird das zu entfernende Klasseninformations-Attribut aus dem Speicher entfernt soweit es gefunden wurde. Das gelieferte Attribut ist nicht mehr gültig.
Wenn false, verbleibt das übergebene Attribut in der Verantwortung der aufrufenden Instanz; muss ergo von dieser aus dem Speicher entfernt werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
ClassInfo::getAttribute (...), ClassInfo::takeOverAttribute (...), ClassInfo::getAttributeByName (...), ClassInfo::getAttributeByFieldName (...)

◆ removeIndex()

int glo::ClassInfo::removeIndex ( ClassInfoIndex * pIndex,
bool bDelete = false )

Entfernt übergebenen Klasseninformations-Index aus der Liste der Indizes.

Parameter
[in]pIndexDer zu entfernende Klasseninformations-Index.
[in]bDeleteWenn true, wird der zu entfernende Klasseninformations-Index aus dem Speicher entfernt soweit er gefunden wurde. Der gelieferte Index ist nicht mehr gültig.
Wenn false, verbleibt der übergebene Index in der Verantwortung der aufrufenden Instanz; muss ergo von dieser aus dem Speicher entfernt werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
ClassInfo::getIndex (...), ClassInfo::getIndexFromName (...), ClassInfo::takeOverIndex (...)

◆ removeSubClassInfo()

void glo::ClassInfo::removeSubClassInfo ( unsigned long ulClassID)

Entfernt die Klasseninformation mit übergebener ClassID aus seiner Liste der Unterklassen wenn vorhanden.

Siehe auch
ClassInfo::getSubClassInfos (...), ClassInfo::insertSubClassInfo (...)

◆ setAllAttributesTableName()

void glo::ClassInfo::setAllAttributesTableName ( const std::string & rsTableName) const

Setzt in allen Klasseninformations-Attributen aus seiner Liste der Attribute die Tabellenbezeichnung mit übergeben Wert.

Parameter
[in]rsTableNameDie zu setzende Tabellenbezeichnung.

◆ setClassDescription()

void glo::ClassInfo::setClassDescription ( const std::string & rstrClassDescription)

Setzt die Klassenbeschreibung welche in die generierte Header-Datei der Klasse einkopiert werden kann.

Parameter
[in]rstrClassDescriptionDie Klassenbeschreibung.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!
Siehe auch
ClassInfo::getClassDescription()

◆ setClassID()

void glo::ClassInfo::setClassID ( unsigned long ulClassID)

Setzt die Klassen-ID.

Parameter
[in]ulClassIDDie Klassen-ID.
Siehe auch
ClassInfo::getClassID()

◆ setClassModifier()

void glo::ClassInfo::setClassModifier ( const std::string & rstrClassModifier)

Setzt den Klassenmodifizierer wie z.B. '__declspec(dllexport)' welche in die generierte Header-Datei der Klasse zwischen "class" und der Klassenbezeichnung einkopiert werden kann.

Parameter
[in]rstrClassModifierDer Klassenmodifizierer.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!
Siehe auch
ClassInfo::getClassModifier()

◆ setFileDescription()

void glo::ClassInfo::setFileDescription ( const std::string & rstrFileDescription)

Setzt die Dateibeschreibung welche in die generierte Header-Datei der Klasse einkopiert werden kann.

Parameter
[in]rstrFileDescriptionDie Dateibeschreibung.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!
Siehe auch
ClassInfo::getFileDescription()

◆ setFileName()

void glo::ClassInfo::setFileName ( const std::string & rsFileName)

Setzt die Dateibezeichnung, in welche die generierte Header-Datei der Klasse einkopiert werden kann.

Parameter
[in]rsFileNameDie Dateibezeichnung.
Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen.
Siehe auch
ClassInfo::getFileName()

◆ setName()

void glo::ClassInfo::setName ( const std::string & rsName)

Setzt die Klassenbezeichnung.

Parameter
[in]rsNameDie Klassenbezeichnung.
Zu beachten
Die Klassenbezeichnung kann um Namensräume am Anfang erweitert sein, z.B. "toc::roc::MyName". Dieses bedeutet, dass sich im Namensraum "roc" befindet, der sich wiederum im Namenraum "toc" befindet.
Siehe auch
ClassInfo::getName()
ClassInfo::getClassName()
ClassInfo::getNamespaces (...)

◆ setSchemaName()

void glo::ClassInfo::setSchemaName ( const std::string & rsSchemaName)

Setzt die Schema- bzw. Datenbankbezeichnung.

Parameter
[in]rsSchemaNameDie Schema- bzw. Datenbankbezeichnung.
Siehe auch
ClassInfo::getSchemaName()

◆ setSuperClasses()

void glo::ClassInfo::setSuperClasses ( const std::string & rsSuperClasses)

Setzt die Oberklasse/n als Klassen-ID getrennt durch '|' wie z.B. "3|4|" => Klasse hat zwei Oberklassen mit der Klassen-ID "3" und "4".

Parameter
[in]rsSuperClassesDie Oberklasse/n.
Siehe auch
ClassInfo::getSuperClasses()

◆ setSuperClassesInfo()

void glo::ClassInfo::setSuperClassesInfo ( const std::string & rsSuperClassesInfo)

Setzt die Information zur Vererbung von Oberklasse/n. Wenn Wert z.B. " |virtual|" (erste Klasse nicht virtuel, daher Space) und wenn z.B. in m_sSuperClasses die IDs "3|4|", dann ist die Vererbung von der Klasse mit der ID 4 virtual.

Parameter
[in]rsSuperClassesInfoDie Information zur Vererbung von Oberklasse/n.
Siehe auch
ClassInfo::getSuperClassesInfo()

◆ setSuperClassesInfoTuples()

void glo::ClassInfo::setSuperClassesInfoTuples ( const std::vector< std::shared_ptr< SuperClassIdInfoTuple > > & rSuperClassesInfoTuplesVector)

Übernimmt alle Klassen-IDs und die zugehörigen Information zur Vererbung aus dem übergebenen Vector als Oberklassen.

Parameter
[in]rSuperClassesInfoTuplesVectorDer Vector mit den Informationen.

◆ takeOverAttribute()

int glo::ClassInfo::takeOverAttribute ( ClassInfoAttribute * pAttribute)

Übernimmt übergebenes Klasseninformations-Attribut in seine Liste der Attribute.

Parameter
[in]pAttributeDas zu übernehmende Klasseninformations-Attribut.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Wenn das übergebenes Objekt übernommen wird (wenn kein Fehler), geht die Verantwortung für das übergebenes Objekt in dieses Objekt über. Das übergebene Objekt darf dann nicht von aufrufender Instanz aus dem Speicher entfernt werden.
Siehe auch
ClassInfo::getAttribute (...), ClassInfo::removeAttribute (...), ClassInfo::getAttributeByName (...), ClassInfo::getAttributeByFieldName (...) ClassInfo::getAttributeByID (...)

◆ takeOverIndex()

int glo::ClassInfo::takeOverIndex ( ClassInfoIndex * pIndex)

Übernimmt übergebenen Klasseninformations-Index in seine Liste der Indizes.

Parameter
[in]pIndexDer zu übernehmende Klasseninformations-Index.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Wenn übernommen (kein Fehler), dann geht die Verantwortung für übergebenes Objekt in dieses Objekt über. Es darf dann nicht von aufrufender Instanz aus dem Speicher entfernt werden!
Siehe auch
ClassInfo::getIndex (...), ClassInfo::getIndexFromName (...), ClassInfo::removeIndex (...)

Freundbeziehungen und Funktionsdokumentation

◆ SchemaInterface

friend class SchemaInterface
friend

Dokumentation der Datenelemente

◆ m_AttributeList

std::list< ClassInfoAttribute *> glo::ClassInfo::m_AttributeList
private

Liste der Attribute.

◆ m_AttributeListIterator

std::list<ClassInfoAttribute*>::iterator glo::ClassInfo::m_AttributeListIterator
private

Interner Iterator der Liste der Attribute.

◆ m_IndexList

std::list<ClassInfoIndex *> glo::ClassInfo::m_IndexList
private

Liste der Indizes.

◆ m_IndexListIterator

std::list<ClassInfoIndex*>::iterator glo::ClassInfo::m_IndexListIterator
private

Interner Iterator der Liste der Indizes.

◆ m_sClassDescription

std::string glo::ClassInfo::m_sClassDescription
private

Die Klassenbeschreibung welche in die generierte Header-Datei der Klasse einkopiert werden kann.

Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!

◆ m_sClassModifier

std::string glo::ClassInfo::m_sClassModifier
private

Ein Klassenmodifizierer wie z.B. '__declspec(dllexport)' welche in die generierte Header-Datei der Klasse zwischen "class" und der Klassenbezeichnung einkopiert werden kann.

Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!

◆ m_sFileDescription

std::string glo::ClassInfo::m_sFileDescription
private

Die Dateibeschreibung welche in die generierte Header-Datei der Klasse einkopiert werden kann.

Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!

◆ m_sFileName

std::string glo::ClassInfo::m_sFileName
private

Die Dateibezeichnung, in welche die generierte Header-Datei der Klasse geschrieben wird.

Zu beachten
Wird nicht in ein Blob gestreamt bzw. aus einem Blob übernommen!

◆ m_sName

std::string glo::ClassInfo::m_sName
private

Die Klassenbezeichnung.

◆ m_sSchemaName

std::string glo::ClassInfo::m_sSchemaName
private

Wird vom Schema gesetzt und ist equivalent mit der Datenbankbezeichnung.

◆ m_sSuperClasses

std::string glo::ClassInfo::m_sSuperClasses
private

Die Oberklasse/n als Klassen-ID getrennt durch '|' wie z.B. "3|4|" => Klasse hat zwei Oberklassen mit der Klassen-ID "3" und "4".

◆ m_sSuperClassesInfo

std::string glo::ClassInfo::m_sSuperClassesInfo
private

Information zur Vererbung von Oberklasse/n. Wenn Wert z.B. " |virtual|" (erste Klasse nicht virtuel, daher Space) und wenn z.B. in m_sSuperClasses die IDs "3|4|", dann ist die Vererbung von der Klasse mit der ID 4 virtual.

◆ m_SubClassInfoList

std::list<ClassInfo *> glo::ClassInfo::m_SubClassInfoList
private

Liste der Unterklassen. Wird vom SchemaInterface genutzt (Performance). Wird im Copy-Konstruktor und Zuweisungsoperator nicht kopiert! Wenn das Objekt aus der Base geholt wird, ist diese Liste leer!

◆ m_ulClassID

unsigned long glo::ClassInfo::m_ulClassID
private

Die eindeutige ID der Klasse.


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