7fd59977 |
1 | -- File: IFSelect_SelectSent.cdl |
2 | -- Created: Wed Oct 25 09:38:28 1995 |
3 | -- Author: Christian CAILLET |
4 | -- <cky@anion> |
5 | ---Copyright: Matra Datavision 1995 |
6 | |
7 | |
8 | class SelectSent from IFSelect inherits SelectExtract |
9 | |
10 | ---Purpose : This class returns entities according sending to a file |
11 | -- Once a model has been loaded, further sendings are recorded |
12 | -- as status in the graph (for each value, a count of sendings) |
13 | -- |
14 | -- Hence, it is possible to query entities : sent ones (at least |
15 | -- once), non-sent (i.e. remaining) ones, duplicated ones, etc... |
16 | -- |
17 | -- This selection performs this query |
18 | |
19 | uses AsciiString from TCollection, InterfaceModel, Graph, EntityIterator |
20 | |
21 | is |
22 | |
23 | Create (sentcount : Integer = 1; atleast : Boolean = Standard_True) |
24 | returns mutable SelectSent; |
25 | ---Purpose : Creates a SelectSent : |
26 | -- sentcount = 0 -> remaining (non-sent) entities |
27 | -- sentcount = 1, atleast = True (D) -> sent (at least once) |
28 | -- sentcount = 2, atleast = True -> duplicated (sent least twice) |
29 | -- etc... |
30 | -- sentcount = 1, atleast = False -> sent just once (non-dupl.d) |
31 | -- sentcount = 2, atleast = False -> sent just twice |
32 | -- etc... |
33 | |
34 | SentCount (me) returns Integer; |
35 | ---Purpose : Returns the queried count of sending |
36 | |
37 | AtLeast (me) returns Boolean; |
38 | ---Purpose : Returns the <atleast> status, True for sending at least the |
39 | -- sending count, False for sending exactly the sending count |
40 | -- Remark : if SentCount is 0, AtLeast is ignored |
41 | |
42 | RootResult (me; G : Graph) returns EntityIterator is redefined; |
43 | ---Purpose : Returns the list of selected entities. It is redefined to |
44 | -- work on the graph itself (not queried by sort) |
45 | -- |
46 | -- An entity is selected if its count complies to the query in |
47 | -- Direct Mode, rejected in Reversed Mode |
48 | -- |
49 | -- Query works on the sending count recorded as status in Graph |
50 | |
51 | Sort (me; rank : Integer; ent : Transient; model : InterfaceModel) |
52 | returns Boolean; |
53 | ---Purpose : Returns always False because RootResult has done the work |
54 | |
55 | |
56 | ExtractLabel (me) returns AsciiString from TCollection; |
57 | ---Purpose : Returns a text defining the criterium : query : |
58 | -- SentCount = 0 -> "Remaining (non-sent) entities" |
59 | -- SentCount = 1, AtLeast = True -> "Sent entities" |
60 | -- SentCount = 1, AtLeast = False -> "Sent once (no duplicated)" |
61 | -- SentCount = 2, AtLeast = True -> "Sent several times entities" |
62 | -- SentCount = 2, AtLeast = False -> "Sent twice entities" |
63 | -- SentCount > 2, AtLeast = True -> "Sent at least <count> times entities" |
64 | -- SentCount > 2, AtLeast = False -> "Sent <count> times entities" |
65 | |
66 | fields |
67 | |
68 | thecnt : Integer; |
69 | thelst : Boolean; |
70 | |
71 | end SelectSent; |