Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2011, Red Hat, Inc. and/or its affiliates, and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
  * http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.hibernate.validator.internal.constraintvalidators;
 
 import java.util.List;
 
Mod check validator for MOD10 and MOD11 algorithms http://en.wikipedia.org/wiki/Luhn_algorithm http://en.wikipedia.org/wiki/Check_digit

Author(s):
George Gastaldi
Hardy Ferentschik
 
 public class ModCheckValidator implements ConstraintValidator<ModCheckCharSequence> {
 
 	private static final Log log = LoggerFactory.make();
 
 	private static final String NUMBERS_ONLY_REGEXP = "[^0-9]";
 	private static final int DEC_RADIX = 10;

Multiplier used by the mod algorithms
 
 	private int multiplier;

The start index for the checksum calculation
 
 	private int startIndex;

The end index for the checksum calculation
 
 	private int endIndex;

The index of the checksum digit
 
 	private int checkDigitIndex;

The type of checksum algorithm
 
 	private ModType modType;
 
 	private boolean ignoreNonDigitCharacters;
 
 	public void initialize(ModCheck constraintAnnotation) {
 		this. = constraintAnnotation.modType();
 		this. = constraintAnnotation.multiplier();
 		this. = constraintAnnotation.startIndex();
 		this. = constraintAnnotation.endIndex();
 		this. = constraintAnnotation.checkDigitPosition();
 		this. = constraintAnnotation.ignoreNonDigitCharacters();
 
 		if ( this. < 0 ) {
 		}
 
 		if ( this. < 0 ) {
 		}
 
 		if ( this. > this. ) {
 		}
 
 		if (  > 0 &&  <=  &&  >  ) {
 		}
 	}
 
 	public boolean isValid(final CharSequence valuefinal ConstraintValidatorContext context) {
 		if ( value == null ) {
			return true;
		}
		String valueAsString = value.toString();
			valueAsString = valueAsString.replaceAll"" );
		}
		try {
			valueAsString = extractVerificationStringvalueAsString );
		}
		catch ( IndexOutOfBoundsException e ) {
			return false;
		}
		List<Integerdigits;
		try {
			digits = extractDigitsvalueAsString );
		}
		catch ( NumberFormatException e ) {
			return false;
		}
		boolean isValid;
		if ( .equals. ) ) {
			isValid = ModUtil.passesMod10Testdigits );
		}
		else {
			isValid = ModUtil.passesMod11Testdigits );
		}
		return isValid;
	}
		// the whole string should be verified (check digit is implicit)
		if (  == . ) {
			return value;
		}
		String verificationString = value.substring );
		// append the check digit of explicitly specified
		if (  > 0 ) {
			verificationString = verificationString + value.charAt );
		}
		return verificationString;
	}

Parses the java.lang.String value as a java.util.List of java.lang.Integer objects

Parameters:
value the input string to be parsed
Returns:
List of Integer objects.
Throws:
java.lang.NumberFormatException in case ant of the characters is not a digit
	private List<IntegerextractDigits(final String valuethrows NumberFormatException {
		List<Integerdigits = new ArrayList<Integer>( value.length() );
		char[] chars = value.toCharArray();
		for ( char c : chars ) {
			if ( Character.isDigitc ) ) {
				digits.add( Character.digitc ) );
			}
			else {
			}
		}
		return digits;
	}
New to GrepCode? Check out our FAQ X