mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 01:05:34 +08:00
refs #801, suppport for missing parts in airports/list
This commit is contained in:
@@ -32,12 +32,31 @@ namespace BlackMisc
|
||||
return this->findBy(&CAirport::getIcao, icao);
|
||||
}
|
||||
|
||||
bool CAirportList::containsAirportWithIcaoCode(const CAirportIcaoCode &icao) const
|
||||
{
|
||||
if (icao.isEmpty()) { return false; }
|
||||
return this->contains(&CAirport::getIcao, icao);
|
||||
}
|
||||
|
||||
void CAirportList::replaceOrAddByIcao(const CAirport &addedOrReplacedAirport)
|
||||
{
|
||||
if (!addedOrReplacedAirport.hasValidIcaoCode()) return; // ignore invalid airport
|
||||
this->replaceOrAdd(&CAirport::getIcao, addedOrReplacedAirport.getIcao(), addedOrReplacedAirport);
|
||||
}
|
||||
|
||||
void CAirportList::updateMissingParts(const CAirportList &updateFromList)
|
||||
{
|
||||
if (updateFromList.isEmpty()) { return; }
|
||||
for (CAirport &airport : *this)
|
||||
{
|
||||
const CAirport fromAirport = updateFromList.findFirstByIcao(airport.getIcao());
|
||||
if (fromAirport.hasValidIcaoCode())
|
||||
{
|
||||
airport.updateMissingParts(fromAirport);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CAirport CAirportList::findFirstByIcao(const CAirportIcaoCode &icao, const CAirport &ifNotFound) const
|
||||
{
|
||||
return this->findFirstByOrDefault(&CAirport::getIcao, icao, ifNotFound);
|
||||
|
||||
Reference in New Issue
Block a user