swift
airlineicaocodelist.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_AVIATION_AIRLINEICAOCODELIST_H
7 #define SWIFT_MISC_AVIATION_AIRLINEICAOCODELIST_H
8 
9 #include <tuple>
10 
11 #include <QJsonArray>
12 #include <QMetaType>
13 #include <QString>
14 #include <QStringList>
15 
17 #include "misc/aviation/callsign.h"
18 #include "misc/collection.h"
20 #include "misc/sequence.h"
21 #include "misc/swiftmiscexport.h"
22 
23 SWIFT_DECLARE_SEQUENCE_MIXINS(swift::misc::aviation, CAirlineIcaoCode, CAirlineIcaoCodeList)
24 
25 namespace swift::misc::aviation
26 {
29  public CSequence<CAirlineIcaoCode>,
30  public swift::misc::db::IDatastoreObjectList<CAirlineIcaoCode, CAirlineIcaoCodeList, int>,
31  public swift::misc::mixin::MetaType<CAirlineIcaoCodeList>
32  {
33  public:
36 
38  static const QStringList &getLogCategories();
39 
42 
45 
47  CAirlineIcaoCodeList(std::initializer_list<CAirlineIcaoCode> il);
48 
51  CAirlineIcaoCodeList findByDesignator(const QString &designator) const;
52 
54  CAirlineIcaoCodeList findByVDesignator(const QString &designator) const;
55 
57  CAirlineIcaoCode findByUniqueVDesignatorOrDefault(const QString &designator,
58  bool preferOperatingAirlines) const;
59 
62  CAirlineIcaoCodeList findByIataCode(const QString &iata) const;
63 
65  CAirlineIcaoCode findByUniqueIataCodeOrDefault(const QString &iata) const;
66 
68  CAirlineIcaoCodeList findByDesignatorOrIataCode(const QString &designatorOrIata) const;
69 
71  CAirlineIcaoCodeList findByVDesignatorOrIataCode(const QString &designatorOrIata) const;
72 
74  CAirlineIcaoCodeList findByCountryIsoCode(const QString &isoCode) const;
75 
77  CAirlineIcaoCodeList findBySimplifiedNameContaining(const QString &containedString) const;
78 
80  CAirlineIcaoCodeList findByTelephonyDesignator(const QString &candidate) const;
81 
83  CAirlineIcaoCodeList findByNamesOrTelephonyDesignator(const QString &candidate) const;
84 
86  CAirlineIcaoCodeList findByMilitary(bool military) const;
87 
89  CAirlineIcaoCodeList findByValidDesignator() const;
90 
92  CAirlineIcaoCodeList findByInvalidDesignator() const;
93 
95  CAirlineIcaoCode findBestMatchByCallsign(const CCallsign &callsign) const;
96 
98  CAirlineIcaoCode smartAirlineIcaoSelector(const CAirlineIcaoCode &icaoPattern, const CCallsign &callsign) const;
99 
101  CAirlineIcaoCodeList ifPossibleReduceNameTelephonyCountry(const swift::misc::aviation::CCallsign &cs,
102  const QString &airlineName, const QString &telephony,
103  const QString &countryIso, bool &reduced,
104  const QString &logInfo,
105  CStatusMessageList *log) const;
106 
108  CAirlineIcaoCodeList ifPossibleReduceByCountry(const QString &countryIso) const;
109 
111  CAirlineIcaoCodeList ifPossibleReduceByTelephonyDesignator(const QString &telephonyDesignator) const;
112 
114  QStringList toIcaoDesignatorCompleterStrings(bool combinedString = true, bool sort = true) const;
115 
117  QStringList toIcaoDesignatorNameCountryCompleterStrings(bool sort = true) const;
118 
120  QStringList toNameCompleterStrings(bool sort = true) const;
121 
123  QSet<QString> allDesignators() const;
124 
126  QSet<QString> allVDesignators() const;
127 
129  bool containsDesignator(const QString &designator) const;
130 
132  bool containsVDesignator(const QString &vDesignator) const;
133 
135  AirlineIcaoIdMap toIdMap() const;
136 
138  static CAirlineIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true,
139  CAirlineIcaoCodeList *inconsistent = nullptr);
140  };
141 } // namespace swift::misc::aviation
142 
145 
146 #endif // SWIFT_MISC_AVIATION_AIRLINEICAOCODELIST_H
Generic ordered container with value semantics.
Definition: collection.h:107
Generic sequential container with value semantics.
Definition: sequence.h:86
CSequence()=default
Default constructor.
Status messages, e.g. from Core -> GUI.
Value object for ICAO classification.
Value object encapsulating a list of ICAO codes.
Value object encapsulating information of a callsign.
Definition: callsign.h:30
List of objects read from database. Such objects should implement.
CRTP class template from which a derived class can inherit common methods dealing with the metatype o...
Definition: mixinmetatype.h:29
#define SWIFT_MISC_DECLARE_USING_MIXIN_METATYPE(DERIVED)
When a derived class and a base class both inherit from mixin::MetaType, the derived class uses this ...
#define SWIFT_DECLARE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template declaration of mixins for a CSequence subclass to be placed near the top of the hea...
Definition: sequence.h:62
#define SWIFT_MISC_EXPORT
Export a class or function from the library.