@Override
public final <T> Set<ConstraintViolation<T>> validateProperty(T object, String propertyName, Class<?>... groups) {
Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() );
sanityCheckPropertyPath( propertyName );
ValidationOrder validationOrder = determineGroupValidationOrder( groups );
ValidationContext<T> context = getValidationContext().forValidateProperty( object );
return validatePropertyInContext(
context,
PathImpl.createPathFromString( propertyName ),