code: 	public final <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) {
  		Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() );
  
  		if ( !beanMetaDataManager.isConstrained( object.getClass() ) ) {
  			return Collections.emptySet();
  		}
  
  		ValidationOrder validationOrder = determineGroupValidationOrder( groups );
  		ValidationContext<T> validationContext = getValidationContext().forValidate( object );
  
  		ValueContext<?, Object> valueContext = ValueContext.getLocalExecutionContext(
  				object,
  				beanMetaDataManager.getBeanMetaData( object.getClass() ),
  				PathImpl.createRootPath()
  		);
  
  		return validateInContext( valueContext, validationContext, validationOrder );
  	}
  
  	@Override
  