StdAir Logo  1.00.8
C++ Standard Airline IT Object Library
FareFamily.hpp
Go to the documentation of this file.
1 #ifndef __STDAIR_BOM_FAREFAMILY_HPP
2 #define __STDAIR_BOM_FAREFAMILY_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <iosfwd>
9 #include <string>
10 // StdAir
15 
17 namespace boost {
18  namespace serialization {
19  class access;
20  }
21 }
22 
23 namespace stdair {
24 
28  class FareFamily : public BomAbstract {
29  template <typename BOM> friend class FacBom;
30  template <typename BOM> friend class FacCloneBom;
31  friend class FacBomManager;
33 
34  public:
35  // ////////// Type definitions ////////////
40 
41 
42  public:
43  // /////////// Getters ////////////
45  const Key_T& getKey() const {
46  return _key;
47  }
48 
50  BomAbstract* const getParent() const {
51  return _parent;
52  }
53 
55  const FamilyCode_T& getFamilyCode() const {
56  return _key.getFamilyCode();
57  }
58 
60  const HolderMap_T& getHolderMap() const {
61  return _holderMap;
62  }
63 
65  const FRAT5Curve_T& getFrat5Curve () const {
66  return _frat5Curve;
67  }
68 
71  return _disutilityCurve;
72  }
73 
75  const MeanValue_T& getMean () const { return _mean; }
76  const StdDevValue_T& getStdDev () const {return _stdDev; }
77 
80 
81 
82  public:
83  // /////////// Setters ////////////
85  void setFrat5Curve (const FRAT5Curve_T& iFRAT5Curve) {
86  _frat5Curve.clear();
87  _frat5Curve.insert (iFRAT5Curve.begin(), iFRAT5Curve.end());
88  }
89 
91  void setDisutilityCurve (const FFDisutilityCurve_T& iDisutilityCurve) {
92  _disutilityCurve.clear();
93  _disutilityCurve.insert (iDisutilityCurve.begin(), iDisutilityCurve.end());
94  }
95 
97  void setMean (const MeanValue_T& iMean) { _mean = iMean; }
98  void setStdDev (const StdDevValue_T& iStdDev) { _stdDev = iStdDev; }
99 
101  void setMeanStdDev (const MeanStdDevPairVector_T& iMeanStdDev) {
102  _meanStdDev = iMeanStdDev;
103  }
104 
105 
106  public:
107  // /////////// Display support methods /////////
113  void toStream (std::ostream& ioOut) const {
114  ioOut << toString();
115  }
116 
122  void fromStream (std::istream& ioIn) {
123  }
124 
128  std::string toString() const;
129 
133  const std::string describeKey() const {
134  return _key.toString();
135  }
136 
137 
138  public:
139  // /////////// (Boost) Serialisation support methods /////////
143  template<class Archive>
144  void serialize (Archive& ar, const unsigned int iFileVersion);
145 
146 
147  private:
152  void serialisationImplementationExport() const;
153  void serialisationImplementationImport();
154 
155 
156  protected:
157  // ////////// Constructors and destructors /////////
161  FareFamily (const Key_T&);
162 
166  virtual ~FareFamily();
167 
168 
169  private:
173  FareFamily();
174 
178  FareFamily (const FareFamily&);
179 
180 
181  public:
182  // ////////// Attributes /////////
187 
192 
197 
202 
207 
211 
216  };
217 
218 }
219 #endif // __STDAIR_BOM_FAREFAMILY_HPP
220 
FareFamilyKey Key_T
Definition: FareFamily.hpp:39
BomAbstract *const getParent() const
Definition: FareFamily.hpp:50
BomAbstract * _parent
Definition: FareFamily.hpp:191
Base class for Factory layer.
Definition: FacCloneBom.hpp:22
HolderMap_T _holderMap
Definition: FareFamily.hpp:196
const HolderMap_T & getHolderMap() const
Definition: FareFamily.hpp:60
virtual ~FareFamily()
Definition: FareFamily.cpp:36
void setDisutilityCurve(const FFDisutilityCurve_T &iDisutilityCurve)
Definition: FareFamily.hpp:91
const std::string describeKey() const
Definition: FareFamily.hpp:133
double MeanValue_T
Forward declarations.
Key of a given fare family, made of a fare family code.
void toStream(std::ostream &ioOut) const
Definition: FareFamily.hpp:113
Base class for the Business Object Model (BOM) layer.
Definition: BomAbstract.hpp:24
void setStdDev(const StdDevValue_T &iStdDev)
Definition: FareFamily.hpp:98
void serialize(Archive &ar, const unsigned int iFileVersion)
Definition: FareFamily.cpp:62
FRAT5Curve_T _frat5Curve
Definition: FareFamily.hpp:201
Class representing the actual attributes for a family fare.
Definition: FareFamily.hpp:28
const FamilyCode_T & getFamilyCode() const
void fromStream(std::istream &ioIn)
Definition: FareFamily.hpp:122
const FFDisutilityCurve_T & getDisutilityCurve() const
Definition: FareFamily.hpp:70
Base class for Factory layer.
Definition: FacBom.hpp:22
std::map< const DTD_T, double > FFDisutilityCurve_T
std::vector< MeanStdDevPair_T > MeanStdDevPairVector_T
FFDisutilityCurve_T _disutilityCurve
Definition: FareFamily.hpp:206
MeanValue_T _mean
Definition: FareFamily.hpp:209
Handle on the StdAir library context.
const std::string toString() const
std::map< const DTD_T, FRAT5_T > FRAT5Curve_T
friend class boost::serialization::access
Definition: FareFamily.hpp:32
Utility class for linking StdAir-based objects.
StdDevValue_T _stdDev
Definition: FareFamily.hpp:210
const MeanValue_T & getMean() const
Definition: FareFamily.hpp:75
const MeanStdDevPairVector_T & getMeanStdDev() const
Definition: FareFamily.hpp:79
std::map< const std::type_info *, BomAbstract * > HolderMap_T
Definition: BomAbstract.hpp:63
const FamilyCode_T & getFamilyCode() const
Definition: FareFamily.hpp:55
std::string FamilyCode_T
std::string toString() const
Definition: FareFamily.cpp:40
void setMeanStdDev(const MeanStdDevPairVector_T &iMeanStdDev)
Definition: FareFamily.hpp:101
const FRAT5Curve_T & getFrat5Curve() const
Definition: FareFamily.hpp:65
const Key_T & getKey() const
Definition: FareFamily.hpp:45
void setFrat5Curve(const FRAT5Curve_T &iFRAT5Curve)
Definition: FareFamily.hpp:85
const StdDevValue_T & getStdDev() const
Definition: FareFamily.hpp:76
double StdDevValue_T
MeanStdDevPairVector_T _meanStdDev
Definition: FareFamily.hpp:215
void setMean(const MeanValue_T &iMean)
Definition: FareFamily.hpp:97