* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator; use Symfony\Component\Validator\Mapping\ClassMetadataFactoryInterface; use Symfony\Component\Validator\Mapping\Cache\CacheInterface; use Doctrine\Common\Annotations\Reader; /** * A configurable builder for ValidatorInterface objects. * * @author Bernhard Schussek */ interface ValidatorBuilderInterface { /** * Adds an object initializer to the validator. * * @param ObjectInitializerInterface $initializer The initializer. */ public function addObjectInitializer(ObjectInitializerInterface $initializer); /** * Adds a list of object initializers to the validator. * * @param array $initializers The initializer. */ public function addObjectInitializers(array $initializers); /** * Adds an XML constraint mapping file to the validator. * * @param string $path The path to the mapping file. */ public function addXmlMapping($path); /** * Adds a list of XML constraint mapping files to the validator. * * @param array $paths The paths to the mapping files. */ public function addXmlMappings(array $paths); /** * Adds a YAML constraint mapping file to the validator. * * @param string $path The path to the mapping file. */ public function addYamlMapping($path); /** * Adds a list of YAML constraint mappings file to the validator. * * @param array $paths The paths to the mapping files. */ public function addYamlMappings(array $paths); /** * Enables constraint mapping using the given static method. * * @param string $methodName The name of the method. */ public function addMethodMapping($methodName); /** * Enables constraint mapping using the given static methods. * * @param array $methodNames The names of the methods. */ public function addMethodMappings(array $methodNames); /** * Enables annotation based constraint mapping. * * @param Reader $annotationReader The annotation reader to be used. */ public function enableAnnotationMapping(Reader $annotationReader = null); /** * Disables annotation based constraint mapping. */ public function disableAnnotationMapping(); /** * Sets the class metadata factory used by the validator. * * @param ClassMetadataFactoryInterface $metadataFactory The metadata factory. */ public function setMetadataFactory(ClassMetadataFactoryInterface $metadataFactory); /** * Sets the cache for caching class metadata. * * @param CacheInterface $cache The cache instance. */ public function setMetadataCache(CacheInterface $cache); /** * Sets the constraint validator factory used by the validator. * * @param ConstraintValidatorFactoryInterface $validatorFactory The validator factory. */ public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterface $validatorFactory); /** * Builds and returns a new validator object. * * @return ValidatorInterface The built validator. */ public function getValidator(); }