2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\Validator ;
use Doctrine\Common\Annotations\Reader ;
use Symfony\Component\PropertyAccess\PropertyAccessorInterface ;
use Symfony\Component\Translation\TranslatorInterface ;
use Symfony\Component\Validator\Mapping\Cache\CacheInterface ;
/**
* A configurable builder for ValidatorInterface objects .
*
* @ author Bernhard Schussek < bschussek @ gmail . com >
*/
interface ValidatorBuilderInterface
{
/**
* Adds an object initializer to the validator .
*
* @ param ObjectInitializerInterface $initializer The initializer
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addObjectInitializer ( ObjectInitializerInterface $initializer );
/**
* Adds a list of object initializers to the validator .
*
* @ param array $initializers The initializer
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addObjectInitializers ( array $initializers );
/**
* Adds an XML constraint mapping file to the validator .
*
* @ param string $path The path to the mapping file
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addXmlMapping ( $path );
/**
* Adds a list of XML constraint mapping files to the validator .
*
* @ param array $paths The paths to the mapping files
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addXmlMappings ( array $paths );
/**
* Adds a YAML constraint mapping file to the validator .
*
* @ param string $path The path to the mapping file
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addYamlMapping ( $path );
/**
* Adds a list of YAML constraint mappings file to the validator .
*
* @ param array $paths The paths to the mapping files
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addYamlMappings ( array $paths );
/**
* Enables constraint mapping using the given static method .
*
* @ param string $methodName The name of the method
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addMethodMapping ( $methodName );
/**
* Enables constraint mapping using the given static methods .
*
* @ param array $methodNames The names of the methods
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function addMethodMappings ( array $methodNames );
/**
* Enables annotation based constraint mapping .
*
* @ param Reader $annotationReader The annotation reader to be used
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function enableAnnotationMapping ( Reader $annotationReader = null );
/**
* Disables annotation based constraint mapping .
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function disableAnnotationMapping ();
/**
* Sets the class metadata factory used by the validator .
*
* @ param MetadataFactoryInterface $metadataFactory The metadata factory
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setMetadataFactory ( MetadataFactoryInterface $metadataFactory );
/**
* Sets the cache for caching class metadata .
*
* @ param CacheInterface $cache The cache instance
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setMetadataCache ( CacheInterface $cache );
/**
* Sets the constraint validator factory used by the validator .
*
* @ param ConstraintValidatorFactoryInterface $validatorFactory The validator factory
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setConstraintValidatorFactory ( ConstraintValidatorFactoryInterface $validatorFactory );
/**
* Sets the translator used for translating violation messages .
*
* @ param TranslatorInterface $translator The translator instance
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setTranslator ( TranslatorInterface $translator );
/**
* Sets the default translation domain of violation messages .
*
* The same message can have different translations in different domains .
* Pass the domain that is used for violation messages by default to this
* method .
*
* @ param string $translationDomain The translation domain of the violation messages
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setTranslationDomain ( $translationDomain );
/**
* Sets the property accessor for resolving property paths .
*
* @ param PropertyAccessorInterface $propertyAccessor The property accessor
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*
* @ deprecated since version 2.5 , to be removed in 3.0 .
*/
public function setPropertyAccessor ( PropertyAccessorInterface $propertyAccessor );
/**
* Sets the API version that the returned validator should support .
*
* @ param int $apiVersion The required API version
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*
* @ see Validation :: API_VERSION_2_5
* @ see Validation :: API_VERSION_2_5_BC
* @ deprecated since version 2.7 , to be removed in 3.0 .
*/
public function setApiVersion ( $apiVersion );
/**
* Builds and returns a new validator object .
*
2017-02-02 16:28:38 -08:00
* @ return ValidatorInterface The built validator
2015-08-17 17:00:26 -07:00
*/
public function getValidator ();
}