/**
  * @param string                                       $type
  * @param \OAuth2\ResourceOwner\ResourceOwnerInterface $client
  *
  * @return bool
  */
 private function isTypeValid($type, ResourceOwnerInterface $client)
 {
     switch ($type) {
         case 'end_user':
             return $client instanceof EndUserInterface;
         case 'client':
             return $client instanceof ClientInterface;
         case 'registered_client':
             return $client instanceof RegisteredClientInterface;
         case 'confidential_client':
             return $client instanceof ConfidentialClientInterface;
         case 'public_client':
             return $client instanceof RegisteredClientInterface && !$client instanceof ConfidentialClientInterface;
         case 'unregistered_client':
             return $client instanceof ClientInterface && !$client instanceof RegisteredClientInterface;
         default:
             return $type === $client->getType();
     }
 }