metadataExtractor = $metadataExtractor; } /** * @param EntityWorkflowStep $object */ public function normalize($object, ?string $format = null, array $context = []): array { $data = [ 'type' => 'entity_workflow_step', 'id' => $object->getId(), 'comment' => $object->getComment(), 'currentStep' => $this->metadataExtractor->buildArrayPresentationForPlace($object->getEntityWorkflow(), $object), 'isFinal' => $object->isFinal(), 'isFreezed' => false, 'isFinalized' => false, 'transitionPrevious' => null, 'transitionAfter' => null, 'previousId' => null, 'nextId' => null, 'transitionPreviousBy' => null, 'transitionPreviousAt' => null, ]; if (null !== $previous = $object->getPrevious()) { $data['transitionPrevious'] = $this->metadataExtractor ->buildArrayPresentationForTransition($object->getEntityWorkflow(), $object->getPrevious()->getTransitionAfter()); $data['previousId'] = $previous->getId(); $data['isFreezed'] = $previous->isFreezeAfter(); $data['transitionPreviousBy'] = $this->normalizer->normalize( $previous->getTransitionBy(), $format, $context ); $data['transitionPreviousAt'] = $this->normalizer->normalize( $previous->getTransitionAt(), $format, $context ); } if (null !== $next = $object->getNext()) { $data['nextId'] = $next->getId(); } if (null !== $object->getTransitionAfter()) { $data['transitionAfter'] = $this->metadataExtractor->buildArrayPresentationForTransition( $object->getEntityWorkflow(), $object->getTransitionAfter() ); } return $data; } public function supportsNormalization($data, ?string $format = null): bool { return $data instanceof EntityWorkflowStep && 'json' === $format; } }