7fd59977 |
1 | -- File: Selection.cdl |
2 | -- Created: Tue Nov 17 12:05:52 1992 |
3 | -- Author: Christian CAILLET |
4 | -- <cky@topsn2> |
5 | ---Copyright: Matra Datavision 1992 |
6 | |
7 | |
8 | deferred class Selection from IFSelect inherits TShared |
9 | |
10 | ---Purpose : A Selection allows to define a set of Interface Entities. |
11 | -- Entities to be put on an output file should be identified in |
12 | -- a way as independant from such or such execution as possible. |
13 | -- This permits to handle comprehensive criteria, and to replay |
14 | -- them when a new variant of an input file has to be processed. |
15 | -- |
16 | -- Its input can be, either an Interface Model (the very source), |
17 | -- or another-other Selection(s) or any other ouput. All list |
18 | -- computations start from an input Graph (from IFGraph) |
19 | |
20 | uses AsciiString from TCollection, EntityIterator, Graph, SelectionIterator |
21 | |
22 | raises InterfaceError |
23 | |
24 | is |
25 | |
26 | RootResult (me; G : Graph) returns EntityIterator |
27 | raises InterfaceError is deferred; |
28 | ---Purpose : Returns the list of selected entities, computed from Input |
29 | -- given as a Graph. Specific to each class of Selection |
30 | -- Note that uniqueness of each entity is not required here |
31 | -- This method can raise an exception as necessary |
32 | |
33 | HasUniqueResult (me) returns Boolean is virtual protected; |
34 | ---Purpose : Returns True if RootResult guarantees uniqueness for each |
35 | -- Entity. Called by UniqueResult. |
36 | -- Default answer is False. Can be redefined. |
37 | |
38 | UniqueResult (me; G : Graph) returns EntityIterator; |
39 | ---Purpose : Returns the list of selected entities, each of them beeing |
40 | -- unique. Default definition works from RootResult. According |
41 | -- HasUniqueResult, UniqueResult returns directly RootResult, |
42 | -- or build a Unique Result from it with a Graph. |
43 | |
44 | CompleteResult (me; G : Graph) returns EntityIterator is virtual; |
45 | ---Purpose : Returns the list of entities involved by a Selection, i.e. |
46 | -- UniqueResult plus the shared entities (directly or not) |
47 | |
48 | |
49 | FillIterator (me; iter : in out SelectionIterator) is deferred; |
50 | ---Purpose : Puts in an Iterator the Selections from which "me" depends |
51 | -- (there can be zero, or one, or a list). |
52 | -- Specific to each class of Selection |
53 | |
54 | Label (me) returns AsciiString from TCollection is deferred; |
55 | ---Purpose : Returns a text which defines the criterium applied by a |
56 | -- Selection (can be used to be printed, displayed ...) |
57 | -- Specific to each class |
58 | |
59 | end Selection; |