BankAndCustomer
Loading...
Searching...
No Matches
Person Class Reference

An abstract person from which natural and legal persons can be derived. More...

#include <Person.h>

Inheritance diagram for Person:
Collaboration diagram for Person:

Public Member Functions

 Person ()
 
 Person (const std::string &rsName)
 
 ~Person ()
 
int initBankAccounts ()
 
virtual int preDeleteInBase (glo::EnDeepMode eDeepMode, void *&prData) override
 
virtual void postDeleteInBase (int iDeleteErr, glo::EnDeepMode eDeepMode, void *pData) override
 
void setName (const std::string &rsName)
 
std::string getName () const
 
int setBankAccount (const std::string &rsIBAN, const std::string &rsBIC)
 
int setBankAccount (Bank &rBank, const std::string &rsIBAN)
 
int setBankAccount (std::shared_ptr< Bank > rBank, const std::string &rsIBAN)
 
int removeBankAccount (const std::string &rsIBAN)
 
int getBankAccount (std::shared_ptr< BankAccount > &rRetVal, glo::EnSeekMode eMode)
 
int getBankAccount (std::shared_ptr< BankAccount > &rRetVal, const std::string &rsIBAN)
 
int getBankAccounts (std::vector< std::shared_ptr< BankAccount > > &rRetVal, std::shared_ptr< Bank > rBank)
 
int getBank (std::shared_ptr< Bank > &rRetVal, const std::string &rsIBAN)
 
- Public Member Functions inherited from glo::Persistent
 Persistent ()
 
 Persistent (const Persistent &rT)
 
virtual void activate ()
 
virtual int assign (Base &rBase) override
 
virtual void removeBase () override
 
virtual ObjID getObjID () const override
 
virtual std::time_t getCreateDate () const override
 
virtual std::time_t getLastChangeDate () const override
 
virtual void takeOverRecord (Record *pRecord) override
 
virtual int preStore (EnDeepMode eDeepMode, void *&prData)
 
