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