Top Description Inners Fields Constructors Methods
org.hibernate.validator.internal.constraintvalidators.hv

public Class ISBNValidator

extends Object
implements ConstraintValidator<ISBN, CharSequence>
Class Inheritance
All Implemented Interfaces
jakarta.validation.ConstraintValidator
Imports
java.util.regex.Pattern, jakarta.validation.ConstraintValidator, .ConstraintValidatorContext, org.hibernate.validator.constraints.ISBN, org.hibernate.validator.internal.util.Contracts

Checks that a given character sequence (e.g. string) is a valid ISBN.
Author
Marko Bekhta

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static interface
private static enum

Field Summary

Modifier and TypeField and Description
private ISBNValidator.ISBNValidationAlgorithm
private static Pattern
NOT_DIGITS_OR_NOT_X

Pattern to replace all non ISBN characters.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
initialize(ISBN
annotation instance for a given constraint declaration
constraintAnnotation
)

Overrides default jakarta.validation.ConstraintValidator.initialize.

Initializes the validator in preparation for isValid(Object, ConstraintValidatorContext) calls.
public boolean
isValid(CharSequence
object to validate
isbn
,
ConstraintValidatorContext
context in which the constraint is evaluated
context
)

Implements jakarta.validation.ConstraintValidator.isValid.

Implements the validation logic.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

isbnValidationAlgorithmback to summary
private ISBNValidator.ISBNValidationAlgorithm isbnValidationAlgorithm
NOT_DIGITS_OR_NOT_Xback to summary
private static Pattern NOT_DIGITS_OR_NOT_X

Pattern to replace all non ISBN characters. ISBN can have digits or 'X'.

Constructor Detail

ISBNValidatorback to summary
public ISBNValidator()

Method Detail

initializeback to summary
public void initialize(ISBN constraintAnnotation)

Overrides default jakarta.validation.ConstraintValidator.initialize.

Doc from jakarta.validation.ConstraintValidator.initialize.

Initializes the validator in preparation for isValid(Object, ConstraintValidatorContext) calls. The constraint annotation for a given constraint declaration is passed.

This method is guaranteed to be called before any use of this instance for validation.

The default implementation is a no-op.

Parameters
constraintAnnotation:ISBN

annotation instance for a given constraint declaration

Annotations
@Override
isValidback to summary
public boolean isValid(CharSequence isbn, ConstraintValidatorContext context)

Implements jakarta.validation.ConstraintValidator.isValid.

Doc from jakarta.validation.ConstraintValidator.isValid.

Implements the validation logic. The state of value must not be altered.

This method can be accessed concurrently, thread-safety must be ensured by the implementation.

Parameters
isbn:CharSequence

object to validate

context:ConstraintValidatorContext

context in which the constraint is evaluated

Returns:boolean

false if value does not pass the constraint

Annotations
@Override
org.hibernate.validator.internal.constraintvalidators.hv back to summary

private Interface ISBNValidator.ISBNValidationAlgorithm

Known Direct Implementers
org.hibernate.validator.internal.constraintvalidators.hv.ISBNValidator.ISBNValidationAlgorithmImpl

Method Summary

Modifier and TypeMethod and Description
public static ISBNValidator.ISBNValidationAlgorithmImpl
from(ISBN.Type type)

public boolean
public boolean
isValidLength(int length)

Method Detail

fromback to summary
public static ISBNValidator.ISBNValidationAlgorithmImpl from(ISBN.Type type)
isValidChecksumback to summary
public boolean isValidChecksum(String isbn)
isValidLengthback to summary
public boolean isValidLength(int length)
org.hibernate.validator.internal.constraintvalidators.hv back to summary

private sealed Enum ISBNValidator.ISBNValidationAlgorithmImpl

extends Enum<ISBNValidator.ISBNValidationAlgorithmImpl>
implements ISBNValidationAlgorithm
Class Inheritance
All Implemented Interfaces
org.hibernate.validator.internal.constraintvalidators.hv.ISBNValidator.ISBNValidationAlgorithm

Field Summary

Modifier and TypeField and Description
public static final ISBNValidator.ISBNValidationAlgorithmImpl
public static final ISBNValidator.ISBNValidationAlgorithmImpl
public static final ISBNValidator.ISBNValidationAlgorithmImpl

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static boolean
checkChecksumISBN10(String isbn)

Check the digits for ISBN 10 using algorithm from Wikipedia.

private static boolean
checkChecksumISBN13(String isbn)

Check the digits for ISBN 13 using algorithm from Wikipedia.

public static ISBNValidator.ISBNValidationAlgorithmImpl
public static ISBNValidator.ISBNValidationAlgorithmImpl[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ANYback to summary
public static final ISBNValidator.ISBNValidationAlgorithmImpl ANY
ISBN_10back to summary
public static final ISBNValidator.ISBNValidationAlgorithmImpl ISBN_10
ISBN_13back to summary
public static final ISBNValidator.ISBNValidationAlgorithmImpl ISBN_13

Constructor Detail

ISBNValidationAlgorithmImplback to summary
private ISBNValidationAlgorithmImpl()

Method Detail

checkChecksumISBN10back to summary
private static boolean checkChecksumISBN10(String isbn)

Check the digits for ISBN 10 using algorithm from Wikipedia.

checkChecksumISBN13back to summary
private static boolean checkChecksumISBN13(String isbn)

Check the digits for ISBN 13 using algorithm from Wikipedia.

valueOfback to summary
public static ISBNValidator.ISBNValidationAlgorithmImpl valueOf(String name)
valuesback to summary
public static ISBNValidator.ISBNValidationAlgorithmImpl[] values()