/**
  * @param \OAuth2\Client\ClientInterface           $client
  * @param \OAuth2\Grant\GrantTypeResponseInterface $grant_type_response
  * @param array                                    $request_parameters
  * @param array                                    $token_type_information
  * @param array                                    $metadatas
  *
  * @throws \OAuth2\Exception\BaseExceptionInterface
  *
  * @return \OAuth2\Token\AccessTokenInterface
  */
 private function createAccessToken(ClientInterface $client, GrantTypeResponseInterface $grant_type_response, array $request_parameters, array $token_type_information, array $metadatas)
 {
     $refresh_token = null;
     $resource_owner = $this->getResourceOwner($grant_type_response->getResourceOwnerPublicId(), $grant_type_response->getUserAccountPublicId());
     if (true === $this->hasRefreshTokenManager()) {
         if (true === $grant_type_response->isRefreshTokenIssued()) {
             $refresh_token = $this->getRefreshTokenManager()->createRefreshToken($client, $resource_owner, $grant_type_response->getRefreshTokenScope(), $metadatas);
         }
     }
     $access_token = $this->getAccessTokenManager()->createAccessToken($client, $resource_owner, $token_type_information, $request_parameters, $grant_type_response->getRequestedScope(), $refresh_token, null, $metadatas);
     return $access_token;
 }