File indexing completed on 2024-05-12 05:06:41

0001 /*
0002     SPDX-FileCopyrightText: 2005-2018 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef MYMONEYOBJECT_P_H
0008 #define MYMONEYOBJECT_P_H
0009 
0010 // ----------------------------------------------------------------------------
0011 // QT Includes
0012 
0013 #include <QSet>
0014 #include <QString>
0015 
0016 // ----------------------------------------------------------------------------
0017 // Project Includes
0018 
0019 class MyMoneyObjectPrivate
0020 {
0021 public:
0022     MyMoneyObjectPrivate()
0023     {
0024     }
0025 
0026     MyMoneyObjectPrivate(const MyMoneyObjectPrivate& right)
0027     {
0028         *this = right;
0029     }
0030 
0031     MyMoneyObjectPrivate& operator=(const MyMoneyObjectPrivate& right)
0032     {
0033         m_id = right.m_id;
0034         m_referencedObjects = right.m_referencedObjects;
0035         return *this;
0036     }
0037 
0038     virtual ~MyMoneyObjectPrivate()
0039     {
0040     }
0041 
0042     void setId(const QString& id)
0043     {
0044         m_id = id;
0045     }
0046 
0047     /**
0048      * This method must be provided by all derived object. It fills
0049      * the @c m_referencedObjects set with the ids that are
0050      * referenced by this object.
0051      */
0052     virtual void collectReferencedObjects() = 0;
0053 
0054     void clearReferences()
0055     {
0056         m_referencedObjects.clear();
0057     }
0058 
0059     QString m_id;
0060     QSet<QString> m_referencedObjects;
0061 };
0062 
0063 #endif