javax.validation.ValidatorFactory Maven / Gradle / Ivy
// $Id: ValidatorFactory.java 17620 2009-10-04 19:19:28Z hardy.ferentschik $
/*
* JBoss, Home of Professional Open Source
* Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package javax.validation;
/**
* Factory returning initialized Validator
instances.
* Implementations are thread-safe
* This object is typically cached and reused.
*
* @author Emmanuel Bernard
*/
public interface ValidatorFactory {
/**
* Returns an initialized Validator
instance using the
* factory defaults for message interpolator, traversable resolver
* and constraint validator factory.
*
* Validator instances can be pooled and shared by the implementation.
*
* @return an initialized Validator
instance
*/
Validator getValidator();
/**
* Defines a new validator context and return a Validator
* compliant this new context.
*
* @return a ValidatorContext
.
*/
ValidatorContext usingContext();
/**
* Returns the MessageInterpolator
instance configured at
* initialization time for the ValidatorFactory.
* This is the instance used by #getValidator().
*
* @return MessageInterpolator instance.
*/
MessageInterpolator getMessageInterpolator();
/**
* Returns the TraversableResolver
instance configured
* at initialization time for the ValidatorFactory.
* This is the instance used by #getValidator().
*
* @return TraversableResolver instance.
*/
TraversableResolver getTraversableResolver();
/**
* Returns the ConstraintValidatorFactory
instance
* configured at initialization time for the
* ValidatorFactory.
* This is the instance used by #getValidator().
*
* @return ConstraintValidatorFactory instance.
*/
ConstraintValidatorFactory getConstraintValidatorFactory();
/**
* Return an instance of the specified type allowing access to
* provider-specific APIs. If the Bean Validation provider
* implementation does not support the specified class,
* ValidationException,
is thrown.
*
* @param type the class of the object to be returned.
*
* @return an instance of the specified class.
*
* @throws ValidationException if the provider does not
* support the call.
*/
public T unwrap(Class type);
}