in wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java [196:275]
public final CreditCard determineCardId(String creditCardNumber)
{
if (creditCardNumber == null)
{
return CreditCard.INVALID;
}
// strip spaces and dashes
creditCardNumber = creditCardNumber.replaceAll("[ -]", "");
// the length of the credit card number has to be between 12 and 19.
// else the number is invalid.
if ((creditCardNumber.length() >= 12) && (creditCardNumber.length() <= 19) &&
isChecksumCorrect(creditCardNumber))
{
cardId = CreditCard.INVALID;
if (cardId == CreditCard.INVALID)
{
cardId = isAmericanExpress(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isChinaUnionPay(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isDinersClubCarteBlanche(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isDinersClubInternational(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isDinersClubUsAndCanada(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isDiscoverCard(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isJCB(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isLaser(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isMaestro(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isMastercard(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isSolo(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isSwitch(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isVisa(creditCardNumber);
}
if (cardId == CreditCard.INVALID)
{
cardId = isVisaElectron(creditCardNumber);
}
}
else
{
cardId = isUnknown(creditCardNumber);
}
return cardId;
}