在自定义配置规范中使用多值属性
本节将介绍在自定义配置规范时使用多值属性的方法。
定义属性
要定义自定义属性,请执行以下步骤:
1. 在“类型管理器”中搜索“自定义配置规范”管理的类型。
2. 搜索 effRange 全局属性并删除 SingleValued 约束以将其设置为 MultiValued
* 
如果在自定义中使用不同全局属性,请确保在自定义示例的后续步骤中进行相应更改。
实现逻辑
1. 在您的委派中的 setAttributesMap 方法中进行更改,以处理多值属性。多值属性的值以数组形式传入:
@Override
public void setAttributesMap(Map<String, CustomConfigSpecAttribute> attributesMap) {
effContextRef = (ObjectReference) attributesMap.get(EFF_CONTEXT).getValue();
inputTimestamp = (Timestamp) attributesMap.get(EFF_DATE).getValue();
String[] effRanges = (String[]) attributesMap.get(EFF_RANGE).getValue();
if(effRanges != null && effRanges.length > 1) {
this.effRangeStr = effRanges[0] + " - " + effRanges[effRanges.length-1];
}
}
数组的第一个元素被视为起始范围,最后一个元素被视为结束范围。此自定义将搜索序列有效性定义在此范围内的部件。
2. 编译您的示例以在源代码中应用更改。
结果
刚刚创建的自定义将根据序列有效性将部件解析为版本。要测试其运行是否正常,可针对结构中部件的某些修订版本添加序列有效性。然后,使用 CustomConfigSpec 来验证它是否基于有效性上下文和指定为输入的范围将结构解析为正确的版本。
1. 为零件创建“序列有效性”。
2. 创建 CustomConfigSpec。将结构根用作有效性上下文。在此示例中为 GOLF_CART。
3. “编辑筛选器”窗口中,单击“确定”以应用配置规范。如果在步骤 2 中传入的范围内存在序列有效性,则会将为其创建了序列有效性的部件解析为版本:
这对您有帮助吗?