// $RCSfile: SeniorCitizenPricingStrategy.cpp,v $
#include "SeniorCitizenPricingStrategy.h"

SeniorCitizenPricingStrategy
 ::SeniorCitizenPricingStrategy(
      float discountFraction)
 : discountFactor(1 - discountFraction)
{}

Money *
SeniorCitizenPricingStrategy
 ::getTotal(Reservation *context) {
  Money *preDiscount =
    context->getPreDiscountTotal();
  return preDiscount->scaleBy(
              discountFactor);
}

SeniorCitizenPricingStrategy::
~SeniorCitizenPricingStrategy(){
  this->PricingStrategy::~PricingStrategy();
}

SeniorCitizenPricingStrategy::
 SeniorCitizenPricingStrategy(
  const SeniorCitizenPricingStrategy &p)
   : discountFactor(p.discountFactor)
{
   reservation = 
     new Reservation(*(p.reservation));
}

SeniorCitizenPricingStrategy *
SeniorCitizenPricingStrategy::clone() {
  return new SeniorCitizenPricingStrategy(*this);
}
