abstract class NormalizerBase in Schemata 8
Base class for JSON Schema Normalizers.
Hierarchy
- class \Drupal\serialization\Normalizer\NormalizerBase implements \Symfony\Component\Serializer\SerializerAwareInterface, CacheableNormalizerInterface uses \Symfony\Component\Serializer\SerializerAwareTrait
- class \Drupal\schemata\Normalizer\NormalizerBase implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface
Expanded class hierarchy of NormalizerBase
2 files declare their use of NormalizerBase
- JsonApiNormalizerBase.php in schemata_json_schema/
src/ Normalizer/ jsonapi/ JsonApiNormalizerBase.php - JsonNormalizerBase.php in schemata_json_schema/
src/ Normalizer/ json/ JsonNormalizerBase.php
File
- src/
Normalizer/ NormalizerBase.php, line 14
Namespace
Drupal\schemata\NormalizerView source
abstract class NormalizerBase extends SerializationNormalizerBase implements DenormalizerInterface {
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = NULL) {
return FALSE;
}
/**
* {@inheritdoc}
*/
public function denormalize($data, $class, $format = NULL, array $context = []) {
throw new \RuntimeException('Denormalization is not supported.');
}
/**
* Normalize an array of data definitions.
*
* This normalization process gets an array of properties and an array of
* properties that are required by name. This is needed by the
* SchemataSchemaNormalizer, otherwise it would have been placed in
* DataDefinitionNormalizer.
*
* @param \Drupal\Core\TypedData\DataDefinitionInterface[] $items
* An array of data definition properties to be normalized.
* @param string $format
* Format identifier of the current serialization process.
* @param array $context
* Operating context of the serializer.
*
* @return array
* Array containing one or two nested arrays.
* - properties: The array of all normalized properties.
* - required: The array of required properties by name.
*/
protected function normalizeProperties(array $items, $format, array $context = []) {
$normalized = [];
foreach ($items as $name => $property) {
$context['name'] = $name;
$item = $this->serializer
->normalize($property, $format, $context);
if (!empty($item)) {
$normalized = NestedArray::mergeDeep($normalized, $item);
}
}
return $normalized;
}
/**
* Determine if the given property is a required element of the schema.
*
* @param \Drupal\Core\TypedData\DataDefinitionInterface $property
* The data property to be evaluated.
*
* @return bool
* Whether the property should be treated as required for schema
* purposes.
*/
protected function requiredProperty(DataDefinitionInterface $property) {
return $property
->isReadOnly() || $property
->isRequired();
}
/**
* {@inheritdoc}
*/
protected function checkFormat($format = NULL) {
if (!isset($format) || !isset($this->format)) {
return TRUE;
}
$parts = explode(':', $format);
return $parts[0] == $this->format && isset($parts[1]) && $this->describedFormat == $parts[1];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CacheableNormalizerInterface:: |
constant | Name of key for bubbling cacheability metadata via serialization context. | ||
NormalizerBase:: |
protected | property | List of formats which supports (de-)normalization. | 3 |
NormalizerBase:: |
protected | property | The interface or class that this Normalizer supports. | 22 |
NormalizerBase:: |
protected | function | Adds cacheability if applicable. | |
NormalizerBase:: |
protected | function |
Checks if the provided format is supported by this normalizer. Overrides NormalizerBase:: |
|
NormalizerBase:: |
public | function | Denormalizes data back into an object of the given class. | |
NormalizerBase:: |
protected | function | Normalize an array of data definitions. | |
NormalizerBase:: |
protected | function | Determine if the given property is a required element of the schema. | |
NormalizerBase:: |
public | function |
Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization() Overrides NormalizerBase:: |
|
NormalizerBase:: |
public | function | Checks whether the given class is supported for normalization by this normalizer. | 1 |