模块  java.smartcardio
软件包  javax.smartcardio

Class TerminalFactory


  • public final class TerminalFactory
    extends Object
    CardTerminal对象的工厂。 它允许应用程序

    每个TerminalFactory都有一个type表明它是如何实现的。 必须在使用getInstance()方法获取实现时指定,并且可以通过getType()方法检索。

    已定义以下标准类型名称:

    PC/SC
    调用主机平台的PC / SC智能卡堆栈的实现。 实现不需要参数,并在getInstance()调用中接受“null”作为参数。
    None
    不提供任何CardTerminals的实现。 在不支持其他实现的平台上, getDefaultType()返回NonegetDefault()返回None TerminalFactory的实例。 无法通过调用getInstance()方法获得此类工厂。
    将来可能会定义其他标准类型。

    注意:强烈建议通过getInstance()方法接受初始化参数的提供程序实现尽可能使用Properties对象作为基于String名称 - 值对的参数的表示。 这使得应用程序可以更容易地与多个提供程序进行互操作,而不是每个提供程序使用不同的提供程

    TerminalFactory使用可扩展的服务提供者框架。 希望添加新实现的服务提供商应该参阅TerminalFactorySpi类以获取更多信息。

    从以下版本开始:
    1.6
    另请参见:
    CardTerminalsProvider
    • 方法详细信息

      • getDefaultType

        public static String getDefaultType()
        获取默认的TerminalFactory类型。

        确定如下:当初始化该类时,检查系统属性javax.smartcardio.TerminalFactory.DefaultType 如果它被设置,这种类型的TerminalFactory通过调用实例化getInstance(String,Object)方法通过null作为值params 如果调用成功,则类型将成为默认类型,并且工厂将成为default工厂。

        如果未设置系统属性或由于任何原因导致getInstance()调用失败,则系统默认为特定于实现的默认类型和TerminalFactory。

        结果
        默认的TerminalFactory类型
      • getDefault

        public static TerminalFactory getDefault()
        返回默认的TerminalFactory实例。 有关更多信息,请参见getDefaultType()

        默认的TerminalFactory始终可用。 但是,根据实施情况,它可能不提供任何终端。

        结果
        默认的TerminalFactory
      • getInstance

        public static TerminalFactory getInstance​(String type,
                                                  Object params)
                                           throws NoSuchAlgorithmException
        返回使用指定参数初始化的指定类型的TerminalFactory。

        此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回一个新的TerminalFactory对象,该对象封装来自支持指定类型的第一个Provider的TerminalFactorySpi实现。

        请注意,可以通过Security.getProviders()方法检索已注册的提供者列表。

        使用指定的参数Object初始化TerminalFactory 所需参数的类型可能因不同类型的TerminalFactory而异。

        Implementation Note:
        JDK Reference Implementation还使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()返回的提供商的顺序不同。
        参数
        type - 请求的TerminalFactory的类型
        params - 要传递给TerminalFactorySpi实现的参数,如果不需要参数,则返回null
        结果
        指定类型的TerminalFactory
        异常
        NullPointerException - 如果type为null
        NoSuchAlgorithmException - 如果没有Provider支持指定类型的TerminalFactorySpi
      • getInstance

        public static TerminalFactory getInstance​(String type,
                                                  Object params,
                                                  String provider)
                                           throws NoSuchAlgorithmException,
                                                  NoSuchProviderException
        返回使用指定参数初始化的指定类型的TerminalFactory。

        将返回一个新的TerminalFactory对象,该对象封装来自指定提供程序的TerminalFactorySpi实现。 必须在安全提供程序列表中注册指定的提供程序。

        请注意,可以通过Security.getProviders()方法检索已注册提供商的列表。

        使用指定的参数Object初始化TerminalFactory 所需参数的类型可能因不同类型的TerminalFactory而异。

        参数
        type - 请求的TerminalFactory的类型
        params - 要传递给TerminalFactorySpi实现的参数,如果不需要参数,则返回null
        provider - 提供者的名称
        结果
        指定类型的TerminalFactory
        异常
        NullPointerException - 如果type为null
        IllegalArgumentException - 如果provider为null或空String
        NoSuchAlgorithmException - 如果指定的提供程序无法使用指定类型的TerminalFactorySpi实现
        NoSuchAlgorithmException - 如果找不到指定类型的TerminalFactory
        NoSuchProviderException - 如果找不到指定的提供者
      • getInstance

        public static TerminalFactory getInstance​(String type,
                                                  Object params,
                                                  Provider provider)
                                           throws NoSuchAlgorithmException
        返回使用指定参数初始化的指定类型的TerminalFactory。

        将返回一个新的TerminalFactory对象,该对象封装来自指定提供程序对象的TerminalFactorySpi实现。 请注意,指定的提供程序对象不必在提供程序列表中注册。

        使用指定的参数Object初始化TerminalFactory 所需参数的类型可能因不同类型的TerminalFactory而异。

        参数
        type - 请求的TerminalFactory的类型
        params - 要传递给TerminalFactorySpi实现的参数,如果不需要参数,则返回null
        provider - 提供者
        结果
        指定类型的TerminalFactory
        异常
        NullPointerException - 如果type为null
        IllegalArgumentException - 如果提供者为空
        NoSuchAlgorithmException - 如果指定的Provider无法使用指定类型的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的字符串表示形式。