/** * Validate an object. * * @param object the object to be validated. * @throws RaveException if validation fails. */ public void validate(Object object) throws RaveException { Class<?> clazz = object.getClass(); Validated validated = clazz.getAnnotation(Validated.class); BaseValidator validator; synchronized (this) { if (validated == null && !unannotatedModelValidator.hasSeen(clazz)) { unannotatedModelValidator.processNonAnnotatedClasses(clazz); } validator = classValidatorMap.get(clazz); if (validator == null) { validator = getValidatorInstance(clazz); } if (validator == null) { throw new UnsupportedObjectException(Collections.singletonList( new RaveError(clazz, "", RaveErrorStrings.CLASS_NOT_SUPPORTED_ERROR))); } } validator.validate(object); }