/**
  * This method validates if the given $orderContext and $paymentContext are valid to be 
  * processed with this payment method. 
  * 
  * Subclasses may override this method, but they should call the parent method.
  * 
  * @param Customweb_Payment_Authorization_IOrderContext $orderContext
  * @param Customweb_Payment_Authorization_IPaymentCustomerContext $paymentContext
  * @throws Exception In case something is not valid.
  */
 public function preValidate(Customweb_Payment_Authorization_IOrderContext $orderContext, Customweb_Payment_Authorization_IPaymentCustomerContext $paymentContext)
 {
     if (!$this->isCountrySupported($orderContext->getBillingCountryIsoCode())) {
         throw new Exception(Customweb_I18n_Translation::__("The payment method !paymentMethodName is not available in your country ('!country').", array('!paymentMethodName' => $this->getPaymentMethodDisplayName(), '!country' => $orderContext->getBillingCountryIsoCode())));
     }
     if (!$this->isCurrencySupported($orderContext->getCurrencyCode())) {
         throw new Exception(Customweb_I18n_Translation::__("The payment method !paymentMethodName does not support the currency '!currency'.", array('!paymentMethodName' => $this->getPaymentMethodDisplayName(), '!currency' => $orderContext->getCurrencyCode())));
     }
     return true;
 }