private <U> boolean validateConstraintsForSingleDefaultGroupElement(ValidationContext<?> validationContext, ValueContext<U, Object> valueContext, final Map<Class<?>, Class<?>> validatedInterfaces, Class<? super U> clazz, Set<MetaConstraint<?>> metaConstraints, Group defaultSequenceMember) { boolean validationSuccessful = true; valueContext.setCurrentGroup( defaultSequenceMember.getDefiningClass() ); for ( MetaConstraint<?> metaConstraint : metaConstraints ) { // HV-466, an interface implemented more than one time in the hierarchy has to be validated only one // time. An interface can define more than one constraint, we have to check the class we are validating. final Class<?> declaringClass = metaConstraint.getLocation().getDeclaringClass(); if ( declaringClass.isInterface() ) { Class<?> validatedForClass = validatedInterfaces.get( declaringClass ); if ( validatedForClass != null && !validatedForClass.equals( clazz ) ) { continue; } validatedInterfaces.put( declaringClass, clazz ); } boolean tmp = validateMetaConstraint( validationContext, valueContext, valueContext.getCurrentBean(), metaConstraint ); if ( shouldFailFast( validationContext ) ) { return false; } validationSuccessful = validationSuccessful && tmp; } return validationSuccessful; }
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedContainerElementsForCurrentGroup( value, validationContext, valueContext, cascadingMetaData.getContainerElementTypesCascadingMetaData() ); valueContext.setCurrentGroup( group.getDefiningClass() );
final Map<Class<?>, Class<?>> validatedInterfaces, Class<? super U> clazz, Set<MetaConstraint<?>> metaConstraints, Group groupClass) { valueContext.setCurrentGroup( groupClass.getDefiningClass() ); boolean validationSuccessful = true;
private <U> boolean validateConstraintsForSingleDefaultGroupElement(ValidationContext<?> validationContext, ValueContext<U, Object> valueContext, final Map<Class<?>, Class<?>> validatedInterfaces, Class<? super U> clazz, Set<MetaConstraint<?>> metaConstraints, Group defaultSequenceMember) { boolean validationSuccessful = true; valueContext.setCurrentGroup( defaultSequenceMember.getDefiningClass() ); PathImpl currentPath = valueContext.getPropertyPath(); for ( MetaConstraint<?> metaConstraint : metaConstraints ) { // HV-466, an interface implemented more than one time in the hierarchy has to be validated only one // time. An interface can define more than one constraint, we have to check the class we are validating. final Class<?> declaringClass = metaConstraint.getLocation().getDeclaringClass(); if ( declaringClass.isInterface() ) { Class<?> validatedForClass = validatedInterfaces.get( declaringClass ); if ( validatedForClass != null && !validatedForClass.equals( clazz ) ) { continue; } validatedInterfaces.put( declaringClass, clazz ); } boolean tmp = validateConstraint( validationContext, valueContext, false, metaConstraint ); if ( shouldFailFast( validationContext ) ) { return false; } validationSuccessful = validationSuccessful && tmp; // reset property path valueContext.setPropertyPath( currentPath ); } return validationSuccessful; }
private <T> ValueContext<T, Object> getExecutableValueContext(T object, ExecutableMetaData executableMetaData, Class<?> group) { ValueContext<T, Object> valueContext; if ( object != null ) { valueContext = ValueContext.getLocalExecutionContext( object, null, PathImpl.createPathForExecutable( executableMetaData ) ); } else { valueContext = ValueContext.getLocalExecutionContext( (Class<T>) null, //the type is not required in this case (only for cascaded validation) null, PathImpl.createPathForExecutable( executableMetaData ) ); } valueContext.setCurrentGroup( group ); return valueContext; }
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validateConstraintsForCurrentGroup( validationContext, valueContext ); if ( shouldFailFast( validationContext ) ) { int numberOfConstraintViolationsBefore = validationContext.getFailingConstraints().size(); for ( Group group : groupOfGroups ) { valueContext.setCurrentGroup( group.getDefiningClass() ); validateConstraintsForCurrentGroup( validationContext, valueContext ); if ( shouldFailFast( validationContext ) ) {
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, cascadingValueContext ); if ( shouldFailFast( validationContext ) ) { cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, cascadingValueContext );
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validatePropertyForCurrentGroup( context, valueContext, metaConstraints, typeUseConstraints ); if ( shouldFailFast( context ) ) { valueContext.setCurrentGroup( group.getDefiningClass() ); numberOfConstraintViolations += validatePropertyForCurrentGroup( context, valueContext, metaConstraints, typeUseConstraints
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validatePropertyForCurrentGroup( context, valueContext, metaConstraints, typeArgumentConstraints ); if ( shouldFailFast( context ) ) { int numberOfConstraintViolations = 0; for ( Group group : groupOfGroups ) { valueContext.setCurrentGroup( group.getDefiningClass() ); numberOfConstraintViolations += validatePropertyForCurrentGroup( context, valueContext, metaConstraints, typeArgumentConstraints
private <T> ValueContext<T, Object> getExecutableValueContext(T object, ExecutableMetaData executableMetaData, Validatable validatable, Class<?> group) { ValueContext<T, Object> valueContext; if ( object != null ) { valueContext = ValueContext.getLocalExecutionContext( beanMetaDataManager, validatorScopedContext.getParameterNameProvider(), object, validatable, PathImpl.createPathForExecutable( executableMetaData ) ); } else { valueContext = ValueContext.getLocalExecutionContext( beanMetaDataManager, validatorScopedContext.getParameterNameProvider(), (Class<T>) null, //the type is not required in this case (only for cascaded validation) validatable, PathImpl.createPathForExecutable( executableMetaData ) ); } valueContext.setCurrentGroup( group ); return valueContext; }
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validateConstraintsForCurrentGroup( validationContext, valueContext ); if ( shouldFailFast( validationContext ) ) { while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, valueContext ); if ( shouldFailFast( validationContext ) ) { valueContext.setCurrentGroup( group.getDefiningClass() );
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validateConstraintsForCurrentGroup( context, valueContext ); if ( shouldFailFast( context ) ) { while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); valueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( context, valueContext ); if ( shouldFailFast( context ) ) { valueContext.setCurrentGroup( group.getDefiningClass() );
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( context, cascadingValueContext ); if ( shouldFailFast( context ) ) { cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( context, cascadingValueContext );
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, cascadingValueContext ); if ( shouldFailFast( validationContext ) ) { cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, cascadingValueContext );
while ( groupIterator.hasNext() ) { Group group = groupIterator.next(); cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, cascadingValueContext ); if ( shouldFailFast( validationContext ) ) { cascadingValueContext.setCurrentGroup( group.getDefiningClass() ); validateCascadedConstraints( validationContext, cascadingValueContext );
valueContext.appendNode( cascadable ); Class<?> group = cascadable.convertGroup( originalGroup ); valueContext.setCurrentGroup( group ); valueContext.setCurrentGroup( originalGroup );