mirror of
https://github.com/Respect/Validation.git
synced 2026-03-16 15:25:45 +01:00
69 lines
1.7 KiB
PHP
69 lines
1.7 KiB
PHP
<?php
|
|
namespace Respect\Validation\Rules\Locale;
|
|
|
|
use Respect\Validation\Exceptions\ComponentException;
|
|
use Respect\Validation\Validatable;
|
|
|
|
class Factory
|
|
{
|
|
/**
|
|
* @return Validatable
|
|
*/
|
|
public function bic($countryCode)
|
|
{
|
|
$filteredCountryCode = strtoupper($countryCode);
|
|
switch ($filteredCountryCode) {
|
|
case 'DE':
|
|
return new GermanBic();
|
|
|
|
default:
|
|
throw new ComponentException(
|
|
sprintf(
|
|
'Cannot provide BIC validation for country "%s"',
|
|
$countryCode
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return Validatable
|
|
*/
|
|
public function bank($countryCode)
|
|
{
|
|
$filteredCountryCode = strtoupper($countryCode);
|
|
switch ($filteredCountryCode) {
|
|
case 'DE':
|
|
return new GermanBank();
|
|
|
|
default:
|
|
throw new ComponentException(
|
|
sprintf(
|
|
'Cannot provide bank validation for country "%s"',
|
|
$countryCode
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return Validatable
|
|
*/
|
|
public function bankAccount($countryCode, $bank)
|
|
{
|
|
$filteredCountryCode = strtoupper($countryCode);
|
|
switch ($filteredCountryCode) {
|
|
case 'DE':
|
|
return new GermanBankAccount($bank);
|
|
|
|
default:
|
|
throw new ComponentException(
|
|
sprintf(
|
|
'Cannot provide bank account validation for country "%s" and bank "%s"',
|
|
$countryCode,
|
|
$bank
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|