|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
public abstract class ModulusCheckDigit
Abstract Modulus Check digit calculation/validation.
Provides a base class for building modulus Check Digit routines.
This implementation only handles numeric codes, such as
EAN-13. For alphanumeric codes such as EAN-128 you
will need to implement/override the toInt() and
toChar() methods.
| Constructor Summary | |
|---|---|
ModulusCheckDigit(int modulus)
Construct a CheckDigit routine for a specified modulus. |
|
| Method Summary | |
|---|---|
String |
calculate(String code)
Calculate a modulus Check Digit for a code. |
protected int |
calculateModulus(String code,
boolean includesCheckDigit)
Calculate the modulus for a code. |
int |
getModulus()
Return the modulus value this check digit routine is based on. |
boolean |
isValid(String code)
Validate a modulus check digit for a code. |
static int |
sumDigits(int number)
Add together the individual digits in a number. |
protected String |
toCheckDigit(int charValue)
Convert an integer value to a check digit. |
protected int |
toInt(char character,
int leftPos,
int rightPos)
Convert a character at a specified position to an integer value. |
protected abstract int |
weightedValue(int charValue,
int leftPos,
int rightPos)
Calculates the weighted value of a character in the code at a specified position. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ModulusCheckDigit(int modulus)
CheckDigit routine for a specified modulus.
modulus - The modulus value to use for the check digit calculation| Method Detail |
|---|
public int getModulus()
public boolean isValid(String code)
isValid in interface CheckDigitcode - The code to validate
true if the check digit is valid, otherwise
false
public String calculate(String code)
throws CheckDigitException
calculate in interface CheckDigitcode - The code to calculate the Check Digit for
CheckDigitException - if an error occurs calculating
the check digit for the specified code
protected int calculateModulus(String code,
boolean includesCheckDigit)
throws CheckDigitException
code - The code to calculate the modulus for.includesCheckDigit - Whether the code includes the Check Digit or not.
CheckDigitException - if an error occurs calculating the modulus
for the specified code
protected abstract int weightedValue(int charValue,
int leftPos,
int rightPos)
throws CheckDigitException
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.
charValue - The numeric value of the characterleftPos - The position of the character in the code, counting from left to rightrightPos - The positionof the character in the code, counting from right to left
CheckDigitException - if an error occurs calculating
the weighted value
protected int toInt(char character,
int leftPos,
int rightPos)
throws CheckDigitException
Note: this implementation only handlers numeric values For non-numeric characters, override this method to provide character-->integer conversion.
character - The character to convertleftPos - The position of the character in the code, counting from left to rightrightPos - The positionof the character in the code, counting from right to left
CheckDigitException - if character is non-numeric
protected String toCheckDigit(int charValue)
throws CheckDigitException
Note: this implementation only handles numeric values For non-numeric characters, override this method to provide integer-->character conversion.
charValue - The integer value of the character
CheckDigitException - if integer character value
doesn't represent a numeric characterpublic static int sumDigits(int number)
number - The number whose digits are to be added
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||