- java.lang.Object
-
- javax.smartcardio.TerminalFactory
-
public final class TerminalFactory extends Object
CardTerminal对象的工厂。 它允许应用程序- 通过调用此类中的一个静态工厂方法( getDefault()或getInstance() )获取TerminalFactory。
- 使用此TerminalFactory对象通过调用terminals()方法来访问CardTerminals 。
每个TerminalFactory都有一个
type表明它是如何实现的。 必须在使用getInstance()方法获取实现时指定,并且可以通过getType()方法检索。已定义以下标准类型名称:
-
PC/SC - 调用主机平台的PC / SC智能卡堆栈的实现。 实现不需要参数,并在getInstance()调用中接受“null”作为参数。
-
None -
不提供任何CardTerminals的实现。
在不支持其他实现的平台上, getDefaultType()返回
None和getDefault()返回NoneTerminalFactory的实例。 无法通过调用getInstance()方法获得此类工厂。
注意:强烈建议通过
getInstance()方法接受初始化参数的提供程序实现尽可能使用Properties对象作为基于String名称 - 值对的参数的表示。 这使得应用程序可以更容易地与多个提供程序进行互操作,而不是每个提供程序使用不同的提供程TerminalFactory使用可扩展的服务提供者框架。 希望添加新实现的服务提供商应该参阅TerminalFactorySpi类以获取更多信息。
- 从以下版本开始:
- 1.6
- 另请参见:
-
CardTerminals,Provider
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 static TerminalFactorygetDefault()返回默认的TerminalFactory实例。static StringgetDefaultType()获取默认的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。ProvidergetProvider()返回此TerminalFactory的提供者。StringgetType()返回此TerminalFactory的类型。CardTerminalsterminals()返回一个新的CardTerminals对象,该对象封装了此工厂支持的终端。StringtoString()返回此TerminalFactory的字符串表示形式。
-
-
-
方法详细信息
-
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
-
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.preferredSecurity属性来确定指定算法的首选提供程序顺序。 这可能与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对象,封装了这个工厂支持的终端。
-
-