You are here

class ComplexDataDefinitionNormalizer in Schemata 8

Same name in this branch
  1. 8 schemata_json_schema/src/Normalizer/jsonapi/ComplexDataDefinitionNormalizer.php \Drupal\schemata_json_schema\Normalizer\jsonapi\ComplexDataDefinitionNormalizer
  2. 8 schemata_json_schema/src/Normalizer/json/ComplexDataDefinitionNormalizer.php \Drupal\schemata_json_schema\Normalizer\json\ComplexDataDefinitionNormalizer
  3. 8 schemata_json_schema/src/Normalizer/hal/ComplexDataDefinitionNormalizer.php \Drupal\schemata_json_schema\Normalizer\hal\ComplexDataDefinitionNormalizer

Normalizer for ComplexDataDefinitionInterface for HAL.

Hierarchy

Expanded class hierarchy of ComplexDataDefinitionNormalizer

1 string reference to 'ComplexDataDefinitionNormalizer'
schemata_json_schema.services.yml in schemata_json_schema/schemata_json_schema.services.yml
schemata_json_schema/schemata_json_schema.services.yml
1 service uses ComplexDataDefinitionNormalizer
serializer.normalizer.complex_data_definition.schema_json.hal_json in schemata_json_schema/schemata_json_schema.services.yml
Drupal\schemata_json_schema\Normalizer\hal\ComplexDataDefinitionNormalizer

File

schemata_json_schema/src/Normalizer/hal/ComplexDataDefinitionNormalizer.php, line 10

Namespace

Drupal\schemata_json_schema\Normalizer\hal
View source
class ComplexDataDefinitionNormalizer extends JsonComplexDataDefinitionNormalizer {

  /**
   * The formats that the Normalizer can handle.
   *
   * @var array
   */
  protected $format = 'schema_json';

  /**
   * The formats that the Normalizer can handle.
   *
   * @var array
   */
  protected $describedFormat = 'hal_json';

  /**
   * {@inheritdoc}
   */
  public function normalize($entity, $format = NULL, array $context = []) {

    /* @var $entity \Drupal\Core\TypedData\ComplexDataDefinitionInterface */

    // If this does not wrap a reference, revert to standard JSON behavior.
    if (!$this
      ->isReferenceField($entity, $context)) {
      return parent::normalize($entity, $format, $context);
    }

    // Not overriding the $context['parent'] here allows trickle-down of
    // top-level field labels. However, we do need some of the field settings.
    $context['settings'] = $entity
      ->getSettings();
    return $this->serializer
      ->normalize($entity
      ->getPropertyDefinition('entity'), $format, $context);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CacheableNormalizerInterface::SERIALIZATION_CONTEXT_CACHEABILITY constant Name of key for bubbling cacheability metadata via serialization context.
ComplexDataDefinitionNormalizer::$describedFormat protected property The formats that the Normalizer can handle. Overrides JsonNormalizerBase::$describedFormat
ComplexDataDefinitionNormalizer::$format protected property The formats that the Normalizer can handle. Overrides JsonNormalizerBase::$format
ComplexDataDefinitionNormalizer::$supportedInterfaceOrClass protected property The interface or class that this Normalizer supports. Overrides DataDefinitionNormalizer::$supportedInterfaceOrClass
ComplexDataDefinitionNormalizer::isReferenceField protected function Determine if the current field is a reference field.
ComplexDataDefinitionNormalizer::normalize public function Normalizes an object into a set of arrays/scalars. Overrides ComplexDataDefinitionNormalizer::normalize
DataDefinitionNormalizer::extractPropertyData protected function Extracts property details from a data definition.
NormalizerBase::addCacheableDependency protected function Adds cacheability if applicable.
NormalizerBase::checkFormat protected function Checks if the provided format is supported by this normalizer. Overrides NormalizerBase::checkFormat
NormalizerBase::denormalize public function Denormalizes data back into an object of the given class.
NormalizerBase::normalizeProperties protected function Normalize an array of data definitions.
NormalizerBase::requiredProperty protected function Determine if the given property is a required element of the schema.
NormalizerBase::supportsDenormalization public function Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization() Overrides NormalizerBase::supportsDenormalization
NormalizerBase::supportsNormalization public function Checks whether the given class is supported for normalization by this normalizer. 1