$treeview $search $mathjax
SimFQT Logo  1.00.0
$projectbrief
$projectbrief
$searchbox

FareRuleGenerator.hpp

Go to the documentation of this file.
00001 #ifndef __SIMFQT_CMD_FARERULEGENERATOR_HPP
00002 #define __SIMFQT_CMD_FARERULEGENERATOR_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // StdAir
00008 #include <stdair/command/CmdAbstract.hpp>
00009 // Simfqt
00010 #include <simfqt/SIMFQT_Types.hpp>
00011 
00012 // Forward declarations
00013 namespace stdair {
00014   class BomRoot;
00015   class FareRule;
00016   class AirportPair;
00017   class DatePeriod;
00018   class PosChannel;
00019   class TimePeriod;
00020   class FareFeatures;
00021   class AirlineClassList;
00022 }
00023 
00024 namespace SIMFQT {
00025 
00026   // Forward declarations
00027   struct FareRuleStruct;
00028   namespace FareParserHelper {
00029     struct doEndFare;
00030   }
00031     
00033   class FareRuleGenerator : public stdair::CmdAbstract {
00034     
00035     // Only the following class may use methods of FareGenerator.
00036     // Indeed, as those methods build the BOM, it is not good to expose
00037     // them public.
00038     friend class FareFileParser;
00039     friend struct FareParserHelper::doEndFare;
00040     friend class FareParser;
00041     
00042   private:
00043     
00052     static void createAirportPair (stdair::BomRoot&,
00053                                    const FareRuleStruct&);
00054 
00063     static void createDateRange (stdair::AirportPair&,
00064                                  const FareRuleStruct&);
00065     
00074     static void createPOSChannel (stdair::DatePeriod&,
00075                                   const FareRuleStruct&);
00076     
00085     static void createTimeRange (stdair::PosChannel&,
00086                                  const FareRuleStruct&);
00087 
00096     static void createFareFeatures (stdair::TimePeriod&,
00097                                     const FareRuleStruct&);
00098 
00107     static void createAirlineClassList (stdair::FareFeatures&,
00108                                         const FareRuleStruct&);
00109 
00110 
00111     
00112   };
00113 
00114 }
00115 #endif // __SIMFQT_CMD_FARERULEGENERATOR_HPP