Module  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的实现。 在不支持其他实现的平台上, 270780222155112返回NonegetDefault()返回一个None TerminalFactory的实例。 这种工厂不能通过调用getInstance()方法获得。
    未来可能会定义其他标准类型。

    注意:强烈建议通过getInstance()方法接受初始化参数的提供程序实现,只要可能,使用Properties对象作为基于字符串名称 - 值对的参数的表示。 这允许应用程序更容易地与多个提供商互操作,而不是如果每个提供者使用不同的提供者特定类作为参数。

    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。

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

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

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

        Implementation Note:
        JDK参考实现还使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供者顺序。 这可能与Security.getProviders()返回的提供商的顺序不同。
        参数
        type - 请求的TerminalFactory的类型
        params - 要传递给TerminalFactorySpi实现的参数,如果不需要参数,则为null
        结果
        一个指定类型的TerminalFactory
        异常
        NullPointerException - 如果类型为空
        NoSuchAlgorithmException - 如果没有提供程序支持指定类型的TerminalFactorySpi
      • 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 - 如果提供程序为空或空字符串
        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 - 如果提供程序为空
        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的字符串表示形式。
        重写:
        toStringObject
        结果
        此TerminalFactory的字符串表示形式。