@Override
public void handleMessage(Exchange exchange) throws ValidationFailureException {
Validator<?> validator = get(exchange);
if (validator != null) {
try {
ValidationResult result = applyValidator(exchange, validator);
if (!result.isValid()) {
String msg = RuntimeMessages.MESSAGES.validatorFailed(
validator.getClass().getName(),
validator.getType().getName(),
validator.getName().toString(),
result.getDetail());
throw new ValidationFailureException(validator, result, msg);
}
} catch (SwitchYardException e) {
String msg = RuntimeMessages.MESSAGES.validatorFailed(
validator.getClass().getName(),
validator.getType().getName(),
validator.getName().toString(),
e);
throw new ValidationFailureException(validator, e.getCause() != null ? e.getCause() : e, msg);
}
}
}