|
(item : representation_item; cntxt : representation_context) : BOOLEAN;
LOCAL
i : INTEGER;
y : BAG OF representation_item;
END_LOCAL;
(* If there is one or more representation using both the item and cntxt return true. *)
IF SIZEOF(USEDIN(item,'STRUCTURAL_FRAME_SCHEMA.REPRESENTATION.ITEMS')
* cntxt.representations_in_context) > 0 THEN
RETURN (TRUE);
(* Determine the bag of representation_items that reference item. *)
ELSE
y := QUERY(z <* USEDIN (item , '') |
'STRUCTURAL_FRAME_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z));
(* Ensure that the bag is not empty. *)
IF SIZEOF(y) > 0 THEN
(* For each element in the bag *)
REPEAT i := 1 TO HIINDEX(y);
(* Check to see it is an item in the input cntxt. *)
IF item_in_context(y[i], cntxt) THEN
RETURN (TRUE);
END_IF;
END_REPEAT;
END_IF;
END_IF;
(* Return false when all possible branches have been checked with no success. *)
RETURN (FALSE);
|
|