/**
  * @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;
 }
 public static function createAuthenticated($user, array $roles)
 {
     $token = new self($user, $roles);
     $token->setAuthenticated(true);
     return $token;
 }