$treeview $search $mathjax
StdAir Logo  1.00.1
$projectbrief
$projectbrief
$searchbox

stdair/bom/BomRetriever.hpp

Go to the documentation of this file.
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