File indexing completed on 2024-05-12 16:42:38
0001 /* 0002 SPDX-FileCopyrightText: 2014-2016 Christian Dávid <christian-david@web.de> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef MYMONEYPAYEEIDENTIFIERCONTAINER_H 0007 #define MYMONEYPAYEEIDENTIFIERCONTAINER_H 0008 0009 #include "kmm_mymoney_export.h" 0010 0011 #include <QList> 0012 0013 #include "payeeidentifier/payeeidentifier.h" 0014 0015 /** 0016 * 0017 * 0018 * @internal payeeIdentifiers should get their own id. So they can be created as all other MyMoneyObjects. 0019 * But adding a MyMoneyObject to MyMoneyFile and its storage backends is so time-consuming, 0020 * I won't do that - sorry. So all payeeIdentifiers have to be created when a MyMoneyPayeeIdentifierContainer 0021 * is loaded. Optimal would be if they are only created if needed (which won't be often). 0022 */ 0023 template <class T> class payeeIdentifierTyped; 0024 class KMM_MYMONEY_EXPORT MyMoneyPayeeIdentifierContainer 0025 { 0026 public: 0027 MyMoneyPayeeIdentifierContainer(); 0028 0029 unsigned int payeeIdentifierCount() const; 0030 ::payeeIdentifier payeeIdentifier(unsigned int) const; 0031 QList< ::payeeIdentifier > payeeIdentifiers() const; 0032 0033 template< class type > 0034 QList< ::payeeIdentifierTyped<type> > payeeIdentifiersByType() const; 0035 0036 void addPayeeIdentifier(const ::payeeIdentifier& ident); 0037 void addPayeeIdentifier(const unsigned int position, const ::payeeIdentifier& ident); 0038 0039 void removePayeeIdentifier(const ::payeeIdentifier& ident); 0040 void removePayeeIdentifier(const int index); 0041 0042 void modifyPayeeIdentifier(const ::payeeIdentifier& ident); 0043 void modifyPayeeIdentifier(const int index, const ::payeeIdentifier& ident); 0044 0045 void resetPayeeIdentifiers(const QList< ::payeeIdentifier >& list = QList< ::payeeIdentifier >()); 0046 0047 void loadXML(QDomElement node); 0048 void writeXML(QDomDocument document, QDomElement parent) const; 0049 0050 protected: 0051 QList< ::payeeIdentifier > m_payeeIdentifiers; 0052 }; 0053 0054 template< class type > 0055 QList< payeeIdentifierTyped<type> > MyMoneyPayeeIdentifierContainer::payeeIdentifiersByType() const 0056 { 0057 QList< payeeIdentifierTyped<type> > typedList; 0058 return typedList; 0059 } 0060 0061 #endif // MYMONEYPAYEEIDENTIFIERCONTAINER_H