GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloClassInfo.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_GLOCLASSINFO_H
2#define INC_GLOCLASSINFO_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include <string>
38#include <list>
39#include <set>
40#include <vector>
41#include <map>
42#include <memory>
43#include "GloTypes.h"
44//-----------------------------------------------------------------------------
45namespace glo
46{
47 //---------------------------------------------------------------------------
48 /* Forwards */
49 class ClassInfoAttribute;
50 class ClassInfoIndex;
51 class AttributeID;
52 class AllSetIndexInfo;
53 //---------------------------------------------------------------------------
54 #ifdef _MSC_VER
55 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
56 #pragma warning( disable : 4251 )
57 #endif
58 //---------------------------------------------------------------------------
79 {
80 private:
81 //============== Friends
82 //-----------------------------------------------------------------------
83 friend class SchemaInterface;
84 //-----------------------------------------------------------------------
85
86 public:
87 //-----------------------------------------------------------------------
88 // >>>>>>>>>>>>>>>>>>>> SuperClassIdInfoTuple >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
89 //-----------------------------------------------------------------------
105 {
106 private:
107 //============== Attribute
108 //---------------------------------------------------------------------
118 unsigned long m_ulClassID;
119 //---------------------------------------------------------------------
129 std::string m_sSuperClassInfo;
130 //---------------------------------------------------------------------
131
132 public:
133 //============== Konstruktoren
134 //---------------------------------------------------------------------
145 //---------------------------------------------------------------------
157 SuperClassIdInfoTuple( unsigned long ulClassID );
158 //---------------------------------------------------------------------
170 SuperClassIdInfoTuple( const std::string & rsSuperClassInfo );
171 //---------------------------------------------------------------------
185 SuperClassIdInfoTuple( unsigned long ulClassID,
186 const std::string & rsSuperClassInfo );
187 //---------------------------------------------------------------------
200 //---------------------------------------------------------------------
211 //---------------------------------------------------------------------
212
213 //============== Methoden
214 //---------------------------------------------------------------------
226 void setClassID (unsigned long ulClassID);
227 //---------------------------------------------------------------------
239 unsigned long getClassID ();
240 //---------------------------------------------------------------------
252 void setSuperClassInfo (const std::string & rsSuperClassInfo);
253 //---------------------------------------------------------------------
265 std::string getSuperClassInfo () const;
266 //---------------------------------------------------------------------
267
268 //---------------------------------------------------------------------
270
281 bool operator== ( SuperClassIdInfoTuple & rT ) const;
282 bool operator!= ( SuperClassIdInfoTuple & rT ) const;
284 //---------------------------------------------------------------------
297 //---------------------------------------------------------------------
298 };
299 //-----------------------------------------------------------------------
300 // <<<<<<<<<<<<<<<<<<<<< SuperClassIdInfoTuple <<<<<<<<<<<<<<<<<<<<<<<<<<<<
301 //-----------------------------------------------------------------------
302
303 private:
304 //============== Attributes
305 //-----------------------------------------------------------------------
315 std::string m_sName;
316 //-----------------------------------------------------------------------
326 std::string m_sSchemaName;
327 //-----------------------------------------------------------------------
337 unsigned long m_ulClassID;
338 //-----------------------------------------------------------------------
350 std::string m_sSuperClasses;
351 //-----------------------------------------------------------------------
368 //-----------------------------------------------------------------------
378 std::list< ClassInfoAttribute *> m_AttributeList;
379 //-----------------------------------------------------------------------
389 std::list< ClassInfoAttribute * >::iterator m_AttributeListIterator;
390 //-----------------------------------------------------------------------
400 std::list<ClassInfoIndex *> m_IndexList;
401 //-----------------------------------------------------------------------
411 std::list< ClassInfoIndex * >::iterator m_IndexListIterator;
412 //-----------------------------------------------------------------------
426 std::list<ClassInfo *> m_SubClassInfoList;
427 //-----------------------------------------------------------------------
428
429 //============== Developer attributes
430 //-----------------------------------------------------------------------
444 std::string m_sFileName;
445 //-----------------------------------------------------------------------
461 //-----------------------------------------------------------------------
477 //-----------------------------------------------------------------------
492 std::string m_sClassModifier;
493 //-----------------------------------------------------------------------
494
495 public:
496 //============= constructors
497 //-----------------------------------------------------------------------
508 //-----------------------------------------------------------------------
532 ClassInfo( const std::string & rsSchemaName,
533 const std::string & rsName,
534 unsigned long ulClassID,
535 const std::string & rsSuperClasses,
536 const std::string & rsSuperClassesInfo );
537 //-----------------------------------------------------------------------
551 ClassInfo (const ClassInfo & rT);
552 //-----------------------------------------------------------------------
562 virtual ~ClassInfo();
563 //-----------------------------------------------------------------------
564
565 //============== methods
566 //-----------------------------------------------------------------------
579 void setSchemaName( const std::string & rsSchemaName );
580 //-----------------------------------------------------------------------
591 std::string getSchemaName() const;
592 //-----------------------------------------------------------------------
613 void setName( const std::string & rsName );
614 //-----------------------------------------------------------------------
633 std::string getName() const;
634 //-----------------------------------------------------------------------
646 std::string getClassName() const;
647 //-----------------------------------------------------------------------
663 void getNamespaces( std::vector<std::string> & rNamespaces ) const;
664 //-----------------------------------------------------------------------
677 void setClassID( unsigned long ulClassID );
678 //-----------------------------------------------------------------------
689 unsigned long getClassID() const;
690 //-----------------------------------------------------------------------
691
692 //============== superclass methods
693 //-----------------------------------------------------------------------
708 void setSuperClasses( const std::string & rsSuperClasses );
709 //-----------------------------------------------------------------------
724 std::string getSuperClasses() const;
725 //-----------------------------------------------------------------------
745 void setSuperClassesInfo( const std::string & rsSuperClassesInfo );
746 //-----------------------------------------------------------------------
765 std::string getSuperClassesInfo() const;
766 //-----------------------------------------------------------------------
782 bool isDirectSubclassOf( unsigned long ulSuperClassID ) const;
783 //-----------------------------------------------------------------------
799 void getSuperClasses( std::vector<unsigned long> & rSuperClassIdVector ) const;
800 //-----------------------------------------------------------------------
817 void getSuperClassesInfo( std::vector<std::string> & rSuperClassesInfoVector ) const;
818 //-----------------------------------------------------------------------
836 void getSuperClassesInfoTuples( std::vector< std::shared_ptr<SuperClassIdInfoTuple> > & rSuperClassesInfoTuplesVector ) const;
837 //-----------------------------------------------------------------------
851 void setSuperClassesInfoTuples( const std::vector< std::shared_ptr<SuperClassIdInfoTuple> > & rSuperClassesInfoTuplesVector );
852 //-----------------------------------------------------------------------
853
854 //============== Attribut-Methoden
855 //-----------------------------------------------------------------------
882 //-----------------------------------------------------------------------
924 //-----------------------------------------------------------------------
934 std::size_t getNumberOfAttributes() const;
935 //-----------------------------------------------------------------------
957 ClassInfoAttribute * getAttributeByName( const std::string & rsName ) const;
958 //-----------------------------------------------------------------------
986 ClassInfoAttribute * getAttributeByFieldName( const std::string & rsTableName,
987 const std::string & rsFieldName ) const;
988 //-----------------------------------------------------------------------
1010 ClassInfoAttribute * getAttributeByID( const AttributeID & rAttributeID ) const;
1011 //-----------------------------------------------------------------------
1032 bool attributeExisting( ClassInfoAttribute * pAttribute ) const;
1033 //-----------------------------------------------------------------------
1054 bool attributeExisting( const std::string & rsAttributeName ) const;
1055 //-----------------------------------------------------------------------
1075 int attributeFieldNameExisting (const std::string & rsAttributeFieldName);
1076 //-----------------------------------------------------------------------
1105 int removeAttribute( ClassInfoAttribute * pAttribute, bool bDelete = false );
1106 //-----------------------------------------------------------------------
1119 //-----------------------------------------------------------------------
1133 std::string getTableNameFirstAttribute() const;
1134 //-----------------------------------------------------------------------
1154 void getAllClassMemberNamesSortByID( std::map< AttributeID, std::string> & rRetValMap ) const;
1155 //-----------------------------------------------------------------------
1172 std::less<int> > & rRetValMap ) const;
1173 //-----------------------------------------------------------------------
1191 std::string getAllAttributeFildNamesAsColumnRow( char cColumnDelimiter = g_cTableColumnDelimiter ) const;
1192 //-----------------------------------------------------------------------
1206 void setAllAttributesTableName( const std::string & rsTableName ) const;
1207 //-----------------------------------------------------------------------
1208
1209 //============== Index-Methoden
1210 //-----------------------------------------------------------------------
1234 //-----------------------------------------------------------------------
1273 //-----------------------------------------------------------------------
1283 std::size_t getNumberOfIndexes() const;
1284 //-----------------------------------------------------------------------
1304 ClassInfoIndex * getIndexFromName( const std::string & rsIndexName ) const;
1305 //-----------------------------------------------------------------------
1321 void getIndexes( std::vector< AllSetIndexInfo > & rIndexes ) const;
1322 //-----------------------------------------------------------------------
1343 int indexExisting( ClassInfoIndex * pIndex ) const;
1344 //-----------------------------------------------------------------------
1364 int indexExisting( const std::string & rsIndexName ) const;
1365 //-----------------------------------------------------------------------
1393 int removeIndex( ClassInfoIndex * pIndex, bool bDelete = false );
1394 //-----------------------------------------------------------------------
1407 //-----------------------------------------------------------------------
1408
1409 //============== SubClass Methoden
1410 //-----------------------------------------------------------------------
1432 bool asSubClassAvailable( unsigned long ulSubClassID ) const;
1433 //-----------------------------------------------------------------------
1451 void insertSubClassInfo( ClassInfo * pSubClassInfo );
1452 //-----------------------------------------------------------------------
1470 std::list< ClassInfo * > & getSubClassInfos();
1471 //-----------------------------------------------------------------------
1485 void removeSubClassInfo( unsigned long ulClassID );
1486 //-----------------------------------------------------------------------
1487
1488 //============== Developer Methoden
1489 //-----------------------------------------------------------------------
1507 void setFileName( const std::string & rsFileName );
1508 //-----------------------------------------------------------------------
1526 std::string getFileName() const;
1527 //-----------------------------------------------------------------------
1545 void setFileDescription( const std::string & rstrFileDescription );
1546 //-----------------------------------------------------------------------
1564 std::string getFileDescription() const;
1565 //-----------------------------------------------------------------------
1583 void setClassDescription( const std::string & rstrClassDescription );
1584 //-----------------------------------------------------------------------
1602 std::string getClassDescription() const;
1603 //-----------------------------------------------------------------------
1622 void setClassModifier( const std::string & rstrClassModifier );
1623 //-----------------------------------------------------------------------
1643 std::string getClassModifier() const;
1644 //-----------------------------------------------------------------------
1645
1646 private:
1647 //============== Methoden
1648 //-----------------------------------------------------------------------
1663 //-----------------------------------------------------------------------
1677 void copyIndexListFrom( const ClassInfo & rT );
1678 //-----------------------------------------------------------------------
1679
1680 public:
1681 //============== Debug-Methoden
1682 //-----------------------------------------------------------------------
1683 #ifdef _DEBUG
1693 std::string _DEBUG_ToString();
1694 #endif
1695 //-----------------------------------------------------------------------
1696
1697 //============== Operatoren
1698 //-----------------------------------------------------------------------
1711 ClassInfo & operator= ( const ClassInfo & rT );
1712 //-----------------------------------------------------------------------
1713 };
1714 //---------------------------------------------------------------------------
1715 #ifdef _MSC_VER
1716 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
1717 #pragma warning( default : 4251 )
1718 #endif
1719 //---------------------------------------------------------------------------
1720} // namespace glo
1721#endif
Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.
#define __glo_export_dll
Definition GloTypes.h:63
Diese Klasse spiegelt eine eindeutige ID eines Klasseninformations-Attributes wieder.
Definition GloAttributeID.h:74
Diese Parameterklasse wird genutzt, um die Superklassen-IDs mit einer zusätzlichen Infos zu liefern u...
Definition GloClassInfo.h:105
SuperClassIdInfoTuple(const std::string &rsSuperClassInfo)
SuperClassIdInfoTuple(unsigned long ulClassID)
SuperClassIdInfoTuple(const SuperClassIdInfoTuple &rT)
void setSuperClassInfo(const std::string &rsSuperClassInfo)
std::string m_sSuperClassInfo
Definition GloClassInfo.h:129
unsigned long m_ulClassID
Definition GloClassInfo.h:118
SuperClassIdInfoTuple(unsigned long ulClassID, const std::string &rsSuperClassInfo)
void setClassID(unsigned long ulClassID)
In Objekten dieser Klasse sind die Information für GlobalObjects, wie ein persistentes Klassenattribu...
Definition GloClassInfoAttribute.h:76
Diese Klasse beinhaltet alle Informationen um Objekte einer Klasse in einer Datenbank speichern zu kö...
Definition GloClassInfo.h:79
void getSuperClassesInfoTuples(std::vector< std::shared_ptr< SuperClassIdInfoTuple > > &rSuperClassesInfoTuplesVector) const
void setSuperClassesInfo(const std::string &rsSuperClassesInfo)
int indexExisting(ClassInfoIndex *pIndex) const
void deleteAllInfoAttributes()
std::string getSuperClassesInfo() const
std::size_t getNumberOfAttributes() const
void getAllAttributesSortByFieldPos(std::map< int, ClassInfoAttribute *, std::less< int > > &rRetValMap) const
void removeSubClassInfo(unsigned long ulClassID)
ClassInfoIndex * getIndex(EnSeekMode eMode)
std::size_t getNumberOfIndexes() const
int attributeFieldNameExisting(const std::string &rsAttributeFieldName)
void setSuperClasses(const std::string &rsSuperClasses)
std::string _DEBUG_ToString()
std::string m_sSchemaName
Definition GloClassInfo.h:326
bool attributeExisting(ClassInfoAttribute *pAttribute) const
void deleteAllInfoIndexes()
bool asSubClassAvailable(unsigned long ulSubClassID) const
int removeIndex(ClassInfoIndex *pIndex, bool bDelete=false)
unsigned long getClassID() const
bool attributeExisting(const std::string &rsAttributeName) const
void setClassModifier(const std::string &rstrClassModifier)
void setSuperClassesInfoTuples(const std::vector< std::shared_ptr< SuperClassIdInfoTuple > > &rSuperClassesInfoTuplesVector)
void setName(const std::string &rsName)
unsigned long m_ulClassID
Definition GloClassInfo.h:337
void setFileDescription(const std::string &rstrFileDescription)
void getNamespaces(std::vector< std::string > &rNamespaces) const
std::string getFileDescription() const
std::list< ClassInfoAttribute * > m_AttributeList
Definition GloClassInfo.h:378
ClassInfo(const ClassInfo &rT)
std::string getAllAttributeFildNamesAsColumnRow(char cColumnDelimiter=g_cTableColumnDelimiter) const
ClassInfoAttribute * getAttributeByName(const std::string &rsName) const
void getSuperClasses(std::vector< unsigned long > &rSuperClassIdVector) const
void setAllAttributesTableName(const std::string &rsTableName) const
bool isDirectSubclassOf(unsigned long ulSuperClassID) const
ClassInfoAttribute * getAttributeByID(const AttributeID &rAttributeID) const
std::string getClassName() const
void getAllClassMemberNamesSortByID(std::map< AttributeID, std::string > &rRetValMap) const
std::string getName() const
void copyIndexListFrom(const ClassInfo &rT)
void getIndexes(std::vector< AllSetIndexInfo > &rIndexes) const
std::list< ClassInfoIndex * > m_IndexList
Definition GloClassInfo.h:400
void getSuperClassesInfo(std::vector< std::string > &rSuperClassesInfoVector) const
std::list< ClassInfoAttribute * >::iterator m_AttributeListIterator
Definition GloClassInfo.h:389
virtual ~ClassInfo()
std::string m_sFileDescription
Definition GloClassInfo.h:460
std::string getFileName() const
ClassInfoAttribute * getAttribute(EnSeekMode eMode)
std::string m_sSuperClasses
Definition GloClassInfo.h:350
std::string getClassModifier() const
std::string m_sName
Definition GloClassInfo.h:315
std::string getSchemaName() const
std::list< ClassInfo * > & getSubClassInfos()
std::list< ClassInfoIndex * >::iterator m_IndexListIterator
Definition GloClassInfo.h:411
int indexExisting(const std::string &rsIndexName) const
std::string m_sSuperClassesInfo
Definition GloClassInfo.h:367
std::string m_sFileName
Definition GloClassInfo.h:444
void setClassID(unsigned long ulClassID)
std::string m_sClassModifier
Definition GloClassInfo.h:492
std::list< ClassInfo * > m_SubClassInfoList
Definition GloClassInfo.h:426
int removeAttribute(ClassInfoAttribute *pAttribute, bool bDelete=false)
ClassInfoIndex * getIndexFromName(const std::string &rsIndexName) const
ClassInfoAttribute * getAttributeByFieldName(const std::string &rsTableName, const std::string &rsFieldName) const
int takeOverAttribute(ClassInfoAttribute *pAttribute)
void insertSubClassInfo(ClassInfo *pSubClassInfo)
int takeOverIndex(ClassInfoIndex *pIndex)
std::string getClassDescription() const
ClassInfo(const std::string &rsSchemaName, const std::string &rsName, unsigned long ulClassID, const std::string &rsSuperClasses, const std::string &rsSuperClassesInfo)
void copyAttributListFrom(const ClassInfo &rT)
void setFileName(const std::string &rsFileName)
void setClassDescription(const std::string &rstrClassDescription)
void setSchemaName(const std::string &rsSchemaName)
std::string getSuperClasses() const
std::string getTableNameFirstAttribute() const
std::string m_sClassDescription
Definition GloClassInfo.h:476
In Objekten dieser Klasse sind die Information für GlobalObjects, wie ein Index aufgebaut ist.
Definition GloClassInfoIndex.h:78
Diese Klasse ist die Schnittstelle zu einem GlobalObjects-Schema. Sie beinhaltet alle Klasseninformat...
Definition GloSchemaInterface.h:84
Definition GloAbstractBaseLot.h:42
EnSeekMode
Definition GloTypes.h:166