/*
* Created on 24/giu/2010
*
* Copyright 2010 by Andrea Vacondio (andrea.vacondio@gmail.com).
*
* This file is part of the Sejda source code
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.sejda.core.validation;
import javax.validation.Configuration;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.sejda.core.context.DefaultSejdaContext;
/**
* Default implementation of {@link ValidationContext}
*
* @author Andrea Vacondio
*
*/
public final class DefaultValidationContext implements ValidationContext {
private Validator validator;
private DefaultValidationContext() {
Configuration<?> validationConfig = Validation.byDefaultProvider().configure();
if (new DefaultSejdaContext().isIgnoreXmlConfiguration()) {
validationConfig.ignoreXmlConfiguration();
}
ValidatorFactory factory = validationConfig.buildValidatorFactory();
validator = factory.getValidator();
}
public static ValidationContext getContext() {
return DefaultValidationContextHolder.VALIDATION_CONTEXT;
}
@Override
public Validator getValidator() {
return validator;
}
/**
* Lazy initialization holder class
*
* @author Andrea Vacondio
*
*/
private static final class DefaultValidationContextHolder {
private DefaultValidationContextHolder() {
// hide constructor
}
static final DefaultValidationContext VALIDATION_CONTEXT = new DefaultValidationContext();
}
}