Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / validator / Constraints / ExpressionValidator.php
index 8cc289bb6b819cd9417973b69844c69094c0258a..e2f3139af73b85652904c5ea7bb53d85c26e38c2 100644 (file)
 namespace Symfony\Component\Validator\Constraints;
 
 use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-use Symfony\Component\PropertyAccess\PropertyAccess;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\PropertyAccess\PropertyPath;
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
 use Symfony\Component\Validator\Exception\RuntimeException;
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
@@ -27,19 +23,13 @@ use Symfony\Component\Validator\Exception\UnexpectedTypeException;
  */
 class ExpressionValidator extends ConstraintValidator
 {
-    /**
-     * @var PropertyAccessorInterface
-     */
-    private $propertyAccessor;
-
     /**
      * @var ExpressionLanguage
      */
     private $expressionLanguage;
 
-    public function __construct(PropertyAccessorInterface $propertyAccessor = null, ExpressionLanguage $expressionLanguage = null)
+    public function __construct($propertyAccessor = null, ExpressionLanguage $expressionLanguage = null)
     {
-        $this->propertyAccessor = $propertyAccessor;
         $this->expressionLanguage = $expressionLanguage;
     }
 
@@ -53,41 +43,14 @@ class ExpressionValidator extends ConstraintValidator
         }
 
         $variables = array();
-
-        // Symfony 2.5+
-        if ($this->context instanceof ExecutionContextInterface) {
-            $variables['value'] = $value;
-            $variables['this'] = $this->context->getObject();
-        } elseif (null === $this->context->getPropertyName()) {
-            $variables['value'] = $value;
-            $variables['this'] = $value;
-        } else {
-            $root = $this->context->getRoot();
-            $variables['value'] = $value;
-
-            if (is_object($root)) {
-                // Extract the object that the property belongs to from the object
-                // graph
-                $path = new PropertyPath($this->context->getPropertyPath());
-                $parentPath = $path->getParent();
-                $variables['this'] = $parentPath ? $this->getPropertyAccessor()->getValue($root, $parentPath) : $root;
-            } else {
-                $variables['this'] = null;
-            }
-        }
+        $variables['value'] = $value;
+        $variables['this'] = $this->context->getObject();
 
         if (!$this->getExpressionLanguage()->evaluate($constraint->expression, $variables)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Expression::EXPRESSION_FAILED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Expression::EXPRESSION_FAILED_ERROR)
-                    ->addViolation();
-            }
+            $this->context->buildViolation($constraint->message)
+                ->setParameter('{{ value }}', $this->formatValue($value))
+                ->setCode(Expression::EXPRESSION_FAILED_ERROR)
+                ->addViolation();
         }
     }
 
@@ -102,16 +65,4 @@ class ExpressionValidator extends ConstraintValidator
 
         return $this->expressionLanguage;
     }
-
-    private function getPropertyAccessor()
-    {
-        if (null === $this->propertyAccessor) {
-            if (!class_exists('Symfony\Component\PropertyAccess\PropertyAccess')) {
-                throw new RuntimeException('Unable to use expressions as the Symfony PropertyAccess component is not installed.');
-            }
-            $this->propertyAccessor = PropertyAccess::createPropertyAccessor();
-        }
-
-        return $this->propertyAccessor;
-    }
 }