private void getAndInvokeValidatorList(ValidatorContext ctx, Object key) {
   List<Validator> validatorList = _cache.get(key);
   if (validatorList == null) {
     // this means schema or field to be validated has not been cached.
     ctx.addResult(
         new Message(
             ctx.dataElement().path(),
             "validation skipped, %1$s have not been initialized for use by %2$s",
             key,
             getClass().getSimpleName()));
   } else if (validatorList != NO_VALIDATORS) {
     for (Validator validator : validatorList) {
       if (_debugMode) {
         ctx.addResult(
             new Message(ctx.dataElement().path(), false, "validating with %1$s", validator));
       }
       validator.validate(ctx);
     }
   }
 }