1.00.26
C++ Standard Airline IT Object Library
Toggle main menu visibility
Loading...
Searching...
No Matches
PartnershipTechnique.cpp
Go to the documentation of this file.
1
// //////////////////////////////////////////////////////////////////////
2
// Import section
3
// //////////////////////////////////////////////////////////////////////
4
// STL
5
#include <cassert>
6
#include <sstream>
7
// StdAir
8
#include <
stdair/stdair_exceptions.hpp
>
9
#include <
stdair/basic/PartnershipTechnique.hpp
>
10
11
namespace
stdair
{
12
13
// //////////////////////////////////////////////////////////////////////
14
const
std::string PartnershipTechnique::_labels[
LAST_VALUE
] =
15
{
"None"
,
16
"RevenueAvailabilityExchangeDemandAggregation"
,
17
"RevenueAvailabilityExchangeYieldProration"
,
18
"InterlineBidPriceDemandAggregation"
,
19
"InterlineBidPriceYieldProration"
,
20
"NonProtectionistInterlineBidPriceYieldProration"
,
21
"RevenueManagementCooperation"
,
22
"AdvancedRevenueManagementCooperation"
};
23
24
// //////////////////////////////////////////////////////////////////////
25
const
char
PartnershipTechnique::_techniqueLabels[
LAST_VALUE
] = {
'N'
,
26
'r'
,
27
'R'
,
28
'i'
,
29
'I'
,
30
'U'
,
31
'C'
,
32
'A'
};
33
34
35
// //////////////////////////////////////////////////////////////////////
36
PartnershipTechnique::PartnershipTechnique
() : _technique (
LAST_VALUE
) {
37
assert (
false
);
38
}
39
40
// //////////////////////////////////////////////////////////////////////
41
PartnershipTechnique::
42
PartnershipTechnique (
const
PartnershipTechnique
& iPartnershipTechnique)
43
: _technique (iPartnershipTechnique._technique) {
44
}
45
46
// //////////////////////////////////////////////////////////////////////
47
PartnershipTechnique::
48
PartnershipTechnique
(
const
EN_PartnershipTechnique
& iPartnershipTechnique)
49
: _technique (iPartnershipTechnique) {
50
}
51
52
// //////////////////////////////////////////////////////////////////////
53
PartnershipTechnique::EN_PartnershipTechnique
54
PartnershipTechnique::getTechnique
(
const
char
iTechniqueChar) {
55
EN_PartnershipTechnique
oTechnique;
56
switch
(iTechniqueChar) {
57
case
'N'
: oTechnique =
NONE
;
break
;
58
case
'r'
: oTechnique =
RAE_DA
;
break
;
59
case
'R'
: oTechnique =
RAE_YP
;
break
;
60
case
'i'
: oTechnique =
IBP_DA
;
break
;
61
case
'I'
: oTechnique =
IBP_YP
;
break
;
62
case
'U'
: oTechnique =
IBP_YP_U
;
break
;
63
case
'C'
: oTechnique =
RMC
;
break
;
64
case
'A'
: oTechnique =
A_RMC
;
break
;
65
default
: oTechnique =
LAST_VALUE
;
break
;
66
}
67
68
if
(oTechnique ==
LAST_VALUE
) {
69
const
std::string& lLabels =
describeLabels
();
70
std::ostringstream oMessage;
71
oMessage <<
"The partnership technique '"
72
<< iTechniqueChar
73
<<
"' is not known. Known partnership techniques: "
74
<< lLabels;
75
throw
CodeConversionException
(oMessage.str());
76
}
77
78
return
oTechnique;
79
}
80
81
// //////////////////////////////////////////////////////////////////////
82
PartnershipTechnique::PartnershipTechnique
(
const
char
iTechniqueChar)
83
: _technique (
getTechnique
(iTechniqueChar)) {
84
}
85
86
// //////////////////////////////////////////////////////////////////////
87
PartnershipTechnique::
88
PartnershipTechnique
(
const
std::string& iTechniqueStr) {
89
//
90
const
size_t
lSize = iTechniqueStr.size();
91
assert (lSize == 1);
92
const
char
lTechniqueChar = iTechniqueStr[0];
93
_technique =
getTechnique
(lTechniqueChar);
94
}
95
96
// //////////////////////////////////////////////////////////////////////
97
const
std::string&
PartnershipTechnique::
98
getLabel
(
const
EN_PartnershipTechnique
& iTechnique) {
99
return
_labels[iTechnique];
100
}
101
102
// //////////////////////////////////////////////////////////////////////
103
char
PartnershipTechnique::
104
getTechniqueLabel
(
const
EN_PartnershipTechnique
& iTechnique) {
105
return
_techniqueLabels[iTechnique];
106
}
107
108
// //////////////////////////////////////////////////////////////////////
109
std::string
PartnershipTechnique::
110
getTechniqueLabelAsString
(
const
EN_PartnershipTechnique
& iTechnique) {
111
std::ostringstream oStr;
112
oStr << _techniqueLabels[iTechnique];
113
return
oStr.str();
114
}
115
116
// //////////////////////////////////////////////////////////////////////
117
std::string
PartnershipTechnique::describeLabels
() {
118
std::ostringstream ostr;
119
for
(
unsigned
short
idx = 0; idx !=
LAST_VALUE
; ++idx) {
120
if
(idx != 0) {
121
ostr <<
", "
;
122
}
123
ostr << _labels[idx] <<
" ("
<< _techniqueLabels[idx] <<
")"
;
124
}
125
return
ostr.str();
126
}
127
128
// //////////////////////////////////////////////////////////////////////
129
PartnershipTechnique::EN_PartnershipTechnique
130
PartnershipTechnique::getTechnique
()
const
{
131
return
_technique;
132
}
133
134
// //////////////////////////////////////////////////////////////////////
135
char
PartnershipTechnique::getTechniqueAsChar
()
const
{
136
const
char
oTechniqueChar = _techniqueLabels[_technique];
137
return
oTechniqueChar;
138
}
139
140
// //////////////////////////////////////////////////////////////////////
141
std::string
PartnershipTechnique::getTechniqueAsString
()
const
{
142
std::ostringstream oStr;
143
oStr << _techniqueLabels[_technique];
144
return
oStr.str();
145
}
146
147
// //////////////////////////////////////////////////////////////////////
148
const
std::string
PartnershipTechnique::describe
()
const
{
149
std::ostringstream ostr;
150
ostr << _labels[_technique];
151
return
ostr.str();
152
}
153
154
// //////////////////////////////////////////////////////////////////////
155
bool
PartnershipTechnique::
156
operator==
(
const
EN_PartnershipTechnique
& iTechnique)
const
{
157
return
(_technique == iTechnique);
158
}
159
160
}
PartnershipTechnique.hpp
stdair_exceptions.hpp
stdair
Handle on the StdAir library context.
Definition
BasChronometer.cpp:9
stdair::LOG::LAST_VALUE
@ LAST_VALUE
Definition
stdair_log.hpp:25
stdair::PartnershipTechnique::EN_PartnershipTechnique
EN_PartnershipTechnique
Definition
PartnershipTechnique.hpp:19
stdair::PartnershipTechnique::IBP_DA
@ IBP_DA
Definition
PartnershipTechnique.hpp:23
stdair::PartnershipTechnique::IBP_YP
@ IBP_YP
Definition
PartnershipTechnique.hpp:24
stdair::PartnershipTechnique::A_RMC
@ A_RMC
Definition
PartnershipTechnique.hpp:27
stdair::PartnershipTechnique::IBP_YP_U
@ IBP_YP_U
Definition
PartnershipTechnique.hpp:25
stdair::PartnershipTechnique::RAE_YP
@ RAE_YP
Definition
PartnershipTechnique.hpp:22
stdair::PartnershipTechnique::RMC
@ RMC
Definition
PartnershipTechnique.hpp:26
stdair::PartnershipTechnique::NONE
@ NONE
Definition
PartnershipTechnique.hpp:20
stdair::PartnershipTechnique::LAST_VALUE
@ LAST_VALUE
Definition
PartnershipTechnique.hpp:28
stdair::PartnershipTechnique::RAE_DA
@ RAE_DA
Definition
PartnershipTechnique.hpp:21
stdair::PartnershipTechnique::describe
const std::string describe() const
Definition
PartnershipTechnique.cpp:148
stdair::PartnershipTechnique::operator==
bool operator==(const EN_PartnershipTechnique &) const
Definition
PartnershipTechnique.cpp:156
stdair::PartnershipTechnique::getTechnique
EN_PartnershipTechnique getTechnique() const
Definition
PartnershipTechnique.cpp:130
stdair::PartnershipTechnique::getTechniqueLabelAsString
static std::string getTechniqueLabelAsString(const EN_PartnershipTechnique &)
Definition
PartnershipTechnique.cpp:110
stdair::PartnershipTechnique::getTechniqueLabel
static char getTechniqueLabel(const EN_PartnershipTechnique &)
Definition
PartnershipTechnique.cpp:104
stdair::PartnershipTechnique::getTechniqueAsChar
char getTechniqueAsChar() const
Definition
PartnershipTechnique.cpp:135
stdair::PartnershipTechnique::getTechnique
static EN_PartnershipTechnique getTechnique(const char)
Definition
PartnershipTechnique.cpp:54
stdair::PartnershipTechnique::PartnershipTechnique
PartnershipTechnique(const EN_PartnershipTechnique &)
Definition
PartnershipTechnique.cpp:48
stdair::PartnershipTechnique::getTechniqueAsString
std::string getTechniqueAsString() const
Definition
PartnershipTechnique.cpp:141
stdair::PartnershipTechnique::getLabel
static const std::string & getLabel(const EN_PartnershipTechnique &)
Definition
PartnershipTechnique.cpp:98
stdair::PartnershipTechnique::describeLabels
static std::string describeLabels()
Definition
PartnershipTechnique.cpp:117
stdair::CodeConversionException
Definition
stdair_exceptions.hpp:133
Generated for StdAir by
1.17.0