- 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()返回None
TerminalFactory的实例。 无法通过调用getInstance()
方法获得此类工厂。
注意:强烈建议通过
getInstance()
方法接受初始化参数的提供程序实现尽可能使用Properties对象作为基于String名称 - 值对的参数的表示。 这使得应用程序可以更容易地与多个提供程序进行互操作,而不是每个提供程序使用不同的提供程TerminalFactory使用可扩展的服务提供者框架。 希望添加新实现的服务提供商应该参阅TerminalFactorySpi类以获取更多信息。
- 从以下版本开始:
- 1.6
- 另请参见:
-
CardTerminals
,Provider
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 static TerminalFactory
getDefault()
返回默认的TerminalFactory实例。static String
getDefaultType()
获取默认的TerminalFactory类型。static TerminalFactory
getInstance(String type, Object params)
返回使用指定参数初始化的指定类型的TerminalFactory。static TerminalFactory
getInstance(String type, Object params, String provider)
返回使用指定参数初始化的指定类型的TerminalFactory。static TerminalFactory
getInstance(String type, Object params, Provider provider)
返回使用指定参数初始化的指定类型的TerminalFactory。Provider
getProvider()
返回此TerminalFactory的提供者。String
getType()
返回此TerminalFactory的类型。CardTerminals
terminals()
返回一个新的CardTerminals对象,该对象封装了此工厂支持的终端。String
toString()
返回此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.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对象,封装了这个工厂支持的终端。
-
-