validator = $validator; $this->root = $root; $this->translator = $translator; $this->translationDomain = $translationDomain; $this->violations = new ConstraintViolationList(); } /** * {@inheritdoc} */ public function setNode($value, $object, MetadataInterface $metadata = NULL, $propertyPath) { $this->value = $value; $this->data = $object; $this->metadata = $metadata; $this->propertyPath = (string) $propertyPath; } /** * {@inheritdoc} */ public function setGroup($group) { $this->group = $group; } /** * {@inheritdoc} */ public function setConstraint(Constraint $constraint) { $this->constraint = $constraint; } /** * {@inheritdoc} */ public function addViolation($message, array $parameters = [], $invalidValue = NULL, $plural = NULL, $code = NULL) { // The parameters $invalidValue and following are ignored by the new // API, as they are not present in the new interface anymore. // You should use buildViolation() instead. if (func_num_args() > 2) { throw new \LogicException('Legacy validator API is unsupported.'); } $this->violations->add(new ConstraintViolation($this->translator->trans($message, $parameters, $this->translationDomain), $message, $parameters, $this->root, $this->propertyPath, $this->value, NULL, NULL, $this->constraint)); } /** * {@inheritdoc} */ public function buildViolation($message, array $parameters = []) { return new ConstraintViolationBuilder($this->violations, $this->constraint, $message, $parameters, $this->root, $this->propertyPath, $this->value, $this->translator, $this->translationDomain); } /** * {@inheritdoc} */ public function getViolations() { return $this->violations; } /** * {@inheritdoc} */ public function getValidator() { return $this->validator; } /** * {@inheritdoc} */ public function getRoot() { return $this->root; } /** * {@inheritdoc} */ public function getValue() { return $this->value; } /** * {@inheritdoc} */ public function getObject() { return $this->data; } /** * {@inheritdoc} */ public function getMetadata() { return $this->metadata; } /** * {@inheritdoc} */ public function getGroup() { return Constraint::DEFAULT_GROUP; } /** * {@inheritdoc} */ public function getClassName() { return get_class($this->data); } /** * {@inheritdoc} */ public function getPropertyName() { return $this->data->getName(); } /** * {@inheritdoc} */ public function getPropertyPath($sub_path = '') { return PropertyPath::append($this->propertyPath, $sub_path); } /** * {@inheritdoc} */ public function addViolationAt($subPath, $message, array $parameters = [], $invalidValue = NULL, $plural = NULL, $code = NULL) { throw new \LogicException('Legacy validator API is unsupported.'); } /** * {@inheritdoc} */ public function validate($value, $subPath = '', $groups = NULL, $traverse = FALSE, $deep = FALSE) { throw new \LogicException('Legacy validator API is unsupported.'); } /** * {@inheritdoc} */ public function markConstraintAsValidated($cache_key, $constraint_hash) { $this->validatedConstraints[$cache_key . ':' . $constraint_hash] = TRUE; } /** * {@inheritdoc} */ public function isConstraintValidated($cache_key, $constraint_hash) { return isset($this->validatedConstraints[$cache_key . ':' . $constraint_hash]); } /** * {@inheritdoc} */ public function validateValue($value, $constraints, $subPath = '', $groups = NULL) { throw new \LogicException('Legacy validator API is unsupported.'); } /** * {@inheritdoc} */ public function markGroupAsValidated($cache_key, $group_hash) { $this->validatedObjects[$cache_key][$group_hash] = TRUE; } /** * {@inheritdoc} */ public function isGroupValidated($cache_key, $group_hash) { return isset($this->validatedObjects[$cache_key][$group_hash]); } /** * {@inheritdoc} */ public function markObjectAsInitialized($cache_key) { // Not supported, so nothing todo. } /** * {@inheritdoc} */ public function isObjectInitialized($cache_key) { // Not supported, so nothing todo. } /** * {@inheritdoc} */ public function getMetadataFactory() { throw new \LogicException('Legacy validator API is unsupported.'); } }