org.apache.commons.validator.routines.checkdigit
Class ISBNCheckDigit

java.lang.Object
  extended by org.apache.commons.validator.routines.checkdigit.ISBNCheckDigit
All Implemented Interfaces:
Serializable, CheckDigit

public final class ISBNCheckDigit
extends Object
implements CheckDigit, Serializable

Combined ISBN-10 / ISBN-13 Check Digit calculation/validation.

This implementation validates/calculates ISBN check digits based on the length of the code passed to it - delegating either to the ISBN10 or the ISBN13 routines to perform the actual validation/calculation.

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 standard.

Since:
Validator 1.4
Version:
$Revision: 493905 $ $Date: 2007-01-08 03:11:38 +0100 (Mo, 08. Jan 2007) $
See Also:
Serialized Form

Field Summary
static CheckDigit ISBN
          Singleton combined ISBN-10 / ISBN-13 Check Digit instance
static CheckDigit ISBN10
          Singleton ISBN-10 Check Digit instance
static CheckDigit ISBN13
          Singleton ISBN-13 Check Digit instance
 
Constructor Summary
ISBNCheckDigit()
           
 
Method Summary
 String calculate(String code)
          Calculate an ISBN-10 or ISBN-13 check digit, depending on the length of the code.
 boolean isValid(String code)
          Validate an ISBN-10 or ISBN-13 check digit, depending on the length of the code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ISBN10

public static final CheckDigit ISBN10
Singleton ISBN-10 Check Digit instance


ISBN13

public static final CheckDigit ISBN13
Singleton ISBN-13 Check Digit instance


ISBN

public static final CheckDigit ISBN
Singleton combined ISBN-10 / ISBN-13 Check Digit instance

Constructor Detail

ISBNCheckDigit

public ISBNCheckDigit()
Method Detail

calculate

public String calculate(String code)
                 throws CheckDigitException
Calculate an ISBN-10 or ISBN-13 check digit, depending on the length of the code.

If the length of the code is 9, it is treated as an ISBN-10 code or if the length of the code is 12, it is treated as an ISBN-13 code.

Specified by:
calculate in interface CheckDigit
Parameters:
code - The ISBN code to validate (should have a length of 9 or 12)
Returns:
The ISBN-10 check digit if the length is 9 or an ISBN-13 check digit if the length is 12.
Throws:
CheckDigitException - if the code is missing, or an invalid length (i.e. not 9 or 12) or if there is an error calculating the check digit.

isValid

public boolean isValid(String code)

Validate an ISBN-10 or ISBN-13 check digit, depending on the length of the code.

If the length of the code is 10, it is treated as an ISBN-10 code or ff the length of the code is 13, it is treated as an ISBN-13 code.

Specified by:
isValid in interface CheckDigit
Parameters:
code - The ISBN code to validate (should have a length of 10 or 13)
Returns:
true if the code has a length of 10 and is a valid ISBN-10 check digit or the code has a length of 13 and is a valid ISBN-13 check digit - otherwise false.


Copyright © 2002-2010 Apache Software Foundation. All Rights Reserved.