$treeview $search $mathjax
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