Class CreditCardValidator

  • All Implemented Interfaces:
    Serializable, IClusterable, IValidator<String>

    public class CreditCardValidator
    extends Object
    implements IValidator<String>
    Checks if a credit card number is valid. The number will be checked for "American Express", "China UnionPay", "Diners Club Carte Blanche", "Diners Club International", "Diners Club US & Canada", "Discover Card", "JCB", "Laser", "Maestro", "MasterCard", "Solo", "Switch", "Visa" and "Visa Electron". If none of those apply to the credit card number, the credit card number is considered invalid.

    Card prefixes and lengths have been taken from Wikipedia.

    Since:
    1.2.6
    Author:
    Johan Compagner, Joachim F. Rohde
    See Also:
    Serialized Form
    • Method Detail

      • isLengthAndPrefixCorrect

        protected boolean isLengthAndPrefixCorrect​(String creditCardNumber)
        Checks if the credit card number can be determined as a valid number.
        Parameters:
        creditCardNumber - the credit card number as a string
        Returns:
        TRUE if the credit card number could be determined as a valid number, else FALSE is returned
      • determineCardId

        public final CreditCardValidator.CreditCard determineCardId​(String creditCardNumber)
        Checks if the credit card number can be determined as a valid number.
        Parameters:
        creditCardNumber - the credit card number as a string
        Returns:
        TRUE if the credit card number could be determined as a valid number, else FALSE is returned
      • isUnknown

        protected CreditCardValidator.CreditCard isUnknown​(String creditCardNumber)
        Can be used (subclassed) to extend the test with a credit card not yet known by the validator.
        Parameters:
        creditCardNumber - the credit card number as a string
        Returns:
        The credit card id of the issuer
      • isChecksumCorrect

        protected final boolean isChecksumCorrect​(String creditCardNumber)
        Calculates the checksum of a credit card number using the Luhn algorithm (the so-called "mod 10" algorithm).
        Parameters:
        creditCardNumber - the credit card number for which the checksum should be calculated
        Returns:
        TRUE if the checksum for the given credit card number is valid, else return FALSE
        See Also:
        Wikipedie - Luhn algorithm