条件逻辑算法示例
|
在以下示例中,由于页面宽度所限,一些 XML 元素分布到了多个行上。在对 XML 文档进行编码时,请在一行上输入每个 XML 元素。
|
以下 XML 同时使用 BooleanBranch 和 EqualsTest 两种算法来测试 genericType 属性中是否有标识为 "variant" 的特定类型的部件,随后在为此类型部件编号时设置一个 V 前缀:
<AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.
server.impl.NumberGenerator">
<!-- add a V prefix for variant parts -->
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="genericType"/>
<Arg>variant</Arg>
</Value>
<Arg>V</Arg>
<Arg></Arg>
</Value>
<!-- the sequence -->
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</AttrValue>
以下示例使用 BooleanBranch 和 IfContainerTypeEqualsProjectTest 算法为项目或项目群中的编号设置唯一的显示约束。在本示例中,项目或项目群中的编号将会生成,随后还会显示出来,但可由用户更改;其他上下文中的编号在生成后,用户无法更改:
<AttrConstraint id="number" algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="com.ptc.core.rule.server.impl.
IfContainerTypeEqualsProjectTest"/>
<Value algorithm="com.ptc.core.rule.server.impl.GatherAttribute
Constraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
</Value>
<Value algorithm="com.ptc.core.rule.server.impl.GatherAttribute
Constraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
<Value algorithm="com.ptc.core.rule.server.impl.GetImmutable
Constraint"/>
</Value>
</AttrConstraint>