blob: 6b832a23ae3500aa104d2a2362ef2cacfcd86991 [file] [log] [blame]
package org.apache.wicket.bean.validation;
import java.util.function.Supplier;
import jakarta.validation.Configuration;
import jakarta.validation.MessageInterpolator;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
/**
* This is the default validator provider. It creates a validator instance with the default message
* interpolator wrapped inside a {@link SessionLocaleInterpolator} so it is aware of Wicket's
* locale. Only one instance of the {@link Validator} is created.
*
* @author igor
*
*/
public class DefaultValidatorProvider implements Supplier<Validator>
{
private Validator validator;
@Override
public Validator get()
{
if (validator == null)
{
Configuration<?> config = Validation.byDefaultProvider().configure();
MessageInterpolator interpolator = config.getDefaultMessageInterpolator();
interpolator = new SessionLocaleInterpolator(interpolator);
ValidatorFactory factory = config.messageInterpolator(interpolator)
.buildValidatorFactory();
validator = factory.getValidator();
}
return validator;
}
}