Class EAN13Validator

    • Constructor Detail

      • EAN13Validator

        public EAN13Validator()
    • Method Detail

      • weightedValue

        protected int weightedValue​(int charValue,
                                    int leftPos,
                                    int rightPos)
                             throws Exception

        Calculates the weighted value of a character in the code at a specified position.

        For EAN-13 (from right to left) odd digits are weighted with a factor of one and even digits with a factor of three.

        Calculates the weighted value of a character in the code at a specified position.

        Some modulus routines weight the value of a character depending on its position in the code (e.g. ISBN-10), while others use different weighting factors for odd/even positions (e.g. EAN or Luhn). Implement the appropriate mechanism required by overriding this method.

        Parameters:
        charValue - The numeric value of the character
        leftPos - The position of the character in the code, counting from left to right
        rightPos - The position of the character in the code, counting from right to left
        Returns:
        The weighted value of the character
        Throws:
        Exception
      • initialize

        public final void initialize​(A annotation)
        Specified by:
        initialize in interface javax.validation.ConstraintValidator<A extends Annotation,​CharSequence>
      • isValid

        public boolean isValid​(CharSequence code,
                               javax.validation.ConstraintValidatorContext context)
        Specified by:
        isValid in interface javax.validation.ConstraintValidator<A extends Annotation,​CharSequence>
      • toInt

        protected int toInt​(char character,
                            int leftPos,
                            int rightPos)
        Convert a character at a specified position to an integer value.

        Note: this implementation only handlers numeric values For non-numeric characters, override this method to provide character-->integer conversion.

        Parameters:
        character - The character to convert
        leftPos - The position of the character in the code, counting from left to right
        rightPos - The positionof the character in the code, counting from right to left
        Returns:
        The integer value of the character
      • sumDigits

        protected static int sumDigits​(int number)
        Add together the individual digits in a number.
        Parameters:
        number - The number whose digits are to be added
        Returns:
        The sum of the digits