public function setGateway(GatewayType $gateway)
 {
     $this->gateway = $gateway;
     $this->logger = DonationLoggerFactory::getLogger($gateway);
     $gateway_errors = $this->gateway->getAllErrors();
     // @codeCoverageIgnoreStart
     if (!is_array($gateway_errors)) {
         $gateway_errors = array();
     }
     // @codeCoverageIgnoreEnd
     $this->form_errors = array_merge(DataValidator::getEmptyErrorArray(), $gateway_errors);
 }
 public function __construct(&$gateway)
 {
     global $wgOut, $wgRequest;
     $this->gateway =& $gateway;
     $this->test = $this->gateway->getGlobal("Test");
     $gateway_errors = $this->gateway->getAllErrors();
     if (!is_array($gateway_errors)) {
         $gateway_errors = array();
     }
     $this->form_errors = array_merge(DataValidator::getEmptyErrorArray(), $gateway_errors);
     $this->paypal = $wgRequest->getBool('paypal', false);
     /**
      *  add form-specific css - the path can be set in child classes
      *  using $this->setStylePath, which should be called before
      *  calling parent::__construct()
      *  
      *  @TODO ditch this and start using ResourceLoader. Perhaps do something
      *  similar to how resources are getting loaded in TwoStepTwoColumn and
      *  its children.
      */
     if (!strlen($this->getStylePath())) {
         $this->setStylePath();
     }
     $wgOut->addExtensionStyle($this->getStylePath());
     /**
      * if OWA is enabled, load the JS.  
      * 
      * We do this here (rather than in individual forms) because if OWA is 
      * enabled, we ALWAYS want to make sure it gets included.
      */
     if (defined('OWA')) {
         $this->loadOwaJs();
     }
     $this->loadLogoLinkOverride();
     // This method should be overridden in the child class
     $this->init();
 }