/**
  * {@link Mars_OAuthProvider} を実装したクラスのオブジェクトインスタンスを生成します。
  * 
  * @param string $provider 接続先の OAuth プロバイダ。Mars_OAuthProvider::PROVIDER_* 定数を指定。
  * @return Mars_OAuthProvider Mars_OAuthProvider を実装したクラスのオブジェクトインスタンスを返します。
  * @throws Mars_UnsupportedException サポートされていない OpenID プロバイダが指定された場合に発生。
  * @author Naomichi Yamakita <*****@*****.**>
  */
 public static function create($provider)
 {
     $instance = NULL;
     switch ($provider) {
         case self::PROVIDER_TWITTER:
             $instance = Mars_TwitterOAuthProvider::getInstance();
             break;
         case self::PROVIDER_FACEBOOK:
             $instance = Mars_FacebookOAuthProvider::getInstance();
             break;
         case self::PROVIDER_MIXI_2LEGGED:
             $instance = Mars_Mixi2LeggedOAuthProvider::getInstance();
             break;
         case self::PROVIDER_MIXI_3LEGGED:
             $instance = Mars_Mixi3LeggedOAuthProvider::getInstance();
             break;
         default:
             $message = sprintf('The specified provider is not supported. [%s]', $provider);
             throw new Mars_UnsupportedException($message);
     }
     return $instance;
 }