virtual int store (EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postStore (int iStoreErr, EnDeepMode eDeepMode, void *pData)
 
virtual int preDeleteInBase (EnDeepMode eDeepMode, void *&prData)
 
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postDeleteInBase (int iDeleteErr, EnDeepMode eDeepMode, void *pData)
 
virtual int preRefresh (void *&prData)
 
virtual int refresh () override
 
virtual void postRefresh (int iRefreshErr, void *pData)
 
virtual int preLock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postLock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual int preRelock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int relock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postRelock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual int preUnlock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postUnlock (int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual int preSetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
 
virtual void postSetWatch (int iSetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
 
virtual int preUnsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
 
virtual void postUnsetWatch (int iUnsetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
 
virtual unsigned long getGloClassID () const override
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual int setGloAttribute (const AttributeID &rAttributeID, void *pPara)
 
virtual void * getGloAttribute (const AttributeID &rAttributeID)
 
virtual int setGloAttribute (const std::string &rstrAttributName, void *pPara)
 
virtual void * getGloAttribute (const std::string &rstrAttributName)
 
virtual bool isSameOrSuperClassFrom (const glo::Persistent *pPersistent) const
 Checks if passed object can be cast to this.
 
virtual bool isSameOrSuperClassFrom (const std::shared_ptr< glo::Persistent > pPersistent) const
 Checks if passed object can be cast to this.
 
- Public Member Functions inherited from glo::BasePersistent
 BasePersistent ()
 
 BasePersistent (const BasePersistent &)
 
virtual int getClassInfo (ClassInfo *&prClassInfo)
 
virtual unsigned int remember ()
 
virtual unsigned int forget ()
 
virtual bool isAssigned () const
 
unsigned int getLinkCount () const
 
int getRecord (Record *&prRecord) const
 
int getRecord (std::shared_ptr< Record > &rRetVal) const
 
int getAllPersAttributeNames (std::list< std::string > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributeNamesSortByID (std::map< AttributeID, std::string > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getPersAttribute (BaseRecordAttribute *&prRetVal, const std::string &sName) const
 
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
 
int getPersAttribute (BaseRecordAttribute *&prRetVal, const AttributeID &rAttributeID) const
 
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const AttributeID &rAttributeID) const
 
int getAllPersAttributes (std::list< BaseRecordAttribute * > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributes (std::list< std::shared_ptr< BaseRecordAttribute > > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByName (std::map< std::string, BaseRecordAttribute *, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByName (std::map< std::string, std::shared_ptr< BaseRecordAttribute >, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByID (std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByID (std::map< AttributeID, std::shared_ptr< BaseRecordAttribute >, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
virtual bool isStored ()
 
virtual bool isDeletedInBase ()
 
virtual int lock (const LockSpecification &rLockSpecification)
 
virtual int relock (const LockSpecification &rLockSpecification)
 
virtual int unlock (const LockSpecification &rLockSpecification)
 
virtual int isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isLocked (const LockSpecification &rLockSpecification) const
 
virtual int isPossible (bool bRead, bool bWrite, bool bDelete, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isPossible (const LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int getProcessingPossibilities (LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int setWatch (const WatchSpecification &rWatchSpec)
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec)
 
BasePersistentoperator= (const BasePersistent &rT)
 
bool operator== (const BasePersistent &rT) const
 Comparison operator, all attributes are compared.
 
bool operator!= (const BasePersistent &rT) const
 Comparison operator, all attributes are compared.
 
- Public Member Functions inherited from glo::CallBack
 CallBack ()
 
 CallBack (Base &rBase)
 
virtual ~CallBack ()
 
virtual void notify (NotifyNote &rNote)
 
virtual void setBase (Base *pBase)
 
Base * getBase () const
 
CallBackoperator= (const CallBack &rT)
 
bool operator== (const CallBack &rT) const
 Comparison operator, all attributes are compared.
 
bool operator!= (const CallBack &rT) const
 Comparison operator, all attributes are compared.
 

Private Member Functions

 GLO_OBJECT (Person:glo::Persistent)
 
 GLO_INDEX (IDXName, Person.m_Name[255], DEU-2 &AUT &DNK &EST &FIN &FRA &ISL &NOR &SWE)
 
 Person (const Person &)
 
Personoperator= (const Person &)
 

Private Attributes

std::string m_Name
 
glo::TAllSet< BankAccountm_BankAccounts
 

Friends

class Bank
 

Additional Inherited Members

- Public Attributes inherited from glo::CallBack
std::string m_strDebugInfo
 
- Protected Member Functions inherited from glo::Persistent
virtual ~Persistent ()
 
virtual void insertInObjectSpy () const override
 
virtual void removeInObjectSpy () const override
 
virtual void setCreateDate () override
 
virtual void _postAssign (Base &rBase)
 
Persistentoperator= (const Persistent &rT)
 
bool operator== (const Persistent &rT) const
 Comparison operator.
 
bool operator!= (const Persistent &rT) const
 Comparison operator.
 
- Protected Member Functions inherited from glo::BasePersistent
virtual ~BasePersistent ()
 
void setSpyaction (bool bSpyaction)
 
- Protected Member Functions inherited from glo::CallBack
 CallBack (const CallBack &rT)
 
- Protected Attributes inherited from glo::BasePersistent
unsigned int m_uiReferenceCount
 
eut::CriticalSection m_LocalCriticalSection
 
Record * m_pRecord
 
bool m_bSpyaction
 

Detailed Description

An abstract person from which natural and legal persons can be derived.

Author
Helmut Jakoby

Constructor & Destructor Documentation

◆ Person() [1/3]

Person::Person ( )

Standard constructor.

◆ Person() [2/3]

Person::Person ( const std::string & rsName)

Constructor with parameter passing.

Parameters
[in]rsNameThe Name of the person.

◆ ~Person()

Person::~Person ( )

Destructor.

◆ Person() [3/3]

Person::Person ( const Person & )
private

The copy constructor is not available.

Member Function Documentation

◆ getBank()

int Person::getBank ( std::shared_ptr< Bank > & rRetVal,
const std::string & rsIBAN )

Returns the bank that manages the account with the provided IBAN.

Parameters
[in,out]rRetValThe object in a std::shared_ptr if found.
[in]rsIBANThe IBAN of the account.
Returns
A return < 0 indicates an error.

◆ getBankAccount() [1/2]

int Person::getBankAccount ( std::shared_ptr< BankAccount > & rRetVal,
const std::string & rsIBAN )

Returns a BankAccount in a std::shared_ptr from the m_BankAccounts with passed IBAN.

Parameters
[in,out]rRetValIf there are no errors, the bank account retrieved is in std::shared_ptr.
[in]rsIBANThe IBAN of the account.
Returns
A return < 0 indicates an error.

◆ getBankAccount() [2/2]

int Person::getBankAccount ( std::shared_ptr< BankAccount > & rRetVal,
glo::EnSeekMode eMode )

Returns a BankAccount in a std::shared_ptr from the m_BankAccounts related to eMode.

Parameters
[in,out]rRetValIf there are no errors, the bank account retrieved is in std::shared_ptr.
[in]eModeThe search mode.
Returns
A return < 0 indicates an error.

◆ getBankAccounts()

int Person::getBankAccounts ( std::vector< std::shared_ptr< BankAccount > > & rRetVal,
std::shared_ptr< Bank > rBank )

Returns bank accounts of the transferred bank.

Parameters
[in,out]rRetValIf no errors occur, the retrieved objects are stored in a std::vector.
[in]rBankThe bank.
Returns
A return < 0 indicates an error.

◆ getName()

std::string Person::getName ( ) const

Returns the name.

Returns
see above

◆ GLO_INDEX()

Person::GLO_INDEX ( IDXName ,
Person. m_Name[255],
DEU-2 &AUT &DNK &EST &FIN &FRA &ISL &NOR & SWE )
private

The name is indexed to speed up the search.

◆ GLO_OBJECT()

Person::GLO_OBJECT ( Person:glo::Persistent )
private

◆ initBankAccounts()

int Person::initBankAccounts ( )

m_BankAccounts is initialized here.

Returns
A return < 0 indicates an error.

◆ operator=()

Person & Person::operator= ( const Person & )
private

The assignment operator is not available.

◆ postDeleteInBase()

virtual void Person::postDeleteInBase ( int iDeleteErr,
glo::EnDeepMode eDeepMode,
void * pData )
overridevirtual

Releases the lock on this Person and terminates the transaction with a commit or abort, depending on the iDeleteErr parameter.

Parameters
[in]iDeleteErrPossibly a deleting error, if != 0 the deleteing in Persistent::deleteInBase(EnDeepMode) was not performed.
[in]eDeepModeThe deletion depth mode is set by the calling method.
[in]pDataThis reference tells the method Person::postDeleteInBase (...) whether the lock, transaction start and deletion of the accounts were successful.
See also
glo::Persistent::postDeleteInBase( EnDeepMode, void *& )

Reimplemented in Bank.

◆ preDeleteInBase()

virtual int Person::preDeleteInBase ( glo::EnDeepMode eDeepMode,
void *& prData )
overridevirtual

Locks the Person to be deleted, starts a transaction and deletes all accounts of this Person.

Parameters
[in]eDeepModeThe deletion depth mode is set by the calling method.
[in]prDataThis reference tells the method Person::postDeleteInBase (...) whether the lock and transaction start were successful.
Returns
A return < 0 indicates an error.
See also
glo::Persistent::preDeleteInBase( EnDeepMode, void *& )

Reimplemented in Bank.

◆ removeBankAccount()

int Person::removeBankAccount ( const std::string & rsIBAN)

The responsible bank has the transferred bank account with the transferred IBAN removed.

Parameters
[in]rsIBANThe IBAN of the account.
Returns
A return < 0 indicates an error.

◆ setBankAccount() [1/3]

int Person::setBankAccount ( Bank & rBank,
const std::string & rsIBAN )

Lets the bank create a bank account with the IBAN provided.

Parameters
[in]rBankThe bank.
[in]rsIBANThe IBAN of the account.
Returns
A return < 0 indicates an error.
Exceptions
eut::ErrorNExceptionAn exception is thrown if there is an unhandleable database error.

◆ setBankAccount() [2/3]

int Person::setBankAccount ( const std::string & rsIBAN,
const std::string & rsBIC )

Lets the bank create a bank account with the IBAN provided using the BIC.

Parameters
[in]rsIBANThe IBAN of the account.
[in]rsBICThe BIC of the bank where the account is created.
Returns
A return < 0 indicates an error.

◆ setBankAccount() [3/3]

int Person::setBankAccount ( std::shared_ptr< Bank > rBank,
const std::string & rsIBAN )

◆ setName()

void Person::setName ( const std::string & rsName)

Sets the name.

Parameters
[in]rsNameThe new name.

Friends And Related Symbol Documentation

◆ Bank

friend class Bank
friend

Member Data Documentation

◆ m_BankAccounts

glo::TAllSet< BankAccount > Person::m_BankAccounts
private

For any existing bank accounts, an AllSet of bank accounts is used, which is instantiated with a corresponding index filter.

◆ m_Name

std::string Person::m_Name
private

The person's name.


The documentation for this class was generated from the following file: