GlobalObjects
Loading...
Searching...
No Matches
GloClassInfoAttribute.h
Go to the documentation of this file.
1#ifndef INC_GLOCLASSINFOATTRIBUTE_H
2#define INC_GLOCLASSINFOATTRIBUTE_H
3//-----------------------------------------------------------------------------
43//-----------------------------------------------------------------------------
44#include "GloTypes.h"
45#include <string>
46#include <unordered_set>
47#include "GloClassInfoItem.h"
48#include "EuLanguageFunctions.h"
49//-----------------------------------------------------------------------------
50namespace glo
51{
52 //---------------------------------------------------------------------------
54 class AttributeID;
55 class GloBaseRecordAttribute;
56 //---------------------------------------------------------------------------
57 #ifdef _MSC_VER
58 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
59 #pragma warning( disable : 4251 )
60 #endif
61 //---------------------------------------------------------------------------
83 {
84 private:
85 //============== Friends
86 //-----------------------------------------------------------------------
87 friend class SchemaInterface;
88 friend class ClassInfo;
89 //-----------------------------------------------------------------------
90
91 public:
92 //-----------------------------------------------------------------------
93 // >>>>>>>>>>>>>>>>>>>>>>>>>>> Type >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
94 //-----------------------------------------------------------------------
108 {
109 private:
110 //============== Attribute
111 //---------------------------------------------------------------------
122 //---------------------------------------------------------------------
123 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
124 // Is a reference to the GlobalObjects documentation.
125 //---------------------------------------------------------------------
137 std::string m_sInfo;
138 //---------------------------------------------------------------------
150 std::string m_sSubType;
151 //---------------------------------------------------------------------
163 unsigned long m_ulSubTypeClassID;
164 //---------------------------------------------------------------------
165
166 public:
167 //============== Konstruktoren
168 //---------------------------------------------------------------------
179 //---------------------------------------------------------------------
180 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
181 // Is a reference to the GlobalObjects documentation.
182 //---------------------------------------------------------------------
209 const std::string & rsInfo,
210 const std::string & rsSubType,
211 unsigned long ulSubTypeClassID );
212 //---------------------------------------------------------------------
224 Type( const Type & rT );
225 //---------------------------------------------------------------------
226
227 //============== Methoden
228 //---------------------------------------------------------------------
240 void setType( EnDataType eType );
241 //---------------------------------------------------------------------
254 //---------------------------------------------------------------------
255 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
256 // Is a reference to the GlobalObjects documentation.
257 //---------------------------------------------------------------------
271 void setTypeInfo( const std::string & rsInfo );
272 //---------------------------------------------------------------------
273 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
274 // Is a reference to the GlobalObjects documentation.
275 //---------------------------------------------------------------------
289 std::string getTypeInfo() const;
290 //---------------------------------------------------------------------
305 //---------------------------------------------------------------------
326 bool isCrossreferenceType( unsigned long & rulBaseID ) const;
327 //---------------------------------------------------------------------
351 bool isCrossreferenceType( std::string & rsCrossRefFileName ) const;
352 //---------------------------------------------------------------------
366 void setSubType( const std::string & rsSubType );
367 //---------------------------------------------------------------------
381 std::string getSubType() const;
382 //---------------------------------------------------------------------
396 void setSubTypeClassID( unsigned long ulSubTypeClassID );
397 //---------------------------------------------------------------------
411 unsigned long getSubTypeClassID() const;
412 //---------------------------------------------------------------------
413
414 //============== Operatoren
415 //---------------------------------------------------------------------
417
428 bool operator== ( const ClassInfoAttribute::Type & rT ) const;
429 bool operator!= ( const ClassInfoAttribute::Type & rT ) const;
431 //---------------------------------------------------------------------
444 //---------------------------------------------------------------------
445 };
446 //-----------------------------------------------------------------------
447 // <<<<<<<<<<<<<<<<<<<<<<<<<<<< Type <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
448 //-----------------------------------------------------------------------
449
450 private:
451 //============== Attribute
452 //-----------------------------------------------------------------------
464 std::string m_sTableName;
465 //-----------------------------------------------------------------------
477 std::string m_sFieldName;
478 //-----------------------------------------------------------------------
491 //-----------------------------------------------------------------------
502 //-----------------------------------------------------------------------
503
504 //============== Developer Attribute
505 //-----------------------------------------------------------------------
526 //-----------------------------------------------------------------------
527
528 public:
529 //============= Konstruktoren
530 //-----------------------------------------------------------------------
541 //-----------------------------------------------------------------------
542 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
543 // Is a reference to the GlobalObjects documentation.
544 //-----------------------------------------------------------------------
576 ClassInfoAttribute( const std::string & rsName,
577 const std::string & rsTableName,
578 const std::string & rsFieldName,
579 int iFieldPos,
580 const std::string & rsAttributeType,
581 const std::string & rsInfo );
582 //-----------------------------------------------------------------------
595 //-----------------------------------------------------------------------
606 //-----------------------------------------------------------------------
607
608 //============== Methoden
609 //-----------------------------------------------------------------------
620 //-----------------------------------------------------------------------
634 void setTableName( const std::string & rsName );
635 //-----------------------------------------------------------------------
649 void setFieldName( const std::string & rsName );
650 //-----------------------------------------------------------------------
662 void setFieldPos( int iFieldPos );
663 //-----------------------------------------------------------------------
675 void setDataType( EnDataType eType );
676 //-----------------------------------------------------------------------
677 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
678 // Is a reference to the GlobalObjects documentation.
679 //-----------------------------------------------------------------------
695 void setDataTypeInfo( const std::string & rsInfo );
696 //-----------------------------------------------------------------------
709 void setDataTypeSubType( const std::string & rsSubType );
710 //-----------------------------------------------------------------------
723 void setDataTypeSubTypeClassID( unsigned long ulSubTypeClassID );
724 //-----------------------------------------------------------------------
738 std::string getClassAttributeName() const;
739 //-----------------------------------------------------------------------
753 std::string getTableFieldName() const;
754 //-----------------------------------------------------------------------
764 std::string getTableName() const;
765 //-----------------------------------------------------------------------
775 std::string getFieldName() const;
776 //-----------------------------------------------------------------------
786 int getFieldPos() const;
787 //-----------------------------------------------------------------------
797 std::string getFieldPosAsString() const;
798 //-----------------------------------------------------------------------
809 //-----------------------------------------------------------------------
820 //-----------------------------------------------------------------------
831 std::string getDataTypeSubType() const;
832 //-----------------------------------------------------------------------
843 unsigned long getDataTypeSubTypeClassID() const;
844 //-----------------------------------------------------------------------
855 std::string getDataTypeInfo() const;
856 //-----------------------------------------------------------------------
871 //-----------------------------------------------------------------------
891 bool isCrossreferenceType( unsigned long & rulBaseID ) const;
892 //-----------------------------------------------------------------------
916 bool isCrossreferenceType( std::string & rsCrossRefFileName ) const;
917 //-----------------------------------------------------------------------
927 bool isNum() const;
928 //-----------------------------------------------------------------------
940 //-----------------------------------------------------------------------
953 std::string getTypeAsCppString() const;
954 //-----------------------------------------------------------------------
969 std::string getTypeAsString() const;
970 //-----------------------------------------------------------------------
981 //-----------------------------------------------------------------------
1005 std::string formatAnIndexString( const std::string & rsStringToBeFormatted,
1006 const std::vector< eut::LanguageFunctions::EnLanguageKey > & rLanguageKeys,
1007 bool bCaseSensitive,
1008 void * pIndexAttributeItem ) const;
1009 //-----------------------------------------------------------------------
1039 std::string formatAnSearchIndexString( const std::string & rsStringToBeFormatted,
1040 const std::vector< eut::LanguageFunctions::EnLanguageKey > & rLanguageKeys,
1041 bool bCaseSensitive,
1042 void * pIndexAttributeItem ) const;
1043 //-----------------------------------------------------------------------
1044
1045 public:
1046 //============== Developer Methoden
1047 //-----------------------------------------------------------------------
1059 void setDeveloperAccessControl( const std::string & rsAccessControl );
1060 //-----------------------------------------------------------------------
1070 std::string getDeveloperAccessControl() const;
1071 //-----------------------------------------------------------------------
1072
1073 //============== Debug-Methoden
1074 //-----------------------------------------------------------------------
1075 #ifdef _DEBUG
1085 std::string _DEBUG_ToString();
1086 #endif
1087 //-----------------------------------------------------------------------
1088
1089 private:
1090 //============== Methoden
1091 //-----------------------------------------------------------------------
1119 std::string formatAnyIndexString( const std::string & rsStringToBeFormatted,
1120 const std::vector< eut::LanguageFunctions::EnLanguageKey > & rLanguageKeys,
1121 bool bCaseSensitive,
1122 bool bIsSearchString,
1123 void * pIndexAttributeItem ) const;
1124 //-----------------------------------------------------------------------
1125 // doxygen -> warning: unable to resolve reference to 'GLO_REF_DEPENDENT' for \ref command
1126 // Is a reference to the GlobalObjects documentation.
1127 //-----------------------------------------------------------------------
1152 void convertAttributeType( const std::string & rsType,
1153 const std::string & rsTypeInfo );
1154 //-----------------------------------------------------------------------
1155
1156 public:
1157 //============== static Methoden
1158 //-----------------------------------------------------------------------
1184 std::string & rsMin,
1185 std::string & rsMax,
1186 std::string & rsDataFieldSize );
1187 //-----------------------------------------------------------------------
1206 static EnDataType getTypeFromString( const std::string & rsType );
1207 //-----------------------------------------------------------------------
1230 static std::string getTypeAsString( EnDataType eType,
1231 bool bSimple = true );
1232 //-----------------------------------------------------------------------
1256 static std::string getTypeAsCppString( EnDataType eType,
1257 const std::string & rsSubType );
1258 //-----------------------------------------------------------------------
1278 //-----------------------------------------------------------------------
1295 static unsigned int getDataTypesCount();
1296 //-----------------------------------------------------------------------
1315 static bool isNum( EnDataType eDataType );
1316 //-----------------------------------------------------------------------
1336 static int getSignificantCharacter( EnDataType eDataType );
1337 //-----------------------------------------------------------------------
1338
1339 //============== Operatoren
1340 //-----------------------------------------------------------------------
1342
1353 bool operator== ( const ClassInfoAttribute & rT ) const;
1354 bool operator!= ( const ClassInfoAttribute & rT ) const;
1356 //-----------------------------------------------------------------------
1368 ClassInfoAttribute & operator= ( const ClassInfoAttribute & rT );
1369 //-----------------------------------------------------------------------
1370 };
1371 //---------------------------------------------------------------------------
1372 #ifdef _MSC_VER
1373 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
1374 #pragma warning( default : 4251 )
1375 #endif
1376 //---------------------------------------------------------------------------
1377} // namespace glo
1378#endif
Header for LanguageFunctions
Header for ClassInfoItem
For each library, here 'GlobalObjects' there is a type file.
#define __glo_export_dll
Definition GloTypes.h:70
This class reflects a unique ID of a class information attribute.
Definition GloAttributeID.h:81
Summarized type information for a ClassInfoAttribute.
Definition GloClassInfoAttribute.h:108
EnDataType getType() const
unsigned long m_ulSubTypeClassID
Definition GloClassInfoAttribute.h:163
Type(EnDataType eType, const std::string &rsInfo, const std::string &rsSubType, unsigned long ulSubTypeClassID)
bool isCrossreferenceType(std::string &rsCrossRefFileName) const
std::string getSubType() const
bool isCrossreferenceType(unsigned long &rulBaseID) const
EnDataType m_eType
Definition GloClassInfoAttribute.h:121
std::string getTypeInfo() const
unsigned long getSubTypeClassID() const
std::string m_sInfo
Definition GloClassInfoAttribute.h:137
std::string m_sSubType
Definition GloClassInfoAttribute.h:150
void setSubType(const std::string &rsSubType)
void setSubTypeClassID(unsigned long ulSubTypeClassID)
void setType(EnDataType eType)
void setTypeInfo(const std::string &rsInfo)
In objects of this class, the information for GlobalObjects is how a persistent class attribute is st...
Definition GloClassInfoAttribute.h:83
unsigned long getDataTypeSubTypeClassID() const
std::string getTypeAsString() const
void setDataTypeInfo(const std::string &rsInfo)
static std::string getTypeAsString(EnDataType eType, bool bSimple=true)
std::string getClassAttributeName() const
ClassInfoAttribute(const std::string &rsName, const std::string &rsTableName, const std::string &rsFieldName, int iFieldPos, const std::string &rsAttributeType, const std::string &rsInfo)
static int getSignificantCharacter(EnDataType eDataType)
std::string getTypeAsCppString() const
std::string getFieldName() const
static std::string getTypeAsCppString(EnDataType eType, const std::string &rsSubType)
std::string getDataTypeSubType() const
std::string m_sTableName
Definition GloClassInfoAttribute.h:464
void setDataTypeSubTypeClassID(unsigned long ulSubTypeClassID)
static EnDataTypeGroup getInfoType(EnDataType eType)
void setDataType(EnDataType eType)
void setFieldPos(int iFieldPos)
void setDeveloperAccessControl(const std::string &rsAccessControl)
std::string getFieldPosAsString() const
std::string getTableName() const
std::string m_sFieldName
Definition GloClassInfoAttribute.h:477
static EnDataType getTypeFromString(const std::string &rsType)
void convertAttributeType(const std::string &rsType, const std::string &rsTypeInfo)
EnDataTypeGroup getInfoType()
static int getRecordAttributeLimits(const ClassInfoAttribute::Type &rDataType, std::string &rsMin, std::string &rsMax, std::string &rsDataFieldSize)
std::string m_sDeveloperAccessControl
Definition GloClassInfoAttribute.h:525
bool isCrossreferenceType(unsigned long &rulBaseID) const
std::string formatAnSearchIndexString(const std::string &rsStringToBeFormatted, const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys, bool bCaseSensitive, void *pIndexAttributeItem) const
int m_iFieldPos
Definition GloClassInfoAttribute.h:490
std::string _DEBUG_ToString()
bool isCrossreferenceType() const
ClassInfoAttribute::Type m_Type
Definition GloClassInfoAttribute.h:501
int getSignificantCharacter() const
ClassInfoAttribute(const ClassInfoAttribute &rT)
std::string getDataTypeInfo() const
void setDataTypeSubType(const std::string &rsSubType)
void setTableName(const std::string &rsName)
EnDataType getDataType() const
std::string getTableFieldName() const
static bool isNum(EnDataType eDataType)
void setFieldName(const std::string &rsName)
AttributeID getAttributeID() const
bool isCrossreferenceType(std::string &rsCrossRefFileName) const
std::string formatAnyIndexString(const std::string &rsStringToBeFormatted, const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys, bool bCaseSensitive, bool bIsSearchString, void *pIndexAttributeItem) const
ClassInfoAttribute::Type getType() const
std::string formatAnIndexString(const std::string &rsStringToBeFormatted, const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys, bool bCaseSensitive, void *pIndexAttributeItem) const
std::string getDeveloperAccessControl() const
static unsigned int getDataTypesCount()
This class contains all information to store objects of a class in a database, to build objects from ...
Definition GloClassInfo.h:86
Base class of a ClassInfoAttribute and a ClassInfoIndex.
Definition GloClassInfoItem.h:76
This class is the interface to a GlobalObjects schema. It contains all class information to store obj...
Definition GloSchemaInterface.h:91
Definition GloAbstractBaseLot.h:49
EnDataTypeGroup
Definition GloRecordAttributeTypes.h:654
EnDataType
Definition GloRecordAttributeTypes.h:558