Airline group functions

This commit is contained in:
Klaus Basan
2019-05-22 00:47:21 +02:00
parent ca8f40bc28
commit 213ca4274d
4 changed files with 44 additions and 0 deletions

View File

@@ -1131,6 +1131,30 @@ namespace BlackMisc
return designators;
}
CAirlineIcaoCodeList CAircraftModelList::getAirlineIcaoCodesForGroup(int groupId) const
{
if (groupId < 0) { return {}; }
CAirlineIcaoCodeList icaos;
for (const CAircraftModel &model : *this)
{
if (model.getAirlineIcaoCode().getGroupId() == groupId)
{
icaos.push_back(model.getAirlineIcaoCode());
}
}
return icaos;
}
QSet<QString> CAircraftModelList::getAirlineDesignatorsForGroup(int groupId) const
{
return this->getAirlineIcaoCodesForGroup(groupId).allDesignators();
}
QSet<QString> CAircraftModelList::getAirlineVDesignatorsForGroup(int groupId) const
{
return this->getAirlineIcaoCodesForGroup(groupId).allVDesignators();
}
QSet<QString> CAircraftModelList::getCombinedTypes() const
{
QSet<QString> combinedCodes;

View File

@@ -418,6 +418,15 @@ namespace BlackMisc
//! Airline virtual designators
QSet<QString> getAirlineVDesignators() const;
//! Airline ICAO codes for given group, without duplicates
Aviation::CAirlineIcaoCodeList getAirlineIcaoCodesForGroup(int groupId) const;
//! Airline designators
QSet<QString> getAirlineDesignatorsForGroup(int groupId) const;
//! Airline virtual designators
QSet<QString> getAirlineVDesignatorsForGroup(int groupId) const;
//! All combined types
QSet<QString> getCombinedTypes() const;

View File

@@ -392,6 +392,8 @@ namespace BlackMisc
QString joinStringSet(const QSet<QString> &set, const QString &separator)
{
if (set.isEmpty()) { return {}; }
if (set.size() == 1) { return *set.begin(); }
return set.toList().join(separator);
}
@@ -446,6 +448,12 @@ namespace BlackMisc
return copy;
}
const QString &defaultIfEmpty(const QString &candidate, const QString &defaultIfEmpty)
{
if (candidate.isEmpty()) { return defaultIfEmpty; }
return candidate;
}
} // ns
//! \endcond

View File

@@ -292,6 +292,9 @@ namespace BlackMisc
//! Remove comments such as /** **/ or //
BLACKMISC_EXPORT QString removeComments(const QString &in, bool removeSlash, bool removeDoubleSlash);
//! Default string if string is empty
BLACKMISC_EXPORT const QString &defaultIfEmpty(const QString &candidate, const QString &defaultIfEmpty);
namespace Mixin
{
/*!