GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloClassInfoIndex.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_GLOCLASSINFOINDEX_H
2#define INC_GLOCLASSINFOINDEX_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include <list>
38#include <string>
39#include <vector>
40#include <set>
41#include <unordered_set>
42#include "GloTypes.h"
43#include "GloClassInfoItem.h"
45#include "EuLanguageFunctions.h"
46//-----------------------------------------------------------------------------
47/* Forwards */
48//-----------------------------------------------------------------------------
49namespace glo
50{
51 //---------------------------------------------------------------------------
52 class AttributeID;
53 class SchemaInterface;
54 //---------------------------------------------------------------------------
55 #ifdef _MSC_VER
56 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
57 #pragma warning( disable : 4251 )
58 #endif
59 //---------------------------------------------------------------------------
60 // doxygen -> warning: unable to resolve reference to 'PAGE_GLO_INDEX' for \ref command
61 // Is a reference to the GlobalObjects documentation.
62 //---------------------------------------------------------------------------
78 {
79 private:
80 //============== Friends
81 //-----------------------------------------------------------------------
82 friend class ClassInfo;
83 //-----------------------------------------------------------------------
84
85 public:
86 //-----------------------------------------------------------------------
87 // >>>>>>>>>>>>>>>>>>>>>> IndexAttributeItem >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
88 //-----------------------------------------------------------------------
104 {
105 private:
106 //============== Attribute
107 //---------------------------------------------------------------------
142 std::vector< AttributeID > m_IndexPathVector;
143 //---------------------------------------------------------------------
156 //---------------------------------------------------------------------
171 //---------------------------------------------------------------------
172 #ifdef _DEBUG
214 #endif
215 //---------------------------------------------------------------------
216
217 private:
218 //============== Konstruktoren
219 //---------------------------------------------------------------------
230 //---------------------------------------------------------------------
231
232 public:
233 //============== Konstruktoren
234 //---------------------------------------------------------------------
259 IndexAttributeItem( const std::vector< AttributeID > & rIndexPathVector,
260 int iSignificantCharacter,
261 bool bIsNum );
262 //---------------------------------------------------------------------
296 IndexAttributeItem( const std::string & rsIndexPath,
297 int iSignificantCharacter,
298 bool bIsNum );
299 //---------------------------------------------------------------------
312 //---------------------------------------------------------------------
323 //---------------------------------------------------------------------
324
325 //============== Methods
326 //---------------------------------------------------------------------
338 void setIndexPath( const std::vector< AttributeID > & rIndexPathVector );
339 //---------------------------------------------------------------------
362 void setIndexPath( const std::string & rsIndexPath );
363 //---------------------------------------------------------------------
375 std::vector< AttributeID > getIndexPath() const;
376 //---------------------------------------------------------------------
387 std::size_t getIndexPathSize() const;
388 //---------------------------------------------------------------------
403 bool isInIndexPath( const AttributeID & rAttributeID ) const;
404 //---------------------------------------------------------------------
426 long getAttributeIdPositionInIndex( const AttributeID & rAttributeID ) const;
427 //---------------------------------------------------------------------
464 bool changeAtributeIdIfExisting( const AttributeID & rExistingAttributeID,
465 const AttributeID & rNewAttributeID );
466 //---------------------------------------------------------------------
521 EnDataType eNewType,
522 SchemaInterface * pSchemaInterface );
523 //---------------------------------------------------------------------
549 int eraseAttributeIdIfExisting( const AttributeID & rAttributeID );
550 //---------------------------------------------------------------------
575 std::string getIndexPathAsIdString() const;
576 //---------------------------------------------------------------------
594 std::string getIndexPathAsNameString( const SchemaInterface & rSchemaInterface ) const;
595 //---------------------------------------------------------------------
611 void setSignificantCharacter( int iSignificantCharacter );
612 //---------------------------------------------------------------------
627 //---------------------------------------------------------------------
645 void setIsNum( bool bIsNum );
646 //---------------------------------------------------------------------
664 bool getIsNum() const;
665 //---------------------------------------------------------------------
684 //---------------------------------------------------------------------
685
686 //============== Operators
687 //---------------------------------------------------------------------
689
700 bool operator== ( const ClassInfoIndex::IndexAttributeItem & rT ) const;
701 bool operator!= ( const ClassInfoIndex::IndexAttributeItem & rT ) const;
703 //---------------------------------------------------------------------
716 //---------------------------------------------------------------------
717 };
718 //-----------------------------------------------------------------------
719 // <<<<<<<<<<<<<<<<<<<<<< IndexAttributeItem <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
720 //-----------------------------------------------------------------------
721
722 private:
723 //============== Attribute
724 //-----------------------------------------------------------------------
734 std::list<IndexAttributeItem *> m_AttributeList;
735 //-----------------------------------------------------------------------
745 std::list< IndexAttributeItem * >::iterator m_AttributeListIterator;
746 //-----------------------------------------------------------------------
757 //-----------------------------------------------------------------------
770 //-----------------------------------------------------------------------
782 std::vector< eut::LanguageFunctions::EnLanguageKey > m_LanguageKeys;
783 //-----------------------------------------------------------------------
805 //-----------------------------------------------------------------------
806
807 public:
808 //============= Konstruktoren
809 //-----------------------------------------------------------------------
820 //-----------------------------------------------------------------------
832 ClassInfoIndex( const std::string & rsIndexName );
833 //-----------------------------------------------------------------------
865 ClassInfoIndex( const std::string & rsIndexName,
866 bool bUnique,
867 bool bCaseSensitive,
868 const std::string & rsLanguageKeys,
869 bool bIndexDelimiter );
870 //-----------------------------------------------------------------------
900 ClassInfoIndex( const std::string & rsIndexName,
901 bool bUnique,
902 bool bCaseSensitive,
903 const std::vector< eut::LanguageFunctions::EnLanguageKey > & rLanguageKeys,
904 bool bIndexDelimiter );
905 //-----------------------------------------------------------------------
918 //-----------------------------------------------------------------------
929 //-----------------------------------------------------------------------
930
931 //============== Methoden
932 //-----------------------------------------------------------------------
947 void setUnique( bool bUnique );
948 //-----------------------------------------------------------------------
961 bool isUnique() const;
962 //-----------------------------------------------------------------------
979 void setCaseSensitive( bool bCaseSensitive );
980 //-----------------------------------------------------------------------
995 bool isCaseSensitive() const;
996 //-----------------------------------------------------------------------
1011 void setLanguageKeys( const std::vector< eut::LanguageFunctions::EnLanguageKey > & rLanguageKeys );
1012 //-----------------------------------------------------------------------
1026 //-----------------------------------------------------------------------
1040 //-----------------------------------------------------------------------
1053 std::vector< eut::LanguageFunctions::EnLanguageKey > getLanguageKeys() const;
1054 //-----------------------------------------------------------------------
1072 std::string getLanguageKeysAsString( const std::string & sDelimiter = "|" ) const;
1073 //-----------------------------------------------------------------------
1091 std::string getLanguageIsoCodes( const std::string & sDelimiter = "|" ) const;
1092 //-----------------------------------------------------------------------
1105 void setIndexDelimiter( bool bIndexDelimiter );
1106 //-----------------------------------------------------------------------
1120 //-----------------------------------------------------------------------
1144 void appendIndexAttributeItem( IndexAttributeItem * pIndexAttributeItem );
1145 //-----------------------------------------------------------------------
1169 void appendIndexAttributeItem( const std::vector< AttributeID > & rIndexPathVector,
1170 int iSignificantCharacter,
1171 bool bIsNum );
1172 //-----------------------------------------------------------------------
1207 void appendIndexAttributeItem( const std::string & rsIndexPath,
1208 int iSignificantCharacter,
1209 bool bIsNum );
1210 //-----------------------------------------------------------------------
1244 //-----------------------------------------------------------------------
1258 std::list<ClassInfoIndex::IndexAttributeItem *> * getAttributeListPointer();
1259 //-----------------------------------------------------------------------
1275 void transferAttributeList( std::list< IndexAttributeItem * > & rTargetAttributeList,
1276 const std::list< IndexAttributeItem * > & rSourceAttributeList );
1277 //-----------------------------------------------------------------------
1297 bool attributeListsAreEqual( const std::list< IndexAttributeItem * > & rAttributeList1,
1298 const std::list< IndexAttributeItem * > & rAttributeList2 ) const;
1299 //-----------------------------------------------------------------------
1318 bool thisAttributeListsAreEqualWith( const std::list< IndexAttributeItem * > & rComparisionAttributeList ) const;
1319 //-----------------------------------------------------------------------
1330 //-----------------------------------------------------------------------
1344 void acceptAttributeList( const std::list< IndexAttributeItem * > & rAttributeList );
1345 //-----------------------------------------------------------------------
1355 std::size_t getNumberOfAttributes() const;
1356 //-----------------------------------------------------------------------
1357
1358 //============== Debug-Methoden
1359 //-----------------------------------------------------------------------
1360 #ifdef _DEBUG
1370 std::string _DEBUG_ToString();
1371 #endif
1372 //-----------------------------------------------------------------------
1373
1374 //============== Operatoren
1375 //-----------------------------------------------------------------------
1377
1388 bool operator== ( const ClassInfoIndex & rT ) const;
1389 bool operator!= ( const ClassInfoIndex & rT ) const;
1391 //-----------------------------------------------------------------------
1403 ClassInfoIndex & operator= ( const ClassInfoIndex & rT );
1404 //-----------------------------------------------------------------------
1405 };
1406 //---------------------------------------------------------------------------
1407 #ifdef _MSC_VER
1408 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
1409 #pragma warning( default : 4251 )
1410 #endif
1411 //---------------------------------------------------------------------------
1412} // namespace glo
1413#endif
Header für LanguageFunctions
Header für ClassInfoAttribute und ClassInfoAttribute::Type
Header für ClassInfoItem
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 Klasse beinhaltet alle Informationen um Objekte einer Klasse in einer Datenbank speichern zu kö...
Definition GloClassInfo.h:79
Information für den Index aus welcher Klasse welches Attribut mit wie viel Zeichen zum Index gehört.
Definition GloClassInfoIndex.h:104
int adjustAttributeTypeIfExisting(const AttributeID &rAttributeID, EnDataType eNewType, SchemaInterface *pSchemaInterface)
bool changeAtributeIdIfExisting(const AttributeID &rExistingAttributeID, const AttributeID &rNewAttributeID)
int m_iSignificantCharacter
Definition GloClassInfoIndex.h:155
bool isInIndexPath(const AttributeID &rAttributeID) const
IndexAttributeItem(const std::vector< AttributeID > &rIndexPathVector, int iSignificantCharacter, bool bIsNum)
std::vector< AttributeID > m_IndexPathVector
Definition GloClassInfoIndex.h:142
bool m_bIsNum
Definition GloClassInfoIndex.h:170
void setSignificantCharacter(int iSignificantCharacter)
int m_iInstanzInfo
Definition GloClassInfoIndex.h:213
IndexAttributeItem(const std::string &rsIndexPath, int iSignificantCharacter, bool bIsNum)
int eraseAttributeIdIfExisting(const AttributeID &rAttributeID)
IndexAttributeItem(const IndexAttributeItem &rT)
std::vector< AttributeID > getIndexPath() const
void setIndexPath(const std::string &rsIndexPath)
std::string getIndexPathAsIdString() const
long getAttributeIdPositionInIndex(const AttributeID &rAttributeID) const
void setIndexPath(const std::vector< AttributeID > &rIndexPathVector)
AttributeID getLastIndexClassInfoAttribute() const
std::string getIndexPathAsNameString(const SchemaInterface &rSchemaInterface) const
In Objekten dieser Klasse sind die Information für GlobalObjects, wie ein Index aufgebaut ist.
Definition GloClassInfoIndex.h:78
ClassInfoIndex(const std::string &rsIndexName, bool bUnique, bool bCaseSensitive, const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys, bool bIndexDelimiter)
bool isCaseSensitive() const
bool thisAttributeListsAreEqualWith(const std::list< IndexAttributeItem * > &rComparisionAttributeList) const
void setLanguageKey(eut::LanguageFunctions::EnLanguageKey eLanguageKey)
std::string getLanguageKeysAsString(const std::string &sDelimiter="|") const
std::list< IndexAttributeItem * >::iterator m_AttributeListIterator
Definition GloClassInfoIndex.h:745
std::vector< eut::LanguageFunctions::EnLanguageKey > getLanguageKeys() const
std::size_t getNumberOfAttributes() const
ClassInfoIndex(const ClassInfoIndex &rT)
void setUnique(bool bUnique)
std::vector< eut::LanguageFunctions::EnLanguageKey > m_LanguageKeys
Definition GloClassInfoIndex.h:782
bool usesIndexDelimiter() const
void acceptAttributeList(const std::list< IndexAttributeItem * > &rAttributeList)
void appendIndexAttributeItem(const std::string &rsIndexPath, int iSignificantCharacter, bool bIsNum)
bool m_bIndexDelimiter
Definition GloClassInfoIndex.h:804
void appendIndexAttributeItem(IndexAttributeItem *pIndexAttributeItem)
std::list< ClassInfoIndex::IndexAttributeItem * > * getAttributeListPointer()
bool isUnique() const
ClassInfoIndex(const std::string &rsIndexName)
virtual ~ClassInfoIndex()
void setLanguageKeys(const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys)
bool m_bCaseSensitive
Definition GloClassInfoIndex.h:769
std::string _DEBUG_ToString()
void removeLanguage(eut::LanguageFunctions::EnLanguageKey eLanguageKey)
void appendIndexAttributeItem(const std::vector< AttributeID > &rIndexPathVector, int iSignificantCharacter, bool bIsNum)
void setCaseSensitive(bool bCaseSensitive)
ClassInfoIndex(const std::string &rsIndexName, bool bUnique, bool bCaseSensitive, const std::string &rsLanguageKeys, bool bIndexDelimiter)
void transferAttributeList(std::list< IndexAttributeItem * > &rTargetAttributeList, const std::list< IndexAttributeItem * > &rSourceAttributeList)
bool attributeListsAreEqual(const std::list< IndexAttributeItem * > &rAttributeList1, const std::list< IndexAttributeItem * > &rAttributeList2) const
ClassInfoIndex::IndexAttributeItem * getIndexAttributeItem(EnSeekMode eMode)
std::list< IndexAttributeItem * > m_AttributeList
Definition GloClassInfoIndex.h:734
bool m_bUnique
Definition GloClassInfoIndex.h:756
void setIndexDelimiter(bool bIndexDelimiter)
std::string getLanguageIsoCodes(const std::string &sDelimiter="|") const
Basisklasse von ClassInfoAttribute und ClassInfoIndex.
Definition GloClassInfoItem.h:69
Diese Klasse ist die Schnittstelle zu einem GlobalObjects-Schema. Sie beinhaltet alle Klasseninformat...
Definition GloSchemaInterface.h:84
EnLanguageKey
Definition EuLanguageFunctions.h:72
Definition GloAbstractBaseLot.h:42
EnSeekMode
Definition GloTypes.h:166
EnDataType
Definition GloRecordAttributeTypes.h:547