Class EAN13CheckDigit
java.lang.Object
org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
org.apache.commons.validator.routines.checkdigit.EAN13CheckDigit
- All Implemented Interfaces:
Serializable, CheckDigit
Modulus 10 EAN-13 / UPC / ISBN-13 Check Digit
calculation/validation.
Check digit calculation is based on modulus 10 with digits in an odd position (from right to left) being weighted 1 and even position digits being weighted 3.
For further information see:
- EAN-13 - see Wikipedia - European Article Number.
- UPC - see Wikipedia - Universal Product Code.
- ISBN-13 - see Wikipedia - International Standard Book Number (ISBN).
- Since:
- 1.4
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanValidates a modulus check digit for a code.protected intweightedValue(int charValue, int leftPos, int rightPos) Calculates the weighted value of a character in the code at a specified position.Methods inherited from class ModulusCheckDigit
calculate, calculateModulus, getModulus, sumDigits, toCheckDigit, toIntModifier and TypeMethodDescriptionCalculates a modulus Check Digit for a code which does not yet have one.protected intcalculateModulus(String code, boolean includesCheckDigit) Calculates the modulus for a code.intGets the modulus value this check digit routine is based on.static intsumDigits(int number) Adds together the individual digits in a number.protected StringtoCheckDigit(int charValue) Converts an integer value to a check digit.protected inttoInt(char character, int leftPos, int rightPos) Converts a character at a specified position to an integer value.
-
Field Details
-
EAN13_CHECK_DIGIT
Singleton EAN-13 Check Digit instance.
-
-
Constructor Details
-
EAN13CheckDigit
public EAN13CheckDigit()Constructs a modulus 10 Check Digit routine for EAN/UPC.
-
-
Method Details
-
isValid
Validates a modulus check digit for a code.The weight is taken from
rightPos, which does not change when a character is prepended, soModulusCheckDigitwould accept an over-length code whose leading digit lands on a no-op weight (for example a valid code with a0prepended). The thirteen-character length is checked here before the check digit test.- Specified by:
isValidin interfaceCheckDigit- Overrides:
isValidin classModulusCheckDigit- Parameters:
code- The code to validate.- Returns:
trueif the check digit is valid, otherwisefalse.
-
weightedValue
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.
- Specified by:
weightedValuein classModulusCheckDigit- 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.
-