respect-validation/library/Rules/Locale/Factory.php
2015-01-18 13:39:41 -02:00

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
)
);
}
}
}