diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Component/Validator/ExecutionContext.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Component/Validator/ExecutionContext.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,139 @@ + + * + * 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; + +/** + * The central object representing a single validation process. + * + * This object is used by the GraphWalker to initialize validation of different + * items and keep track of the violations. + * + * @author Fabien Potencier + * @author Bernhard Schussek + * + * @api + */ +class ExecutionContext +{ + protected $root; + protected $propertyPath; + protected $class; + protected $property; + protected $group; + protected $violations; + protected $graphWalker; + protected $metadataFactory; + + public function __construct( + $root, + GraphWalker $graphWalker, + ClassMetadataFactoryInterface $metadataFactory + ) + { + $this->root = $root; + $this->graphWalker = $graphWalker; + $this->metadataFactory = $metadataFactory; + $this->violations = new ConstraintViolationList(); + } + + public function __clone() + { + $this->violations = clone $this->violations; + } + + /** + * @api + */ + public function addViolation($message, array $params, $invalidValue) + { + $this->violations->add(new ConstraintViolation( + $message, + $params, + $this->root, + $this->propertyPath, + $invalidValue + )); + } + + /** + * @return ConstraintViolationList + * + * @api + */ + public function getViolations() + { + return $this->violations; + } + + public function getRoot() + { + return $this->root; + } + + public function setPropertyPath($propertyPath) + { + $this->propertyPath = $propertyPath; + } + + public function getPropertyPath() + { + return $this->propertyPath; + } + + public function setCurrentClass($class) + { + $this->class = $class; + } + + public function getCurrentClass() + { + return $this->class; + } + + public function setCurrentProperty($property) + { + $this->property = $property; + } + + public function getCurrentProperty() + { + return $this->property; + } + + public function setGroup($group) + { + $this->group = $group; + } + + public function getGroup() + { + return $this->group; + } + + /** + * @return GraphWalker + */ + public function getGraphWalker() + { + return $this->graphWalker; + } + + /** + * @return ClassMetadataFactoryInterface + */ + public function getMetadataFactory() + { + return $this->metadataFactory; + } +}