type。当使用getInstance()方法获取实现时,必须指定该type,并且可以通过getType()方法检索。 下列标准类型名称已被定义:
-
PC/SC - 调用主机平台的PC/SC智能卡堆栈的实现。实现不需要参数,并且在getInstance()调用中接受“null”作为参数。
-
None -
不提供任何CardTerminals的实现。在不支持其他实现的平台上,getDefaultType()返回
None,getDefault()返回一个NoneTerminalFactory的实例。无法通过调用getInstance()方法获取此类型的工厂。
注意:强烈建议接受通过getInstance()方法传递初始化参数的提供程序实现尽可能使用Properties对象作为基于字符串名称-值对的参数表示。这样可以使应用程序更容易与多个提供程序进行交互,而不是每个提供程序都使用不同的提供程序特定类作为参数。
TerminalFactory利用可扩展的服务提供程序框架。希望添加新实现的服务提供程序应查看TerminalFactorySpi类以获取更多信息。
- 自:
- 1.6
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionstatic TerminalFactory返回默认的TerminalFactory实例。static String获取默认的TerminalFactory类型。static TerminalFactorygetInstance(String type, Object params) 返回使用指定参数初始化的指定类型的TerminalFactory。static TerminalFactorygetInstance(String type, Object params, String provider) 返回使用指定参数初始化的指定类型的TerminalFactory。static TerminalFactorygetInstance(String type, Object params, Provider provider) 返回使用指定参数初始化的指定类型的TerminalFactory。返回此TerminalFactory的提供程序。getType()返回此TerminalFactory的类型。返回一个封装了此工厂支持的终端的新CardTerminals对象。toString()返回此TerminalFactory的字符串表示形式。
-
Method Details
-
getDefaultType
获取默认的TerminalFactory类型。确定方式如下:当初始化此类时,将检查系统属性
javax.smartcardio.TerminalFactory.DefaultType。如果已设置,将通过调用getInstance(String,Object)方法并将null作为params的值传递来实例化此类型的TerminalFactory。如果调用成功,则该类型将成为默认类型,工厂将成为默认工厂。如果系统属性未设置或由于任何原因getInstance()调用失败,则系统将默认使用特定实现的默认类型和TerminalFactory。
- 返回:
- 默认的TerminalFactory类型
-
getDefault
返回默认的TerminalFactory实例。查看getDefaultType()获取更多信息。始终可以使用默认的TerminalFactory。但是,根据实现方式,它可能不提供任何终端。
- 返回:
- 默认的TerminalFactory
-
getInstance
public static TerminalFactory getInstance(String type, Object params) throws NoSuchAlgorithmException 返回使用指定参数初始化的指定类型的TerminalFactory。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回封装了支持指定类型的第一个提供程序的TerminalFactorySpi实现的新TerminalFactory对象。
请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。
TerminalFactory使用指定的参数对象进行初始化。所需参数的类型可能因不同类型的TerminalFactory而异。- 实现注意:
-
JDK参考实现另外使用
jdk.security.provider.preferredSecurity属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供程序顺序不同。 - 参数:
-
type- 请求的TerminalFactory类型 -
params- 传递给TerminalFactorySpi实现的参数,如果不需要参数,则为null - 返回:
- 指定类型的TerminalFactory
- 抛出:
-
NullPointerException- 如果type为null -
NoSuchAlgorithmException- 如果没有提供者支持指定类型的TerminalFactorySpi
-
getInstance
public static TerminalFactory getInstance(String type, Object params, String provider) throws NoSuchAlgorithmException, NoSuchProviderException 返回使用指定参数初始化的指定类型的TerminalFactory。返回封装了来自指定提供程序的TerminalFactorySpi实现的新TerminalFactory对象。指定的提供程序必须在安全提供程序列表中注册。
请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。
TerminalFactory使用指定的参数对象进行初始化。所需参数的类型可能因不同类型的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使用指定的参数对象进行初始化。所需参数的类型可能因不同类型的TerminalFactory而异。- 参数:
-
type- 请求的TerminalFactory类型 -
params- 传递给TerminalFactorySpi实现的参数,如果不需要参数,则为null -
provider- 提供程序 - 返回:
- 指定类型的TerminalFactory
- 抛出:
-
NullPointerException- 如果type为null -
IllegalArgumentException- 如果provider为null -
NoSuchAlgorithmException- 如果指定提供程序不提供指定类型的TerminalFactorySpi实现
-
getProvider
返回此TerminalFactory的提供程序。- 返回:
- 此TerminalFactory的提供程序。
-
getType
返回此TerminalFactory的类型。这是调用返回此对象的getInstance()方法中指定的值。- 返回:
- 此TerminalFactory的类型
-
terminals
返回一个封装了此工厂支持的终端的新CardTerminals对象。查看CardTerminals类的类注释,了解如何共享和重用返回的对象。- 返回:
- 一个封装了此工厂支持的终端的新CardTerminals对象。
-
toString
返回此TerminalFactory的字符串表示形式。
-