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

stdair/bom/TravelSolutionStruct.hpp

Go to the documentation of this file.
00001 #ifndef __STDAIR_BOM_TRAVELSOLUTIONSTRUCT_HPP
00002 #define __STDAIR_BOM_TRAVELSOLUTIONSTRUCT_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <iosfwd>
00009 #include <string>
00010 #include <vector>
00011 // StdAir
00012 #include <stdair/stdair_basic_types.hpp>
00013 #include <stdair/basic/StructAbstract.hpp>
00014 #include <stdair/bom/BookingClassTypes.hpp>
00015 #include <stdair/bom/FareOptionStruct.hpp>
00016 #include <stdair/bom/FareOptionTypes.hpp>
00017 #include <stdair/bom/TravelSolutionTypes.hpp>
00018 
00019 namespace stdair {
00020 
00024   struct TravelSolutionStruct : public StructAbstract {
00025   public:
00026     // /////////// Getters ///////////////
00028     const SegmentPath_T& getSegmentPath() const {
00029       return _segmentPath;
00030     }
00031 
00033     const ClassAvailabilityMapHolder_T& getClassAvailabilityMapHolder() const {
00034       return _classAvailabilityMapHolder;
00035     }
00036 
00038     const ClassObjectIDMapHolder_T& getClassObjectIDMapHolder() const {
00039       return _classObjectIDMapHolder;
00040     }
00041 
00043     const ClassYieldMapHolder_T& getClassYieldMapHolder() const {
00044       return _classYieldMapHolder;
00045     }
00046 
00048     const BidPriceVectorHolder_T& getBidPriceVectorHolder() const {
00049       return _bidPriceVectorHolder;
00050     }
00051     
00053     const ClassBpvMapHolder_T& getClassBpvMapHolder() const {
00054       return _classBpvMapHolder;
00055     }
00056 
00058     const FareOptionList_T& getFareOptionList() const {
00059       return _fareOptionList;
00060     }
00061 
00063     FareOptionList_T& getFareOptionListRef() {
00064       return _fareOptionList;
00065     }
00066 
00068     const FareOptionStruct& getChosenFareOption() const {
00069       assert (_chosenFareOption != NULL);
00070       return *_chosenFareOption;
00071     }
00072     
00073   public:
00074     // /////////// Setters ///////////////
00076     void addSegment (const std::string&);
00077 
00079     void addClassAvailabilityMap (const ClassAvailabilityMap_T&);
00080 
00082     void addClassObjectIDMap (const ClassObjectIDMap_T&);
00083 
00085     void addClassYieldMap (const ClassYieldMap_T&);
00086 
00088     void addBidPriceVector (const BidPriceVector_T&);
00089 
00091     void addClassBpvMap (const ClassBpvMap_T&);
00092 
00094     void addFareOption (const FareOptionStruct&);
00095 
00097     void setChosenFareOption (const FareOptionStruct& iChosenFO) {
00098       _chosenFareOption = &iChosenFO;
00099     }
00100 
00101 
00102   public:
00103     // /////////// Display support method /////////////
00109     void toStream (std::ostream& ioOut) const;
00110 
00115     void fromStream (std::istream& ioIn);
00116 
00120     const std::string describe() const;
00121   
00125     const std::string display() const;
00126 
00130     const std::string describeSegmentPath() const;
00131   
00132 
00133   public:
00134     // //////////// Constructors & Destructor ///////////////
00138     TravelSolutionStruct();
00139 
00143     ~TravelSolutionStruct();
00144     
00145 
00146   private:
00147     // ///////////////////// Attributes //////////////////////
00151     SegmentPath_T _segmentPath;
00152 
00156     ClassAvailabilityMapHolder_T _classAvailabilityMapHolder;
00157 
00161     ClassObjectIDMapHolder_T _classObjectIDMapHolder;
00162     
00166     ClassYieldMapHolder_T _classYieldMapHolder;
00167     
00171     BidPriceVectorHolder_T _bidPriceVectorHolder;
00172     
00176     ClassBpvMapHolder_T _classBpvMapHolder;
00177 
00181     FareOptionList_T _fareOptionList;
00182 
00186     const FareOptionStruct* _chosenFareOption;
00187   };
00188 
00189 }
00190 #endif // __STDAIR_BOM_TRAVELSOLUTIONSTRUCT_HPP