1<?php
2
3namespace Drupal\Core\TypedData\Validation;
4
5use Drupal\Core\TypedData\TypedDataInterface;
6use Symfony\Component\Validator\Mapping\CascadingStrategy;
7use Symfony\Component\Validator\Mapping\MetadataInterface;
8use Symfony\Component\Validator\Mapping\TraversalStrategy;
9
10/**
11 * Validator metadata for typed data objects.
12 *
13 * @see \Drupal\Core\TypedData\Validation\RecursiveValidator::getMetadataFor()
14 */
15class TypedDataMetadata implements MetadataInterface {
16
17  /**
18   * The typed data object the metadata is about.
19   *
20   * @var \Drupal\Core\TypedData\TypedDataInterface
21   */
22  protected $typedData;
23
24  /**
25   * Constructs the object.
26   *
27   * @param \Drupal\Core\TypedData\TypedDataInterface $typed_data
28   *   The typed data object the metadata is about.
29   */
30  public function __construct(TypedDataInterface $typed_data) {
31    $this->typedData = $typed_data;
32  }
33
34  /**
35   * {@inheritdoc}
36   */
37  public function findConstraints($group) {
38    return $this->getConstraints();
39  }
40
41  /**
42   * {@inheritdoc}
43   */
44  public function getConstraints() {
45    return $this->typedData->getConstraints();
46  }
47
48  /**
49   * {@inheritdoc}
50   */
51  public function getTraversalStrategy() {
52    return TraversalStrategy::NONE;
53  }
54
55  /**
56   * {@inheritdoc}
57   */
58  public function getCascadingStrategy() {
59    // By default, never cascade into validating referenced data structures.
60    return CascadingStrategy::NONE;
61  }
62
63}
64