public final CreditCard determineCardId()

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