org.apache.bval.extras.constraints.checkdigit
Class SedolValidator

java.lang.Object
  extended by org.apache.bval.extras.constraints.checkdigit.ModulusValidator<Sedol>
      extended by org.apache.bval.extras.constraints.checkdigit.SedolValidator
All Implemented Interfaces:
ConstraintValidator<Sedol,String>

public final class SedolValidator
extends ModulusValidator<Sedol>

Modulus 10 SEDOL (UK Securities) Check Digit calculation/validation.

SEDOL Numbers are 7 character alphanumeric codes used to identify UK Securities (SEDOL stands for Stock Exchange Daily Official List).

Check digit calculation is based on modulus 10 with digits being weighted based on their position, from left to right, as follows:


      position:  1  2  3  4  5  6  7
     weighting:  1  3  1  7  3  9  1
 

See Wikipedia - SEDOL for more details.


Constructor Summary
SedolValidator()
           
 
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 character 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

SedolValidator

public SedolValidator()
Method Detail

weightedValue

protected int weightedValue(int charValue,
                            int leftPos,
                            int rightPos)
                     throws Exception
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.

Specified by:
weightedValue in class ModulusValidator<Sedol>
Parameters:
charValue - The numeric value of the character
leftPos - The position of the character in the code, counting from left to right
rightPos - The position of the character in the code, counting from right to left
Returns:
The weighted value of the character
Throws:
Exception

toInt

protected int toInt(char character,
                    int leftPos,
                    int rightPos)
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.

Overrides:
toInt in class ModulusValidator<Sedol>
Parameters:
character - The character to convert
leftPos - The position of the character in the code, counting from left to right
rightPos - The positionof the character in the code, counting from right to left
Returns:
The integer value of the character


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