- 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的实现。
在不支持其他实现的平台上, 270780222155112返回
None
和getDefault()返回一个None
TerminalFactory的实例。 这种工厂不能通过调用getInstance()
方法获得。
注意:强烈建议通过
getInstance()
方法接受初始化参数的提供程序实现,只要可能,使用Properties对象作为基于字符串名称 - 值对的参数的表示。 这允许应用程序更容易地与多个提供商互操作,而不是如果每个提供者使用不同的提供者特定类作为参数。TerminalFactory利用可扩展的服务提供者框架。 希望添加新实现的服务提供商应该可以看到有关更多信息的TerminalFactorySpi类。
- 从以下版本开始:
- 1.6
- 另请参见:
-
CardTerminals
,Provider
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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。此方法遍历已注册的安全提供程序列表,从最优选的提供程序开始。 返回从支持指定类型的第一个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对象封装了这个工厂支持的终端。
-
-