|
||||||||||
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<ISBN10>
org.apache.bval.extras.constraints.checkdigit.ISBN10Validator
public final class ISBN10Validator
Modulus 11 ISBN-10 Check Digit calculation/validation.
ISBN-10 Numbers are a numeric code except for the last (check) digit which can have a value of "X".
Check digit calculation is based on modulus 11 with digits being weighted based by their position, from right to left with the first digit being weighted 1, the second 2 and so on. If the check digit is calculated as "10" it is converted to "X".
N.B. From 1st January 2007 the book industry will start to use a new 13 digit
ISBN number (rather than this 10 digit ISBN number) which uses the EAN-13 / UPC
(see EAN13CheckDigit
) standard.
For further information see:
Constructor Summary | |
---|---|
ISBN10Validator()
|
Method Summary | |
---|---|
protected int |
toInt(char character,
int leftPos,
int rightPos)
Convert a character at a specified position to an integer value. |
protected int |
weightedValue(int charValue,
int leftPos,
int rightPos)
Calculates the weighted value of a charcter in the code at a specified position. |
Methods inherited from class org.apache.bval.extras.constraints.checkdigit.ModulusValidator |
---|
initialize, isValid, sumDigits |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ISBN10Validator()
Method Detail |
---|
protected int weightedValue(int charValue, int leftPos, int rightPos) throws Exception
For ISBN-10 (from right to left) digits are weighted by their position.
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.
weightedValue
in class ModulusValidator<ISBN10>
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)
Convert a character at a specified position to an integer value.
Character 'X' check digit converted to 10.
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.
toInt
in class ModulusValidator<ISBN10>
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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |