code: public function denormalize($data, $class, $format = null, array $context = [])
      {
          if ($this->entityCollection->contains($class)) {
              $token = $this->tokenStorage->getToken();
  
              if (!$token) {
                  throw new LogicException('Token is not defined.');
              }
  
              $attribute = Permission::EDIT;
              $subject = [
                  0 => null,
                  1 => null
              ];
  
              if (array_key_exists('object_to_populate', $context)) {
                  $subject[0] = $context['object_to_populate'];
              } else {
                  $object = new $context['resource_class'];
  
                  foreach ($data as $property => $value) {
                      if (in_array($property, ['uuid', 'owner', 'ownerUuid', 'identity', 'identityUuid'], true)) {
                          // Set the required values for permission scope voters to vote on.
                          $object->{'set'.$property}($value);
                      }
                  }
  
                  $subject[0] = $object;
              }
  
              foreach (array_keys($data) as $property) {
                  $subject[1] = $property;
                  $vote = $this->voter->vote($token, $subject, [$attribute]);
  
                  if (VoterInterface::ACCESS_ABSTAIN === $vote) {
                      throw new LogicException('Voter cannot abstain from voting.');
                  }
  
                  if (VoterInterface::ACCESS_DENIED === $vote) {
                      unset($data[$property]);
                  }
              }
          }
  
          return $this->decorated->denormalize($data, $class, $format, $context);
      }
docs: {@inheritdoc}