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