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

stdair/bom/AirlineFeature.hpp

Go to the documentation of this file.
00001 #ifndef __STDAIR_BOM_AIRLINEFEATURE_HPP
00002 #define __STDAIR_BOM_AIRLINEFEATURE_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // StdAir
00008 #include <stdair/stdair_rm_types.hpp>
00009 #include <stdair/basic/UnconstrainingMethod.hpp>
00010 #include <stdair/basic/ForecastingMethod.hpp>
00011 #include <stdair/basic/PreOptimisationMethod.hpp>
00012 #include <stdair/basic/OptimisationMethod.hpp>
00013 #include <stdair/basic/PartnershipTechnique.hpp>
00014 #include <stdair/bom/BomAbstract.hpp>
00015 #include <stdair/bom/AirlineFeatureKey.hpp>
00016 #include <stdair/bom/AirlineFeatureTypes.hpp>
00017 
00018 namespace stdair {
00019 
00025   class AirlineFeature : public BomAbstract {
00026     template <typename BOM> friend class FacBom;
00027     template <typename BOM> friend class FacCloneBom;
00028     friend class FacBomManager; 
00029     
00030   public:
00031     // //////////// Type definitions //////////////
00035     typedef AirlineFeatureKey Key_T;
00036 
00037   public:
00038     // /////////// Display support methods /////////
00044     void toStream (std::ostream& ioOut) const {
00045       ioOut << toString();
00046     }
00047 
00053     void fromStream (std::istream& ioIn) {
00054     }
00055 
00059     std::string toString() const;
00060     
00064     const std::string describeKey() const {
00065       return _key.toString();
00066     }
00067 
00068   public:
00069     // /////////// Getters ////////////
00073     const Key_T& getKey() const {
00074       return _key;
00075     }
00076 
00080     BomAbstract* const getParent() const {
00081       return _parent;
00082     }
00083 
00087     const  HolderMap_T& getHolderMap() const {
00088       return _holderMap;
00089     }
00090     
00094     ForecastingMethod::EN_ForecastingMethod getForecastingMethod() const {
00095       return _forecastingMethod.getMethod();
00096     }
00097     
00101     UnconstrainingMethod::EN_UnconstrainingMethod getUnconstrainingMethod() const {
00102       return _unconstrainingMethod.getMethod();
00103     }
00104 
00108     PartnershipTechnique::EN_PartnershipTechnique getPartnershipTechnique() const {
00109       return _partnershipTechnique.getTechnique();
00110     }     
00111 
00115     PreOptimisationMethod::EN_PreOptimisationMethod getPreOptimisationMethod() const {
00116       return _preOptimisationMethod.getMethod();
00117     }   
00118 
00122     OptimisationMethod::EN_OptimisationMethod getOptimisationMethod() const {
00123       return _optimisationMethod.getMethod();
00124     }  
00125 
00126 
00127   public:
00128     // //////////// Setters //////////
00139     void init (const ForecastingMethod&,
00140                const UnconstrainingMethod&,
00141                const PreOptimisationMethod&,
00142                const OptimisationMethod&,
00143                const HistoricalDataLimit_T&,
00144                const ControlMode_T&,
00145                const PartnershipTechnique&); 
00146 
00150     void setForecastingMethod (const ForecastingMethod& iForecastingMethod) {
00151       _forecastingMethod = iForecastingMethod;
00152     }
00153     
00157     void setUnconstrainingMethod(const UnconstrainingMethod& iUnconstrainingMethod) {
00158       _unconstrainingMethod = iUnconstrainingMethod;
00159     }
00160 
00164     void setPartnershipTechnique(const PartnershipTechnique& iPartnershipTechnique) {
00165       _partnershipTechnique = iPartnershipTechnique;
00166     }     
00167 
00171     void setPreOptimisationMethod(const PreOptimisationMethod& iPreOptimisationMethod) {
00172       _preOptimisationMethod = iPreOptimisationMethod;
00173     }   
00174 
00178     void setOptimisationMethod(const OptimisationMethod& iOptimisationMethod) {
00179       _optimisationMethod = iOptimisationMethod;
00180     }  
00181 
00182 
00183   protected:
00184     // ////////// Constructors and destructors /////////
00188     AirlineFeature (const Key_T&);
00192     virtual ~AirlineFeature ();
00193 
00194   private:
00198     AirlineFeature ();
00202      AirlineFeature (const AirlineFeature&);
00203     
00204   protected:
00205     // ///////////// Attributes /////////////
00209     Key_T _key;
00210 
00214     BomAbstract* _parent;
00215 
00219     HolderMap_T _holderMap;
00220 
00224     ForecastingMethod _forecastingMethod;
00225 
00229     HistoricalDataLimit_T _historicalDataLimit;
00230 
00234     ControlMode_T _controlMode;
00235 
00239     UnconstrainingMethod _unconstrainingMethod;   
00240 
00244     PreOptimisationMethod _preOptimisationMethod;  
00245 
00249     OptimisationMethod _optimisationMethod;
00250 
00254     PartnershipTechnique _partnershipTechnique;
00255  
00256   };
00257 
00258 }
00259 #endif // __STDAIR_BOM_AIRLINEFEATURE_HPP
00260