@Override public <T> Set<ConstraintViolation<T>> validateReturnValue(T object, Method method, Object returnValue, Class<?>... groups) { Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() ); Contracts.assertNotNull( method, MESSAGES.validatedMethodMustNotBeNull() ); return validateReturnValue( object, (Executable) method, returnValue, groups ); }
@Override 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( validationContext, valueContext, validationOrder ); }
@Override public <T> Set<ConstraintViolation<T>> validateReturnValue(T object, Method method, Object returnValue, Class<?>... groups) { Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() ); Contracts.assertNotNull( method, MESSAGES.validatedMethodMustNotBeNull() ); return validateReturnValue( object, ExecutableElement.forMethod( method ), returnValue, groups ); }
@Override public <T> Set<ConstraintViolation<T>> validateParameters(T object, Method method, Object[] parameterValues, Class<?>... groups) { Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() ); Contracts.assertNotNull( method, MESSAGES.validatedMethodMustNotBeNull() ); Contracts.assertNotNull( parameterValues, MESSAGES.validatedParameterArrayMustNotBeNull() ); return validateParameters( object, (Executable) method, parameterValues, groups ); }
@Override public <T> Set<ConstraintViolation<T>> validateParameters(T object, Method method, Object[] parameterValues, Class<?>... groups) { Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() ); Contracts.assertNotNull( method, MESSAGES.validatedMethodMustNotBeNull() ); Contracts.assertNotNull( parameterValues, MESSAGES.validatedParameterArrayMustNotBeNull() ); return validateParameters( object, ExecutableElement.forMethod( method ), parameterValues, groups ); }
@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 ); if ( !beanMetaDataManager.isConstrained( context.getRootBeanClass() ) ) { return Collections.emptySet(); } return validatePropertyInContext( context, PathImpl.createPathFromString( propertyName ), validationOrder ); }
@Override public final <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) { Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() ); sanityCheckGroups( groups ); ValidationContext<T> validationContext = getValidationContextBuilder().forValidate( object ); if ( !validationContext.getRootBeanMetaData().hasConstraints() ) { return Collections.emptySet(); } ValidationOrder validationOrder = determineGroupValidationOrder( groups ); ValueContext<?, Object> valueContext = ValueContext.getLocalExecutionContext( validatorScopedContext.getParameterNameProvider(), object, validationContext.getRootBeanMetaData(), PathImpl.createRootPath() ); return validateInContext( validationContext, valueContext, validationOrder ); }
@Override public final <T> Set<ConstraintViolation<T>> validateProperty(T object, String propertyName, Class<?>... groups) { Contracts.assertNotNull( object, MESSAGES.validatedObjectMustNotBeNull() ); sanityCheckPropertyPath( propertyName ); sanityCheckGroups( groups ); ValidationContext<T> validationContext = getValidationContextBuilder().forValidateProperty( object ); if ( !validationContext.getRootBeanMetaData().hasConstraints() ) { return Collections.emptySet(); } PathImpl propertyPath = PathImpl.createPathFromString( propertyName ); ValueContext<?, Object> valueContext = getValueContextForPropertyValidation( validationContext, propertyPath ); if ( valueContext.getCurrentBean() == null ) { throw LOG.getUnableToReachPropertyToValidateException( validationContext.getRootBean(), propertyPath ); } ValidationOrder validationOrder = determineGroupValidationOrder( groups ); return validateInContext( validationContext, valueContext, validationOrder ); }