Ref T129, some more utility functions for aviation value objects

* removed static variables from SELCAL
* more finder functions for airline ICAO list
* check for IATA code
* unify callsign now public
This commit is contained in:
Klaus Basan
2017-10-07 02:24:56 +02:00
committed by Mathew Sutcliffe
parent 686cb03170
commit 3fb2f88032
7 changed files with 56 additions and 16 deletions

View File

@@ -317,13 +317,19 @@ namespace BlackMisc
bool CAirlineIcaoCode::isValidAirlineDesignator(const QString &airline)
{
// allow 2 chars for IATA
// allow 2 chars for special codes like "VV"
if (airline.length() < 2 || airline.length() > 5) { return false; }
const auto chars = makeRange(airline.begin(), airline.end());
if (chars.containsBy([](QChar c) { return !c.isUpper() && !c.isDigit(); })) { return false; }
return true;
}
bool CAirlineIcaoCode::isValidIataCode(const QString &iataCode)
{
if (iataCode.length() != 2) { return false; }
return isValidAirlineDesignator(iataCode); // allow some chars as in IACO
}
QSet<QString> CAirlineIcaoCode::specialValidDesignators()
{
static const QSet<QString> valid({ "VV", "VM"});