$treeview $search $mathjax
00001 #ifndef __STDAIR_BOM_BOMRETRIEVER_HPP 00002 #define __STDAIR_BOM_BOMRETRIEVER_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <iosfwd> 00009 // StdAir 00010 #include <stdair/stdair_basic_types.hpp> 00011 #include <stdair/stdair_date_time_types.hpp> 00012 #include <stdair/bom/DatePeriod.hpp> 00013 00014 namespace stdair { 00015 00017 class BomRoot; 00018 struct InventoryKey; 00019 class Inventory; 00020 class AirlineFeature; 00021 struct FlightDateKey; 00022 class FlightDate; 00023 class LegDate; 00024 struct SegmentDateKey; 00025 class SegmentDate; 00026 class LegCabin; 00027 class SegmentCabin; 00028 class FareFamily; 00029 class BookingClass; 00030 class DatePeriod; 00031 class AirportPair; 00032 00036 class BomRetriever { 00037 public: 00038 // //////////////// Key management support methods ///////////////// 00051 static Inventory* 00052 retrieveInventoryFromLongKey (const BomRoot&, 00053 const std::string& iFullKeyStr); 00054 00067 static Inventory* 00068 retrieveInventoryFromLongKey (const Inventory&, 00069 const std::string& iFullKeyStr); 00070 00078 static Inventory* retrieveInventoryFromKey (const BomRoot&, 00079 const InventoryKey&); 00080 00088 static Inventory* retrieveInventoryFromKey (const BomRoot&, 00089 const AirlineCode_T&); 00090 00098 static AirlineFeature* retrieveAirlineFeatureFromKey (const BomRoot&, 00099 const AirlineCode_T&); 00100 00113 static FlightDate* 00114 retrieveFlightDateFromLongKey (const BomRoot&, 00115 const std::string& iFullKeyStr); 00116 00126 static FlightDate* 00127 retrieveFlightDateFromKeySet (const BomRoot&, 00128 const AirlineCode_T&, const FlightNumber_T&, 00129 const Date_T& iFlightDateDate); 00130 00143 static FlightDate* 00144 retrieveFlightDateFromLongKey (const Inventory&, 00145 const std::string& iFullKeyStr); 00146 00154 static FlightDate* retrieveFlightDateFromKey (const Inventory&, 00155 const FlightDateKey&); 00156 00165 static FlightDate* retrieveFlightDateFromKey (const Inventory&, 00166 const FlightNumber_T&, 00167 const Date_T& iFlightDateDate); 00168 00169 00182 static LegDate* 00183 retrieveOperatingLegDateFromLongKey (const FlightDate&, 00184 const std::string& iFullKeyStr); 00185 00198 static SegmentDate* 00199 retrievePartnerSegmentDateFromLongKey (const Inventory&, 00200 const std::string& iFullKeyStr); 00201 00214 static SegmentDate* 00215 retrieveSegmentDateFromLongKey (const BomRoot&, 00216 const std::string& iFullKeyStr); 00217 00230 static SegmentDate* 00231 retrieveSegmentDateFromLongKey (const Inventory&, 00232 const std::string& iFullKeyStr); 00233 00246 static SegmentDate* 00247 retrieveSegmentDateFromLongKey (const FlightDate&, 00248 const std::string& iFullKeyStr); 00249 00257 static SegmentDate* retrieveSegmentDateFromKey (const FlightDate&, 00258 const SegmentDateKey&); 00259 00268 static SegmentDate* 00269 retrieveSegmentDateFromKey (const FlightDate&, 00270 const AirportCode_T& iOrigin, 00271 const AirportCode_T& iDestination); 00272 00296 static BookingClass* 00297 retrieveBookingClassFromLongKey (const Inventory&, 00298 const std::string& iFullKeyStr, 00299 const ClassCode_T&); 00300 00301 00310 static AirportPair* 00311 retrieveAirportPairFromKeySet (const BomRoot& , 00312 const stdair::AirportCode_T&, 00313 const stdair::AirportCode_T&); 00314 00324 static void 00325 retrieveDatePeriodListFromKey (const AirportPair&, 00326 const stdair::Date_T&, 00327 stdair::DatePeriodList_T&); 00328 00341 static void 00342 retrieveDatePeriodListFromKeySet (const BomRoot&, 00343 const stdair::AirportCode_T&, 00344 const stdair::AirportCode_T&, 00345 const stdair::Date_T&, 00346 stdair::DatePeriodList_T&); 00347 00357 static stdair::LegCabin& 00358 retrieveDummyLegCabin (stdair::BomRoot&, 00359 const bool isForFareFamilies = false); 00360 00370 static stdair::SegmentCabin& 00371 retrieveDummySegmentCabin (stdair::BomRoot&, 00372 const bool isForFareFamilies = false); 00373 00383 static std::string retrieveFullKeyFromSegmentDate (const SegmentDate&); 00384 00385 }; 00386 00387 } 00388 #endif // __STDAIR_BOM_BOMRETRIEVER_HPP