File indexing completed on 2024-05-12 16:42:34

0001 /*
0002     SPDX-FileCopyrightText: 2012-2016 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #include "mymoneycostcenter.h"
0007 
0008 // ----------------------------------------------------------------------------
0009 // QT Includes
0010 
0011 #include <QCollator>
0012 
0013 // ----------------------------------------------------------------------------
0014 // Project Includes
0015 
0016 #include "mymoneyobject_p.h"
0017 #include "mymoneyexception.h"
0018 
0019 MyMoneyCostCenter MyMoneyCostCenter::null;
0020 
0021 class MyMoneyCostCenterPrivate : public MyMoneyObjectPrivate
0022 {
0023 public:
0024     QString m_name;
0025 };
0026 
0027 MyMoneyCostCenter::MyMoneyCostCenter() :
0028     MyMoneyObject(*new MyMoneyCostCenterPrivate)
0029 {
0030 }
0031 
0032 MyMoneyCostCenter::MyMoneyCostCenter(const QString &id) :
0033     MyMoneyObject(*new MyMoneyCostCenterPrivate, id)
0034 {
0035 }
0036 
0037 MyMoneyCostCenter::MyMoneyCostCenter(const MyMoneyCostCenter& other) :
0038     MyMoneyObject(*new MyMoneyCostCenterPrivate(*other.d_func()), other.id())
0039 {
0040 }
0041 
0042 MyMoneyCostCenter::MyMoneyCostCenter(const QString& id, const MyMoneyCostCenter& other) :
0043     MyMoneyObject(*new MyMoneyCostCenterPrivate(*other.d_func()), id)
0044 {
0045 }
0046 
0047 MyMoneyCostCenter::~MyMoneyCostCenter()
0048 {
0049 }
0050 
0051 bool MyMoneyCostCenter::operator == (const MyMoneyCostCenter& right) const
0052 {
0053     Q_D(const MyMoneyCostCenter);
0054     auto d2 = static_cast<const MyMoneyCostCenterPrivate *>(right.d_func());
0055     return (MyMoneyObject::operator==(right) &&
0056             ((d->m_name.length() == 0 && d2->m_name.length() == 0) || (d->m_name == d2->m_name)));
0057 }
0058 
0059 bool MyMoneyCostCenter::operator < (const MyMoneyCostCenter& right) const
0060 {
0061     Q_D(const MyMoneyCostCenter);
0062     auto d2 = static_cast<const MyMoneyCostCenterPrivate *>(right.d_func());
0063     QCollator col;
0064     return col.compare(d->m_name, d2->m_name);
0065 }
0066 
0067 bool MyMoneyCostCenter::hasReferenceTo(const QString& /*id*/) const
0068 {
0069     return false;
0070 }
0071 
0072 QString MyMoneyCostCenter::name() const
0073 {
0074     Q_D(const MyMoneyCostCenter);
0075     return d->m_name;
0076 }
0077 
0078 void MyMoneyCostCenter::setName(const QString& val)
0079 {
0080     Q_D(MyMoneyCostCenter);
0081     d->m_name = val;
0082 }
0083 
0084 
0085 QString MyMoneyCostCenter::shortName() const
0086 {
0087     Q_D(const MyMoneyCostCenter);
0088     QRegExp shortNumberExp("^(\\d+)\\s.+");
0089     if(shortNumberExp.exactMatch(d->m_name)) {
0090         return shortNumberExp.cap(1);
0091     }
0092     return d->m_name;
0093 }