TypedDataMetadata.php 1.4 KB

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