code: @Override
      public PasswordStrengthCheckResult check(String userName, String password, List<PasswordRestriction> restictions) {
          try {
              this.userName = userName;
              this.password = password;
              this.passwordLength = this.password.length();
              this.adHocRestrictions = restictions;
              this.result = new SimplePasswordStrengthCheckResult();
  
              this.checkRestrictions();
              // positive checks
              result.positive(password.length() * PWD_LEN_WEIGHT);
              this.checkSymbols();
              this.checkDigits();
              this.checkMiddleNonChar();
              this.checkAlpha();
  
              // negatives checks
              this.checkAlphaOnly();
              this.checkNumbersOnly();
              this.checkConsecutiveAlpha();
              this.checkConsecutiveNumbers();
              this.checkConsecutiveSymbols();
              this.checkSequential();
  
              // now evaluate.
              this.result.calculateStrength();
          } finally {
              this.password = null;
              this.passwordLength = 0;
              this.adHocRestrictions = null;
          }
          return result;
      }
docs: /*
  (non-Javadoc)
  
  @see org.jboss.as.domain.management.security.password.PasswordStrengthChecker#check(java.lang.String, java.util.List)