|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.bval.extras.constraints.checkdigit.ModulusValidator<A>
A
- abstract class ModulusValidator<A extends Annotation>
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 | |
---|---|
ModulusValidator(int modulus)
|
Method Summary | |
---|---|
void |
initialize(A annotation)
|
boolean |
isValid(String code,
ConstraintValidatorContext context)
|
protected static int |
sumDigits(int number)
Add together the individual digits in a number. |
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 ModulusValidator(int modulus)
Method Detail |
---|
public final void initialize(A annotation)
initialize
in interface ConstraintValidator<A extends Annotation,String>
public boolean isValid(String code, ConstraintValidatorContext context)
isValid
in interface ConstraintValidator<A extends Annotation,String>
protected abstract int weightedValue(int charValue, int leftPos, int rightPos) throws Exception
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 position of the character in the code, counting from right to left
Exception
protected int toInt(char character, int leftPos, int rightPos)
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
protected 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 |