/**
  * @param TokenInterface $accessToken
  * @param bool           $revokeNonUsedAccessToken
  */
 public function save(TokenInterface $accessToken, $revokeNonUsedAccessToken = false)
 {
     if ($revokeNonUsedAccessToken) {
         $this->revokeNonUsedAccessToken($accessToken->getClient(), $accessToken->getUser());
     }
     $this->objectManager->persist($accessToken);
     $this->objectManager->flush();
 }
 /**
  * @param TokenInterface $accessTokenEntity
  *
  * @return OAuth2Token
  */
 public static function createFromAccessTokenEntity(TokenInterface $accessTokenEntity)
 {
     $roles[] = 'ROLE_USER';
     if (($client = $accessTokenEntity->getClient()) instanceof ApiClientInterface) {
         $roles = array_merge($roles, $client->getRoles());
     }
     if ($user = $accessTokenEntity->getUser()) {
         if ($user instanceof UserInterface) {
             $roles[] = 'ROLE_REAL_USER';
         }
         $roles = array_merge($roles, $user->getRoles());
     }
     $roles = array_unique($roles);
     $token = new self($roles);
     if ($user) {
         $token->setUser($user);
     }
     $token->setAuthenticated(true);
     $token->setAccessToken($accessTokenEntity->getCode());
     return $token;
 }