/*
 * Hibernate Validator, declare and validate application constraints
 *
 * License: Apache License, Version 2.0
 * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
 */
package org.hibernate.validator.spi.cfg;

import org.hibernate.validator.cfg.ConstraintMapping;

Implementations contribute ConstraintMappings to validator factory.

A constraint mapping contributor can be configured in META-INF/validation.xml, using the property HibernateValidatorConfiguration.CONSTRAINT_MAPPING_CONTRIBUTORS, thus allowing to set up constraints to be validated by default validators dynamically via the API for programmatic constraint declaration.

Implementations must have a no-args constructor.

One or more mappings can be added as shown in the following:


public static class MyConstraintMappingContributor implements ConstraintMappingContributor {
    public void createConstraintMappings(ConstraintMappingBuilder builder) {
        builder.addConstraintMapping()
            .type( Marathon.class )
                .property( "name", METHOD )
                    .constraint( new NotNullDef() )
                .property( "numberOfHelpers", FIELD )
                    .constraint( new MinDef().value( 1 ) );
        builder.addConstraintMapping()
            .type( Runner.class )
                .property( "paidEntryFee", FIELD )
                    .constraint( new AssertTrueDef() );
    }
 }
 

Author:Gunnar Morling
See Also:
/** * Implementations contribute {@link ConstraintMapping}s to validator factory. * <p> * A constraint mapping contributor can be configured in {@code META-INF/validation.xml}, using the property * {@link org.hibernate.validator.HibernateValidatorConfiguration#CONSTRAINT_MAPPING_CONTRIBUTORS}, thus allowing to set * up constraints to be validated by default validators dynamically via the API for programmatic constraint declaration. * <p> * Implementations must have a no-args constructor. * <p> * One or more mappings can be added as shown in the following: * * <pre> * {@code * public static class MyConstraintMappingContributor implements ConstraintMappingContributor { * * public void createConstraintMappings(ConstraintMappingBuilder builder) { * builder.addConstraintMapping() * .type( Marathon.class ) * .property( "name", METHOD ) * .constraint( new NotNullDef() ) * .property( "numberOfHelpers", FIELD ) * .constraint( new MinDef().value( 1 ) ); * * builder.addConstraintMapping() * .type( Runner.class ) * .property( "paidEntryFee", FIELD ) * .constraint( new AssertTrueDef() ); * } * } * } * </pre> * <p> * @see org.hibernate.validator.HibernateValidatorConfiguration#CONSTRAINT_MAPPING_CONTRIBUTORS * @author Gunnar Morling */
public interface ConstraintMappingContributor {
Callback invoked during validator factory creation. Any constraint mapping configured via the passed builder will be added to the mappings of the factory.
Params:
  • builder – A builder for adding one or more constraint mappings
/** * Callback invoked during validator factory creation. Any constraint mapping configured via the passed builder * will be added to the mappings of the factory. * * @param builder A builder for adding one or more constraint mappings */
void createConstraintMappings(ConstraintMappingBuilder builder);
A builder for adding constraint mappings.
/** * A builder for adding constraint mappings. */
interface ConstraintMappingBuilder {
Adds a new constraint mapping.
Returns:The constraint mapping for further configuration via the fluent API.
/** * Adds a new constraint mapping. * * @return The constraint mapping for further configuration via the fluent API. */
ConstraintMapping addConstraintMapping(); } }