47 FlagSaver (std::ostream& oStream)
48 : _oStream (oStream), _streamFlags (oStream.flags()) {
54 _oStream.flags (_streamFlags);
59 std::ostream& _oStream;
61 std::ios::fmtflags _streamFlags;
66 std::ostringstream oStream;
72 oStream <<
"==============================================================="
74 oStream <<
"EventQueue: " << iEventQueue.describeKey() << std::endl;
75 oStream <<
"==============================================================="
86 FlagSaver flagSaver (oStream);
89 if (BomManager::hasList<Inventory> (iBomRoot) ==
false) {
94 unsigned short invIdx = 1;
96 BomManager::getList<Inventory> (iBomRoot);
97 for (InventoryList_T::const_iterator itInv = lInventoryList.begin();
98 itInv != lInventoryList.end(); ++itInv, ++invIdx) {
99 const Inventory* lInv_ptr = *itInv;
100 assert (lInv_ptr != NULL);
103 const AirlineCode_T& lAirlineCode = lInv_ptr->getAirlineCode();
106 if (iAirlineCode ==
"all" || iAirlineCode == lAirlineCode) {
108 list (oStream, *lInv_ptr, invIdx, iFlightNumber);
115 const unsigned short iInventoryIndex,
118 FlagSaver flagSaver (oStream);
121 if (BomManager::hasMap<FlightDate> (iInventory) ==
false) {
134 const AirlineCode_T& lAirlineCode = iInventory.getAirlineCode();
135 oStream << iInventoryIndex <<
". " << lAirlineCode << std::endl;
138 unsigned short lCurrentFlightNumber = 0;
139 unsigned short flightNumberIdx = 0;
140 unsigned short departureDateIdx = 1;
142 BomManager::getMap<FlightDate> (iInventory);
143 for (FlightDateMap_T::const_iterator itFD = lFlightDateList.begin();
144 itFD != lFlightDateList.end(); ++itFD, ++departureDateIdx) {
145 const FlightDate* lFD_ptr = itFD->second;
146 assert (lFD_ptr != NULL);
150 const Date_T& lFlightDateDate = lFD_ptr->getDepartureDate();
153 if (iFlightNumber == 0 || iFlightNumber == lFlightNumber) {
155 if (lCurrentFlightNumber != lFlightNumber) {
156 lCurrentFlightNumber = lFlightNumber;
157 ++flightNumberIdx; departureDateIdx = 1;
158 oStream <<
" " << iInventoryIndex <<
"." << flightNumberIdx <<
". "
159 << lAirlineCode << lFlightNumber << std::endl;
162 oStream <<
" " << iInventoryIndex <<
"." << flightNumberIdx
163 <<
"." << departureDateIdx <<
". "
164 << lAirlineCode << lFlightNumber <<
" / " << lFlightDateDate
172 const BomRoot& iBomRoot) {
174 FlagSaver flagSaver (oStream);
177 if (BomManager::hasList<AirportPair> (iBomRoot) ==
false) {
182 BomManager::getList<AirportPair> (iBomRoot);
183 for (AirportPairList_T::const_iterator itAir = lAirportPairList.begin();
184 itAir != lAirportPairList.end(); ++itAir ) {
185 const AirportPair* lAir_ptr = *itAir;
186 assert (lAir_ptr != NULL);
189 assert (BomManager::hasList<DatePeriod> (*lAir_ptr) ==
true);
193 BomManager::getList<DatePeriod> (*lAir_ptr);
195 for (DatePeriodList_T::const_iterator itDP = lDatePeriodList.begin();
196 itDP != lDatePeriodList.end(); ++itDP) {
197 const DatePeriod* lDP_ptr = *itDP;
198 assert (lDP_ptr != NULL);
201 oStream << lAir_ptr->describeKey()
202 <<
" / " << lDP_ptr->describeKey() << std::endl;
210 const BomRoot& iBomRoot) {
212 FlagSaver flagSaver (oStream);
217 oStream << std::endl;
218 oStream <<
"==============================================================="
220 oStream <<
"BomRoot: " << iBomRoot.describeKey() << std::endl;
221 oStream <<
"==============================================================="
225 if (BomManager::hasList<Inventory> (iBomRoot) ==
false) {
231 BomManager::getList<Inventory> (iBomRoot);
232 for (InventoryList_T::const_iterator itInv = lInventoryList.begin();
233 itInv != lInventoryList.end(); ++itInv) {
234 const Inventory* lInv_ptr = *itInv;
235 assert (lInv_ptr != NULL);
244 const Inventory& iInventory) {
246 FlagSaver flagSaver (oStream);
251 oStream <<
"+++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl;
252 oStream <<
"Inventory: " << iInventory.describeKey() << std::endl;
253 oStream <<
"+++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl;
256 if (BomManager::hasList<FlightDate> (iInventory) ==
false) {
262 BomManager::getList<FlightDate> (iInventory);
263 for (FlightDateList_T::const_iterator itFD = lFlightDateList.begin();
264 itFD != lFlightDateList.end(); ++itFD) {
265 const FlightDate* lFD_ptr = *itFD;
266 assert (lFD_ptr != NULL);
274 if (BomManager::hasList<Inventory> (iInventory)){
278 BomManager::getList<Inventory> (iInventory);
280 for (InventoryList_T::const_iterator itInv = lPartnerInventoryList.begin();
281 itInv != lPartnerInventoryList.end(); ++itInv) {
283 oStream <<
"-------------------------------------------------" << std::endl;
284 oStream <<
"Partner inventory:" << std::endl;
285 oStream <<
"-------------------------------------------------" << std::endl;
286 const Inventory* lInv_ptr = *itInv;
287 assert (lInv_ptr != NULL);
292 oStream <<
"******************************************" << std::endl;
293 oStream << std::endl;
298 if (BomManager::hasList<OnDDate> (iInventory)){
302 BomManager::getList<OnDDate> (iInventory);
304 for (OnDDateList_T::const_iterator itOnD = lOnDDateList.begin();
305 itOnD != lOnDDateList.end(); ++itOnD) {
306 oStream <<
"******************************************" << std::endl;
307 oStream <<
"O&D-Date:" << std::endl;
308 oStream <<
"----------" << std::endl;
309 oStream <<
"Airline, Date, Origin-Destination, Segments, " << std::endl;
311 const OnDDate* lOnDDate_ptr = *itOnD;
312 assert (lOnDDate_ptr != NULL);
317 oStream <<
"******************************************" << std::endl;
323 const OnDDate& iOnDDate) {
325 FlagSaver flagSaver (oStream);
330 const AirlineCode_T& lAirlineCode = iOnDDate.getAirlineCode();
331 const Date_T& lDate = iOnDDate.getDate();
333 const AirportCode_T& lDestination = iOnDDate.getDestination();
335 oStream << lAirlineCode <<
", " << lDate <<
", "<< lOrigin <<
"-"
336 << lDestination <<
", " << iOnDDate.describeKey() <<
", "
340 iOnDDate.getDemandInfoMap();
343 const bool isInfoMapEmpty = lDemandInfoMap.empty();
344 if (isInfoMapEmpty) {
347 assert (lDemandInfoMap.empty() ==
false);
349 oStream <<
"----------" << std::endl;
350 oStream <<
"Cabin-Class path, Demand mean, Demand std dev, Yield, "
353 for (StringDemandStructMap_T::const_iterator itDI = lDemandInfoMap.begin();
354 itDI != lDemandInfoMap.end(); ++itDI) {
356 const std::string& lCabinClassPath = itDI->first;
359 const Yield_T lYield = lYieldDemandPair.first;
361 lYieldDemandPair.second;
362 const MeanValue_T lDemandMean = lMeanStdDevPair.first;
365 oStream << lCabinClassPath <<
", "
366 << lDemandMean <<
", "
367 << lDemandStdDev <<
", "
376 const FlightDate& iFlightDate) {
378 FlagSaver flagSaver (oStream);
383 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
384 oStream <<
"******************************************" << std::endl;
385 oStream <<
"FlightDate: " << lAirlineCode << iFlightDate.describeKey()
387 oStream <<
"******************************************" << std::endl;
409 const FlightDate& iFlightDate) {
411 FlagSaver flagSaver (oStream);
418 oStream <<
"******************************************" << std::endl;
419 oStream <<
"Leg-Dates:" << std::endl
420 <<
"----------" << std::endl;
421 oStream <<
"Flight, Leg, BoardDate, BoardTime, "
422 <<
"OffDate, OffTime, Date Offset, Time Offset, Elapsed, "
423 <<
"Distance, Capacity, " << std::endl;
426 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
427 const FlightNumber_T& lFlightNumber = iFlightDate.getFlightNumber();
428 const Date_T& lFlightDateDate = iFlightDate.getDepartureDate();
431 if (BomManager::hasList<LegDate> (iFlightDate) ==
false) {
437 BomManager::getList<LegDate> (iFlightDate);
438 for (LegDateList_T::const_iterator itLD = lLegDateList.begin();
439 itLD != lLegDateList.end(); ++itLD) {
440 const LegDate* lLD_ptr = *itLD;
441 assert (lLD_ptr != NULL);
443 oStream << lAirlineCode << lFlightNumber <<
" "
444 << lFlightDateDate <<
", ";
446 oStream << lLD_ptr->getBoardingPoint() <<
"-"
447 << lLD_ptr->getOffPoint() <<
", "
448 << lLD_ptr->getBoardingDate() <<
", "
449 << lLD_ptr->getBoardingTime() <<
", "
450 << lLD_ptr->getOffDate() <<
", "
451 << lLD_ptr->getOffTime() <<
", "
452 << lLD_ptr->getElapsedTime() <<
", "
453 << lLD_ptr->getDateOffset().days() <<
", "
454 << lLD_ptr->getTimeOffset() <<
", "
455 << lLD_ptr->getDistance() <<
", "
456 << lLD_ptr->getCapacity() <<
", " << std::endl;
458 oStream <<
"******************************************" << std::endl;
463 const FlightDate& iFlightDate) {
465 FlagSaver flagSaver (oStream);
470 oStream <<
"******************************************" << std::endl;
471 oStream <<
"SegmentDates:" << std::endl
472 <<
"----------" << std::endl;
473 oStream <<
"Flight, Segment, Date"
477 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
478 const FlightNumber_T& lFlightNumber = iFlightDate.getFlightNumber();
479 const Date_T& lFlightDateDate = iFlightDate.getDepartureDate();
482 if (BomManager::hasList<SegmentDate> (iFlightDate) ==
false) {
488 BomManager::getList<SegmentDate> (iFlightDate);
489 for (SegmentDateList_T::const_iterator itSD = lSegmentDateList.begin();
490 itSD != lSegmentDateList.end(); ++itSD) {
491 const SegmentDate* lSD_ptr = *itSD;
492 assert (lSD_ptr != NULL);
495 const Date_T& lSegmentDateDate = lSD_ptr->getBoardingDate();
496 const AirportCode_T& lBoardPoint = lSD_ptr->getBoardingPoint();
498 oStream << lAirlineCode << lFlightNumber <<
" " << lFlightDateDate <<
", "
499 << lBoardPoint <<
"-" << lOffPoint <<
", " << lSegmentDateDate << std::endl;
502 const bool isMarketingSDListEmpty = BomManager::hasList<SegmentDate>(*lSD_ptr);
503 if (isMarketingSDListEmpty ==
false) {
505 const SegmentDateList_T& lMarketingSDList = BomManager::getList<SegmentDate>(*lSD_ptr);
507 oStream <<
" *** Marketed by ";
508 for (SegmentDateList_T::const_iterator itMarketingSD = lMarketingSDList.begin();
509 itMarketingSD != lMarketingSDList.end(); ++itMarketingSD) {
510 SegmentDate* lMarketingSD_ptr = *itMarketingSD;
511 FlightDate* lMarketingFD_ptr = BomManager::getParentPtr<FlightDate>(*lMarketingSD_ptr);
512 Inventory* lMarketingInv_ptr = BomManager::getParentPtr<Inventory>(*lMarketingFD_ptr);
513 oStream << lMarketingInv_ptr->toString() << lMarketingFD_ptr->toString() <<
" * ";
518 const SegmentDate* lOperatingSD_ptr = lSD_ptr->getOperatingSegmentDate ();
519 if (lOperatingSD_ptr != NULL) {
521 const FlightDate* lOperatingFD_ptr = BomManager::getParentPtr<FlightDate>(*lOperatingSD_ptr);
522 const Inventory* lOperatingInv_ptr = BomManager::getParentPtr<Inventory>(*lOperatingFD_ptr);
523 oStream <<
" *** Operated by " << lOperatingInv_ptr->toString()
524 << lOperatingFD_ptr->toString() << std::endl;
527 oStream << std::endl;
533 const FlightDate& iFlightDate) {
535 FlagSaver flagSaver (oStream);
540 oStream <<
"******************************************" << std::endl;
541 oStream <<
"LegCabins:" << std::endl
542 <<
"----------" << std::endl;
543 oStream <<
"Flight, Leg, Cabin, "
544 <<
"OffedCAP, PhyCAP, RgdADJ, AU, UPR, SS, Staff, WL, Group, "
545 <<
"CommSpace, AvPool, Avl, NAV, GAV, ACP, ETB, BidPrice, "
549 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
550 const FlightNumber_T& lFlightNumber = iFlightDate.getFlightNumber();
551 const Date_T& lFlightDateDate = iFlightDate.getDepartureDate();
554 if (BomManager::hasList<LegDate> (iFlightDate) ==
false) {
560 BomManager::getList<LegDate> (iFlightDate);
561 for (LegDateList_T::const_iterator itLD = lLegDateList.begin();
562 itLD != lLegDateList.end(); ++itLD) {
563 const LegDate* lLD_ptr = *itLD;
564 assert (lLD_ptr != NULL);
567 const Date_T& lLegDateDate = lLD_ptr->getBoardingDate();
568 const AirportCode_T& lBoardPoint = lLD_ptr->getBoardingPoint();
573 BomManager::getList<LegCabin> (*lLD_ptr);
574 for (LegCabinList_T::const_iterator itLC = lLegCabinList.begin();
575 itLC != lLegCabinList.end(); ++itLC) {
576 const LegCabin* lLC_ptr = *itLC;
577 assert (lLC_ptr != NULL);
579 oStream << lAirlineCode << lFlightNumber <<
" "
580 << lFlightDateDate <<
", ";
582 oStream << lBoardPoint <<
"-" << lOffPoint
583 <<
" " << lLegDateDate <<
", ";
585 oStream << lLC_ptr->getCabinCode() <<
", ";
587 oStream << lLC_ptr->getOfferedCapacity() <<
", "
588 << lLC_ptr->getPhysicalCapacity() <<
", "
589 << lLC_ptr->getRegradeAdjustment() <<
", "
590 << lLC_ptr->getAuthorizationLevel() <<
", "
591 << lLC_ptr->getUPR() <<
", "
592 << lLC_ptr->getSoldSeat() <<
", "
593 << lLC_ptr->getStaffNbOfSeats() <<
", "
594 << lLC_ptr->getWLNbOfSeats() <<
", "
595 << lLC_ptr->getGroupNbOfSeats() <<
", "
596 << lLC_ptr->getCommittedSpace() <<
", "
597 << lLC_ptr->getAvailabilityPool() <<
", "
598 << lLC_ptr->getAvailability() <<
", "
599 << lLC_ptr->getNetAvailability() <<
", "
600 << lLC_ptr->getGrossAvailability() <<
", "
601 << lLC_ptr->getAvgCancellationPercentage() <<
", "
602 << lLC_ptr->getETB() <<
", "
603 << lLC_ptr->getCurrentBidPrice() <<
", "
607 oStream <<
"******************************************" << std::endl;
612 const FlightDate& iFlightDate) {
614 FlagSaver flagSaver (oStream);
623 const FlightDate& iFlightDate) {
625 FlagSaver flagSaver (oStream);
631 oStream <<
"******************************************" << std::endl;
632 oStream <<
"SegmentCabins:" << std::endl
633 <<
"--------------" << std::endl;
634 oStream <<
"Flight, Segment, Cabin, FF, Bkgs, MIN, UPR, "
635 <<
"CommSpace, AvPool, BP, " << std::endl;
638 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
639 const FlightNumber_T& lFlightNumber = iFlightDate.getFlightNumber();
640 const Date_T& lFlightDateDate = iFlightDate.getDepartureDate();
643 if (BomManager::hasList<SegmentDate> (iFlightDate) ==
false) {
649 BomManager::getList<SegmentDate> (iFlightDate);
650 for (SegmentDateList_T::const_iterator itSD = lSegmentDateList.begin();
651 itSD != lSegmentDateList.end(); ++itSD) {
652 const SegmentDate* lSD_ptr = *itSD;
653 assert (lSD_ptr != NULL);
656 const Date_T& lSegmentDateDate = lSD_ptr->getBoardingDate();
657 const AirportCode_T& lBoardPoint = lSD_ptr->getBoardingPoint();
662 BomManager::getList<SegmentCabin> (*lSD_ptr);
663 for (SegmentCabinList_T::const_iterator itSC = lSegmentCabinList.begin();
664 itSC != lSegmentCabinList.end(); ++itSC) {
665 const SegmentCabin* lSC_ptr = *itSC;
666 assert (lSC_ptr != NULL);
669 const CabinCode_T& lCabinCode = lSC_ptr->getCabinCode();
672 if (BomManager::hasList<FareFamily> (*lSC_ptr) ==
false) {
678 BomManager::getList<FareFamily> (*lSC_ptr);
679 for (FareFamilyList_T::const_iterator itFF = lFareFamilyList.begin();
680 itFF != lFareFamilyList.end(); ++itFF) {
681 const FareFamily* lFF_ptr = *itFF;
682 assert (lFF_ptr != NULL);
684 oStream << lAirlineCode << lFlightNumber <<
" "
685 << lFlightDateDate <<
", ";
687 oStream << lBoardPoint <<
"-" << lOffPoint <<
" "
688 << lSegmentDateDate <<
", ";
690 oStream << lCabinCode <<
", " << lFF_ptr->getFamilyCode() <<
", ";
692 oStream << lSC_ptr->getBookingCounter() <<
", "
693 << lSC_ptr->getMIN() <<
", "
694 << lSC_ptr->getUPR() <<
", "
695 << lSC_ptr->getCommittedSpace() <<
", "
696 << lSC_ptr->getAvailabilityPool() <<
", "
697 << lSC_ptr->getCurrentBidPrice() <<
", "
702 oStream <<
"******************************************" << std::endl;
707 const FlightDate& iFlightDate) {
709 FlagSaver flagSaver (oStream);
714 oStream <<
"******************************************" << std::endl;
715 oStream <<
"Buckets:" << std::endl
716 <<
"--------" << std::endl;
717 oStream <<
"Flight, Leg, Cabin, Yield, AU/SI, SS, AV, "
721 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
722 const FlightNumber_T& lFlightNumber = iFlightDate.getFlightNumber();
723 const Date_T& lFlightDateDate = iFlightDate.getDepartureDate();
726 if (BomManager::hasList<LegDate> (iFlightDate) ==
false) {
732 BomManager::getList<LegDate> (iFlightDate);
733 for (LegDateList_T::const_iterator itLD = lLegDateList.begin();
734 itLD != lLegDateList.end(); ++itLD) {
735 const LegDate* lLD_ptr = *itLD;
736 assert (lLD_ptr != NULL);
739 const Date_T& lLegDateDate = lLD_ptr->getBoardingDate();
740 const AirportCode_T& lBoardPoint = lLD_ptr->getBoardingPoint();
745 BomManager::getList<LegCabin> (*lLD_ptr);
746 for (LegCabinList_T::const_iterator itLC = lLegCabinList.begin();
747 itLC != lLegCabinList.end(); ++itLC) {
748 const LegCabin* lLC_ptr = *itLC;
749 assert (lLC_ptr != NULL);
752 if (BomManager::hasList<Bucket> (*lLC_ptr) ==
false) {
757 const CabinCode_T& lCabinCode = lLC_ptr->getCabinCode();
760 const BucketList_T& lBucketList = BomManager::getList<Bucket> (*lLC_ptr);
761 for (BucketList_T::const_iterator itBuck = lBucketList.begin();
762 itBuck != lBucketList.end(); ++itBuck) {
763 const Bucket* lBucket_ptr = *itBuck;
764 assert (lBucket_ptr != NULL);
766 oStream << lAirlineCode << lFlightNumber <<
" "
767 << lFlightDateDate <<
", ";
769 oStream << lBoardPoint <<
"-" << lOffPoint <<
" "
770 << lLegDateDate <<
", " << lCabinCode <<
", ";
772 oStream << lBucket_ptr->getYieldRangeUpperValue() <<
", "
773 << lBucket_ptr->getSeatIndex() <<
", "
774 << lBucket_ptr->getSoldSeats() <<
", "
775 << lBucket_ptr->getAvailability() <<
", ";
776 oStream << std::endl;
780 oStream <<
"******************************************" << std::endl;
785 const BookingClass& iBookingClass,
786 const std::string& iLeadingString) {
788 FlagSaver flagSaver (oStream);
796 oStream << iLeadingString << iBookingClass.getClassCode();
798 if (iBookingClass.getSubclassCode() == 0) {
801 oStream << iBookingClass.getSubclassCode() <<
", ";
803 oStream << iBookingClass.getAuthorizationLevel() <<
" ("
804 << iBookingClass.getProtection() <<
"), "
805 << iBookingClass.getNegotiatedSpace() <<
", "
806 << iBookingClass.getNoShowPercentage() <<
", "
807 << iBookingClass.getCancellationPercentage() <<
", "
808 << iBookingClass.getNbOfBookings() <<
", "
809 << iBookingClass.getNbOfGroupBookings() <<
" ("
810 << iBookingClass.getNbOfPendingGroupBookings() <<
"), "
811 << iBookingClass.getNbOfStaffBookings() <<
", "
812 << iBookingClass.getNbOfWLBookings() <<
", "
813 << iBookingClass.getETB() <<
", "
814 << iBookingClass.getNetClassAvailability() <<
", "
815 << iBookingClass.getNetRevenueAvailability() <<
", "
816 << iBookingClass.getSegmentAvailability() <<
", "
822 const FlightDate& iFlightDate) {
824 FlagSaver flagSaver (oStream);
827 oStream <<
"******************************************" << std::endl;
828 oStream <<
"Subclasses:" << std::endl
829 <<
"-----------" << std::endl;
830 oStream <<
"Flight, Segment, Cabin, FF, Subclass, MIN/AU (Prot), "
831 <<
"Nego, NS%, OB%, "
832 <<
"Bkgs, GrpBks (pdg), StfBkgs, WLBkgs, ETB, "
833 <<
"ClassAvl, RevAvl, SegAvl, "
837 const AirlineCode_T& lAirlineCode = iFlightDate.getAirlineCode();
838 const FlightNumber_T& lFlightNumber = iFlightDate.getFlightNumber();
839 const Date_T& lFlightDateDate = iFlightDate.getDepartureDate();
842 if (BomManager::hasList<SegmentDate> (iFlightDate) ==
false) {
848 BomManager::getList<SegmentDate> (iFlightDate);
849 for (SegmentDateList_T::const_iterator itSD = lSegmentDateList.begin();
850 itSD != lSegmentDateList.end(); ++itSD) {
851 const SegmentDate* lSD_ptr = *itSD;
852 assert (lSD_ptr != NULL);
855 const Date_T& lSegmentDateDate = lSD_ptr->getBoardingDate();
856 const AirportCode_T& lBoardPoint = lSD_ptr->getBoardingPoint();
861 BomManager::getList<SegmentCabin> (*lSD_ptr);
862 for (SegmentCabinList_T::const_iterator itSC = lSegmentCabinList.begin();
863 itSC != lSegmentCabinList.end(); ++itSC) {
864 const SegmentCabin* lSC_ptr = *itSC;
865 assert (lSC_ptr != NULL);
868 const CabinCode_T& lCabinCode = lSC_ptr->getCabinCode();
871 std::ostringstream oSCLeadingStr;
872 oSCLeadingStr << lAirlineCode << lFlightNumber <<
" "
873 << lFlightDateDate <<
", "
874 << lBoardPoint <<
"-" << lOffPoint <<
" "
875 << lSegmentDateDate <<
", "
876 << lCabinCode <<
", ";
882 if (BomManager::hasList<FareFamily> (*lSC_ptr) ==
true) {
886 BomManager::getList<FareFamily> (*lSC_ptr);
887 for (FareFamilyList_T::const_iterator itFF = lFareFamilyList.begin();
888 itFF != lFareFamilyList.end(); ++itFF) {
889 const FareFamily* lFF_ptr = *itFF;
890 assert (lFF_ptr != NULL);
893 lFamilyCode = lFF_ptr->getFamilyCode();
896 std::ostringstream oFFLeadingStr;
897 oFFLeadingStr << oSCLeadingStr.str() << lFamilyCode <<
", ";
901 BomManager::getList<BookingClass> (*lFF_ptr);
902 for (BookingClassList_T::const_iterator itBC =
903 lBookingClassList.begin();
904 itBC != lBookingClassList.end(); ++itBC) {
905 const BookingClass* lBC_ptr = *itBC;
906 assert (lBC_ptr != NULL);
916 assert (BomManager::hasList<FareFamily> (*lSC_ptr) ==
false);
920 std::ostringstream oFFLeadingStr;
921 oFFLeadingStr << oSCLeadingStr.str() << lFamilyCode <<
", ";
925 BomManager::getList<BookingClass> (*lSC_ptr);
926 for (BookingClassList_T::const_iterator itBC =
927 lBookingClassList.begin();
928 itBC != lBookingClassList.end(); ++itBC) {
929 const BookingClass* lBC_ptr = *itBC;
930 assert (lBC_ptr != NULL);
937 oStream <<
"******************************************" << std::endl;
946 FlagSaver flagSaver (oStream);
948 oStream <<
"Travel solutions:";
949 unsigned short idx = 0;
950 for (TravelSolutionList_T::const_iterator itTS =
951 iTravelSolutionList.begin();
952 itTS != iTravelSolutionList.end(); ++itTS, ++idx) {
953 const TravelSolutionStruct& lTS = *itTS;
955 oStream << std::endl;
956 oStream <<
" [" << idx <<
"] " << lTS.display();
966 FlagSaver flagSaver (oStream);
969 for (DatePeriodList_T::const_iterator itDP = iDatePeriodList.begin();
970 itDP != iDatePeriodList.end(); ++itDP) {
971 const DatePeriod* lDP_ptr = *itDP;
972 assert (lDP_ptr != NULL);
981 const BomRoot& iBomRoot) {
983 FlagSaver flagSaver (oStream);
988 oStream << std::endl;
989 oStream <<
"==============================================================="
991 oStream <<
"BomRoot: " << iBomRoot.describeKey() << std::endl;
992 oStream <<
"==============================================================="
996 if (BomManager::hasList<AirportPair> (iBomRoot) ==
false) {
1002 BomManager::getList<AirportPair> (iBomRoot);
1003 for (AirportPairList_T::const_iterator itAir = lAirportPairList.begin();
1004 itAir != lAirportPairList.end(); ++itAir ) {
1005 const AirportPair* lAir_ptr = *itAir;
1006 assert (lAir_ptr != NULL);
1015 const AirportPair& iAirportPair) {
1017 FlagSaver flagSaver (oStream);
1022 oStream <<
"+++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl;
1023 oStream <<
"AirportPair: " << iAirportPair.describeKey() << std::endl;
1024 oStream <<
"+++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl;
1027 if (BomManager::hasList<DatePeriod> (iAirportPair) ==
false) {
1033 BomManager::getList<DatePeriod> (iAirportPair);
1034 for (DatePeriodList_T::const_iterator itDP = lDatePeriodList.begin();
1035 itDP != lDatePeriodList.end(); ++itDP) {
1036 const DatePeriod* lDP_ptr = *itDP;
1037 assert (lDP_ptr != NULL);
1046 const DatePeriod& iDatePeriod) {
1049 FlagSaver flagSaver (oStream);
1054 oStream <<
"------------------------------------------" << std::endl;
1055 oStream <<
"DatePeriod: " << iDatePeriod.describeKey() << std::endl;
1056 oStream <<
"------------------------------------------" << std::endl;
1059 if (BomManager::hasList<PosChannel> (iDatePeriod) ==
false) {
1065 BomManager::getList<PosChannel> (iDatePeriod);
1066 for (PosChannelList_T::const_iterator itPC = lPosChannelList.begin();
1067 itPC != lPosChannelList.end(); ++itPC) {
1068 const PosChannel* lPC_ptr = *itPC;
1069 assert (lPC_ptr != NULL);
1078 const PosChannel& iPosChannel) {
1080 FlagSaver flagSaver (oStream);
1085 oStream <<
"******************************************" << std::endl;
1086 oStream <<
"PosChannel: " << iPosChannel.describeKey() << std::endl;
1087 oStream <<
"******************************************" << std::endl;
1090 if (BomManager::hasList<TimePeriod> (iPosChannel) ==
false) {
1096 BomManager::getList<TimePeriod> (iPosChannel);
1097 for (TimePeriodList_T::const_iterator itTP = lTimePeriodList.begin();
1098 itTP != lTimePeriodList.end(); ++itTP) {
1099 const TimePeriod* lTP_ptr = *itTP;
1100 assert (lTP_ptr != NULL);
1109 const TimePeriod& iTimePeriod) {
1112 FlagSaver flagSaver (oStream);
1117 oStream <<
"----------------------------------------" << std::endl;
1118 oStream <<
"TimePeriod: " << iTimePeriod.describeKey() << std::endl;
1119 oStream <<
"----------------------------------------" << std::endl;
1124 csvFeatureListDisplay<FareFeatures> (oStream, iTimePeriod);
1125 csvFeatureListDisplay<YieldFeatures> (oStream, iTimePeriod);
1129 template <
typename FEATURE_TYPE>
1131 const TimePeriod& iTimePeriod) {
1134 if (BomManager::hasList<FEATURE_TYPE> (iTimePeriod) ==
false) {
1139 typedef typename BomHolder<FEATURE_TYPE>::BomList_T FeaturesList_T;
1140 const FeaturesList_T& lFeaturesList =
1141 BomManager::getList<FEATURE_TYPE> (iTimePeriod);
1142 for (
typename FeaturesList_T::const_iterator itFF = lFeaturesList.begin();
1143 itFF != lFeaturesList.end(); ++itFF) {
1144 const FEATURE_TYPE* lFF_ptr = *itFF;
1145 assert (lFF_ptr != NULL);
1153 template <
typename FEATURE_TYPE>
1155 const FEATURE_TYPE& iFeatures) {
1157 FlagSaver flagSaver (oStream);
1162 oStream <<
"--------------------------------------" << std::endl;
1163 oStream <<
"Fare/yield-Features: " << iFeatures.describeKey() << std::endl;
1164 oStream <<
"--------------------------------------" << std::endl;
1167 if (BomManager::hasList<AirlineClassList> (iFeatures) ==
false) {
1173 BomManager::getList<AirlineClassList> (iFeatures);
1174 for (AirlineClassListList_T::const_iterator itACL =
1175 lAirlineClassListList.begin();
1176 itACL != lAirlineClassListList.end(); ++itACL) {
1177 const AirlineClassList* lACL_ptr = *itACL;
1178 assert (lACL_ptr != NULL);
1188 const AirlineClassList& iAirlineClassList) {
1190 FlagSaver flagSaver (oStream);
1195 oStream <<
"------------------------------------" << std::endl;
1196 oStream <<
"AirlineClassList: "
1197 << iAirlineClassList.describeKey() << std::endl;
1198 oStream <<
"------------------------------------" << std::endl;