/**
  * Validate length of the raw number
  *
  * Delimiters and spaces are ignored.
  *
  * @param  AccountNumber $number
  * @return null
  * @throws InvalidStructureException If length is invalid
  */
 public function validate(AccountNumber $number)
 {
     $len = strlen(str_replace([' ', ',', '-'], '', $number->getRawNumber()));
     $len -= strlen($number->getClearingCheckDigit());
     if ($len > $this->maxLength) {
         throw new InvalidStructureException("Invalid raw length for {$number->getRawNumber()}, expected: " . $this->maxLength);
     }
 }
 /**
  * Validate clearing number check digit
  *
  * If no clearing check digit exists number is considered valid.
  *
  * @param  AccountNumber $number
  * @return null
  * @throws InvalidCheckDigitException If check digit is not valid
  */
 public function validate(AccountNumber $number)
 {
     if ($checkDigit = $number->getClearingCheckDigit()) {
         if (!$this->checksum->isValid($number->getClearingNumber() . $checkDigit)) {
             throw new InvalidCheckDigitException("Invalid clearing number check digit in {$number}");
         }
     }
 }