モジュール java.smartcardio
パッケージ javax.smartcardio

クラスTerminalFactory

java.lang.Object
javax.smartcardio.TerminalFactory

public final class TerminalFactory
extends Object
CardTerminalオブジェクトのファクトリです。 これにより、アプリケーションで次のことができます。
  • このクラスのstaticファクトリ・メソッドのいずれか(getDefault()またはgetInstance())を呼び出すことで、TerminalFactoryを取得する。
  • このTerminalFactoryオブジェクトを使用して、terminals()メソッドを呼び出すことでCardTerminalsにアクセスする。

それぞれのTerminalFactoryには、それがどのように実装されたかを示すtypeがあります。 これは、getInstance()メソッドを使用して実装を取得するときに指定する必要があり、getType()メソッドを使って取得できます。

定義されているのは、次の標準の型名です。

PC/SC
ホスト・プラットフォームのPC/SCスマート・カードのスタックを呼び出す実装。 実装はパラメータを必要とせず、getInstance()呼出しの引数として「null」を受け入れます。
None
CardTerminalsを提供しない実装。 ほかの実装を提供しないプラットフォームでは、getDefaultType()Noneを返し、getDefault()None TerminalFactoryのインスタンスを返します。 この型のファクトリは、getInstance()メソッドを呼び出すことでは取得できません。
将来、標準の型が定義される可能性があります。

ノート: getInstance()メソッドを使って初期化パラメータを受け入れるプロバイダ実装では、可能なかぎりStringの名前と値のペアをベースにしたパラメータの表現としてPropertiesオブジェクトを使用することを強くお勧めします。 これにより、各プロバイダがパラメータとしてさまざまなプロバイダ固有のクラスを使用する場合に比べて、アプリケーションでの複数プロバイダとの相互運用が簡単になります。

TerminalFactoryは、拡張可能なサービス・プロバイダ・フレームワークを利用します。 新しい実装の追加を必要とするサービス・プロバイダは、詳細についてTerminalFactorySpiクラスを参照してください。

導入されたバージョン:
1.6
関連項目:
CardTerminals, Provider
  • メソッドの詳細

    • getDefaultType

      public static String getDefaultType()
      デフォルトのTerminalFactory型を取得します。

      これは次のように決定されます: このクラスが初期化されると、システム・プロパティjavax.smartcardio.TerminalFactory.DefaultTypeが検査されます。 これが設定されている場合、この型のTerminalFactoryは、paramsの値としてnullを渡してgetInstance(String,Object)メソッドを呼び出すことでインスタンス化されます。 呼出しが成功すると、型はデフォルトの型になり、ファクトリはデフォルト・ファクトリになります。

      システム・プロパティが設定されていない場合、またはgetInstance()呼出しがなんらかの理由で失敗した場合、システムにより実装固有のデフォルト型とTerminalFactoryがデフォルトになります。

      戻り値:
      デフォルトのTerminalFactory型
    • getDefault

      public static TerminalFactory getDefault()
      デフォルトのTerminalFactoryインスタンスを返します。 詳細は、getDefaultType()を参照してください。

      デフォルトのTerminalFactoryは常に使用可能です。 ただし、実装によっては端末が提供されない場合があります。

      戻り値:
      デフォルトのTerminalFactory
    • getInstance

      public static TerminalFactory getInstance​(String type, Object params) throws NoSuchAlgorithmException
      指定されたパラメータで初期化される、指定された型のTerminalFactoryを返します。

      このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定された型をサポートする最初のProviderのTerminalFactorySpi実装をカプセル化する新しいTerminalFactoryオブジェクトが返されます。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      TerminalFactoryは、指定されたパラメータのObjectで初期化されます。 必要なパラメータの型は、TerminalFactoryの型によって異なります。

      実装上のノート:
      JDKリファレンス実装では、jdk.security.provider.preferred Securityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
      パラメータ:
      type - 要求されたTerminalFactoryの型
      params - TerminalFactorySpi実装に渡すパラメータ。パラメータの必要がない場合はnull
      戻り値:
      指定された型のTerminalFactory
      例外:
      NullPointerException - typeがnullの場合
      NoSuchAlgorithmException - 指定された型のTerminalFactorySpiをサポートするProviderがない場合
    • getInstance

      public static TerminalFactory getInstance​(String type, Object params, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
      指定されたパラメータで初期化される、指定された型のTerminalFactoryを返します。

      指定されたプロバイダのTerminalFactorySpi実装をカプセル化する新しいTerminalFactoryオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      TerminalFactoryは、指定されたパラメータのObjectで初期化されます。 必要なパラメータの型は、TerminalFactoryの型によって異なります。

      パラメータ:
      type - 要求されたTerminalFactoryの型
      params - TerminalFactorySpi実装に渡すパラメータ。パラメータの必要がない場合はnull
      provider - プロバイダ名
      戻り値:
      指定された型のTerminalFactory
      例外:
      NullPointerException - typeがnullの場合
      IllegalArgumentException - providerがnullまたは空の文字列である場合
      NoSuchAlgorithmException - 指定された型のTerminalFactorySpi実装が、指定されたプロバイダから使用可能でない場合
      NoSuchAlgorithmException - 指定された型のTerminalFactoryが見つからなかった場合
      NoSuchProviderException - 指定されたプロバイダが見つからなかった場合
    • getInstance

      public static TerminalFactory getInstance​(String type, Object params, Provider provider) throws NoSuchAlgorithmException
      指定されたパラメータで初期化される、指定された型のTerminalFactoryを返します。

      指定されたプロバイダ・オブジェクトのTerminalFactorySpi実装をカプセル化する新しいTerminalFactoryオブジェクトが返されます。 指定したプロバイダ・オブジェクトは、プロバイダ・リストに登録する必要はありません。

      TerminalFactoryは、指定されたパラメータのObjectで初期化されます。 必要なパラメータの型は、TerminalFactoryの型によって異なります。

      パラメータ:
      type - 要求されたTerminalFactoryの型
      params - TerminalFactorySpi実装に渡すパラメータ。パラメータの必要がない場合はnull
      provider - プロバイダ
      戻り値:
      指定された型のTerminalFactory
      例外:
      NullPointerException - typeがnullの場合
      IllegalArgumentException - providerがnullの場合
      NoSuchAlgorithmException - 指定された型のTerminalFactorySpi実装が、指定されたプロバイダから使用可能でない場合
    • getProvider

      public Provider getProvider()
      このTerminalFactoryのプロバイダを返します。
      戻り値:
      このTerminalFactoryのプロバイダ。
    • getType

      public String getType()
      このTerminalFactoryの型を返します。 これは、このオブジェクトを返したgetInstance()メソッドに指定された値です。
      戻り値:
      このTerminalFactoryの型
    • terminals

      public CardTerminals terminals()
      このファクトリでサポートされる端末をカプセル化する、新しいCardTerminalsオブジェクトを返します。 返されるオブジェクトの共有と再利用の方法については、CardTerminalsクラスのクラス・コメントを参照してください。
      戻り値:
      このファクトリでサポートされる端末をカプセル化する、新しいCardTerminalsオブジェクト。
    • toString

      public String toString()
      このTerminalFactoryの文字列表現を返します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このTerminalFactoryの文字列表現。