JavaTM Platform
Standard Ed. 6

java.security
类 Provider.Service

java.lang.Object
  继承者 java.security.Provider.Service
正在封闭类:
Provider

public static class Provider.Service
extends Object

安全服务的描述。它封装服务的属性并包含获得此服务新的实现实例的一个工厂方法。

每个服务都有一个提供者,它提供服务、类型、算法名称和实现该服务的类的名称。它也可以选择包括此服务(别名)和属性的替换算法名称列表,该列表是 (name, value) String 对的映射表。

此类定义了方法 supportsParameter()newInstance(),Java 安全框架搜索合适的服务并实例化它们时使用这两个方法。这些方法的有效参数取决于服务的类型。关于 Java SE 中定义的服务类型的有效值,请参见 Java Cryptography Architecture API Specification & Reference 。注意,Java SE 以外的组件可以定义其他类型的服务及其行为。

此类的实例是不可变的。

从以下版本开始:
1.5

构造方法摘要
Provider.Service(Provider provider, String type, String algorithm, String className, List<String> aliases, Map<String,String> attributes)
          构造新的服务。
 
方法摘要
 String getAlgorithm()
          返回此服务的算法的名称。
 String getAttribute(String name)
          返回指定属性的值,如果没有为此 Service 设置此属性,则返回 null。
 String getClassName()
          返回实现此服务的类的名称。
 Provider getProvider()
          返回此服务的 Provider。
 String getType()
          获取此服务的类型。
 Object newInstance(Object constructorParameter)
          返回此服务描述的实现的新实例。
 boolean supportsParameter(Object parameter)
          测试此 Service 是否能使用指定的参数。
 String toString()
          返回此服务的字符串表示形式。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Provider.Service

public Provider.Service(Provider provider,
                        String type,
                        String algorithm,
                        String className,
                        List<String> aliases,
                        Map<String,String> attributes)
构造新的服务。

参数:
provider - 提供此服务的提供者
type - 此服务的类型
algorithm - 算法名称
className - 实现此服务的类的名称
aliases - 别名的列表,如果算法没有别名则为 null
attributes - 属性的 Map,如果此实现没有属性则为 null
抛出:
NullPointerException - 如果 provider、type、algorithm、或 className 为 null
方法详细信息

getType

public final String getType()
获取此服务的类型。例如,MessageDigest

返回:
此服务的类型

getAlgorithm

public final String getAlgorithm()
返回此服务的算法的名称。例如,SHA-1

返回:
此服务的算法

getProvider

public final Provider getProvider()
返回此服务的 Provider。

返回:
此服务的 Provider。

getClassName

public final String getClassName()
返回实现此服务的类的名称。

返回:
实现此服务的类的名称。

getAttribute

public final String getAttribute(String name)
返回指定属性的值,如果没有为此 Service 设置此属性,则返回 null。

参数:
name - 请求的属性的名称
返回:
指定的属性的值,如果属性不存在则返回 null
抛出:
NullPointerException - 如果 name 为 null

newInstance

public Object newInstance(Object constructorParameter)
                   throws NoSuchAlgorithmException
返回此服务描述的实现的新实例。安全提供者框架使用此方法构造实现。应用程序通常不需要调用它。

默认实现使用反射调用此服务类型的标准构造方法。安全提供者可以重写此方法来以不同的方式实现实例化。有关详细信息和各种服务类型的有效 constructorParameter 值,请参见 Java Cryptography Architecture API Specification & Reference

参数:
constructorParameter - 传递给构造器的值,如果此服务类型不使用 constructorParameter,则为 null。
返回:
此服务的新实现
抛出:
InvalidParameterException - 如果 constructorParameter 对于此服务类型是无效值
NoSuchAlgorithmException - 如果由于任何其他原因实例化失败。

supportsParameter

public boolean supportsParameter(Object parameter)
测试此 Service 是否能使用指定的参数。如果此服务不能使用该参数,则返回 false。如果此服务能使用该参数、快速测试不可行或状态未知,则返回 true。

安全提供者框架用一些服务类型作为参数使用此方法来快速排除所考虑实现中的不匹配项。应用程序通常不需要调用它。

有关详细信息和各种服务类型的有效参数值,请参见此类的顶部和 Java Cryptography Architecture API Specification & Reference。安全提供者可以重写它以实现自己的测试。

参数:
parameter - 要测试的参数。
返回:
如果此服务不能使用指定的参数返回 false;如果它可能使用该参数返回 true
抛出:
InvalidParameterException - 如果参数值对于此服务类型无效或此方法不能随此服务类型一同使用。

toString

public String toString()
返回此服务的字符串表示形式。

覆盖:
Object 中的 toString
返回:
此服务的字符串表示形式

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策