1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-- File: SelectDeduct.cdl
-- Created: Tue Nov 17 19:13:08 1992
-- Author: Christian CAILLET
-- <cky@topsn2>
---Copyright: Matra Datavision 1992
deferred class SelectDeduct from IFSelect inherits Selection
---Purpose : A SelectDeduct determines a list of Entities from an Input
-- Selection, by a computation : Output list is not obliged to be
-- a sub-list of Input list
-- (for more specific, see SelectExtract for filtered sub-lists,
-- and SelectExplore for recurcive exploration)
--
-- A SelectDeduct may use an alternate input for one shot
-- This allows to use an already existing definition, by
-- overloading the input selection by an alternate list,
-- already defined, for one use :
-- If this alternate list is set, InputResult queries it instead
-- of calling the input selection, then clears it immediately
uses AsciiString from TCollection, EntityIterator, Graph,
SelectionIterator, SelectPointed
raises InterfaceError
is
SetInput (me : mutable; sel : mutable Selection);
---Purpose : Defines or Changes the Input Selection
Input (me) returns mutable Selection;
---Purpose : Returns the Input Selection
HasInput (me) returns Boolean;
---Purpose : Returns True if the Input Selection is defined, False else
HasAlternate (me) returns Boolean;
---Purpose : Tells if an Alternate List has been set, i.e. : the Alternate
-- Definition is present and set
Alternate (me : mutable) returns SelectPointed;
---Purpose : Returns the Alternate Definition
-- It is returned modifiable, hence an already defined
-- SelectPointed can be used
-- But if it was not yet defined, it is created the first time
--
-- It is exploited by InputResult
---C++ : return &
InputResult (me; G : Graph) returns EntityIterator;
---Purpose : Returns the Result determined by Input Selection, as Unique
-- if Input Selection is not defined, returns an empty list.
--
-- If Alternate is set, InputResult takes its definition instead
-- of calling the Input Selection, then clears it
-- RootResult remains to be defined by each class of Selection
FillIterator (me; iter : in out SelectionIterator);
---Purpose : Puts in an Iterator the Selections from which "me" depends
-- This list contains one Selection : the InputSelection
fields
thesel : Selection;
thealt : SelectPointed;
end SelectDeduct;
|