<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

class EPayBLZahlverfahrenFactory
{
  public static function getZahlverfahren(int $payonline): EPayBLZahlverfahren
  {
    switch ($payonline) {
      case EPAYMENT_EPAYBL_PAYPAL:
        return new EPayBLZahlverfahrenPayPal();
      case EPAYMENT_EPAYBL_PAYDIREKT:
        return new EPayBLZahlverfahrenPaydirekt();
      case EPAYMENT_EPAYBL_GIROPAY:
        return new EPayBLZahlverfahrenGiropay();
      case EPAYMENT_EPAYBL_CREDITCARD:
        return new EPayBLZahlverfahrenKreditkarte();
      default:
        throw new Exception("Kein ePayBL Zahlverfahren für die payonline Nummer '$payonline' gefunden");
    }
  }
}
