尽管对所有资源定义了这些属性,某些资源仍可能返回这些属性的 NULL 或空值,或对这些属性抛出 PROPERTY_NOT_SUPPORTED_BY_SERVER 异常。
必须先从服务器明确地请求所有属性(位置除外),再从代理中获取这些属性。
Resource 类提供了一些一般方法,以通过使用每个属性的 PropertyName 对象来访问代理定义的属性值。WVCM 定义方法 Resource.getProperty(PropertyNameList.PropertyName) 和 Resource.setProperty(PropertyNameList.PropertyName, Object)。如果代理不包含由 PropertyName 对象标识的属性的有效值,那么 getProperty 方法将抛出异常 PropertyException。
还有用于检索属性值的 Resource.lookupProperty() 方法。如果定义了属性值,lookupProperty() 将返回与 getProperty 相同的对象。如果未定义属性值,lookupProperty() 将返回由 getProperty 方法抛出的异常。
setProperty、getProperty 和 lookupProperty 方法不验证 PropertyName 是否由代理类定义。任何代理都可用于与任何类型的资源交互。仅当交互尝试写入或检索没有为通过代理寻址的资源定义的属性值时,这些交互才会失败;仅当 API Provider 尝试将这些属性值传输到资源或从资源进行传输时失败才会发生。但请注意,当构造给定位置的代理时,位置的域必须与正在请求代理的提供程序域相匹配。
CqRecord.FieldName 类是 PropertyName 的子类,用于命名作为 ClearQuest® 记录的模式定义字段的资源属性。请注意,与 PropertyName 相同,类型参数会指定字段的值类型。
您可以使用这些特定于 ClearQuest 记录的扩展来访问记录的字段。相关示例,请参阅嵌套属性