(* SCHEMA step_ship_schema; *)
-- ONLY IN AP215/AP216/AP218
RULE version_history_has_exactly_one_assigned_group
FOR(applied_group_assignment, group);
LOCAL
t1_set: SET OF group := [];
set_1, set_2: SET OF applied_group_assignment := [];
set_3: SET OF group_item := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'version history'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
set_1 := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND
(b.role.name = 'current version'));
set_2 := QUERY(c <* applied_group_assignment |
(c.assigned_group = t1_set[i]) AND
(c.role.name = 'members'));
violate := ((SIZEOF(set_1) <> 1) OR (SIZEOF(set_2) <> 1));
IF NOT violate THEN
set_3 := set_1[1].items * set_2[1].items;
violate := (SIZEOF(set_3) <> 1) OR
NOT (VALUE_IN(WHICH_CLASS(set_3[1]),
'versionable object'));
END_IF;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2007-09-24T12:42:22-04:00