/**
  * Transforms a FieldType Value into a hash using `FieldTpe::toHash()`.
  * This hash is compatible with `reverseTransform()`.
  *
  * @param \eZ\Publish\SPI\FieldType\Value $value
  *
  * @return array|null the value's hash, or null if $value was not a FieldType Value
  */
 public function transform($value)
 {
     if (!$value instanceof Value) {
         return null;
     }
     return $this->fieldType->toHash($value);
 }
 /**
  * Serializes the given $value for $fieldType with $generator into
  * $elementName.
  *
  * @param string $elementName
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\API\Repository\FieldType $fieldType
  * @param mixed $value
  */
 protected function serializeValue($elementName, Generator $generator, FieldType $fieldType, $value)
 {
     $hash = $fieldType->toHash($value);
     $fieldTypeIdentifier = $fieldType->getFieldTypeIdentifier();
     if ($this->fieldTypeProcessorRegistry->hasProcessor($fieldTypeIdentifier)) {
         $processor = $this->fieldTypeProcessorRegistry->getProcessor($fieldTypeIdentifier);
         $hash = $processor->postProcessValueHash($hash);
     }
     $this->serializeHash($elementName, $generator, $hash);
 }
 /**
  * Converts a Value to a hash
  *
  * @param mixed $value
  *
  * @return mixed
  */
 public function toHash($value)
 {
     return $this->innerFieldType->toHash($value);
 }