b311480e |
1 | -- Created on: 1995-10-25 |
2 | -- Created by: Christian CAILLET |
3 | -- Copyright (c) 1995-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
d5f74e42 |
8 | -- This library is free software; you can redistribute it and/or modify it under |
9 | -- the terms of the GNU Lesser General Public License version 2.1 as published |
973c2be1 |
10 | -- by the Free Software Foundation, with special exception defined in the file |
11 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
12 | -- distribution for complete text of the license and disclaimer of any warranty. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
7fd59977 |
16 | |
17 | class SelectSent from IFSelect inherits SelectExtract |
18 | |
19 | ---Purpose : This class returns entities according sending to a file |
20 | -- Once a model has been loaded, further sendings are recorded |
21 | -- as status in the graph (for each value, a count of sendings) |
22 | -- |
23 | -- Hence, it is possible to query entities : sent ones (at least |
24 | -- once), non-sent (i.e. remaining) ones, duplicated ones, etc... |
25 | -- |
26 | -- This selection performs this query |
27 | |
28 | uses AsciiString from TCollection, InterfaceModel, Graph, EntityIterator |
29 | |
30 | is |
31 | |
32 | Create (sentcount : Integer = 1; atleast : Boolean = Standard_True) |
6e33d3ce |
33 | returns SelectSent; |
7fd59977 |
34 | ---Purpose : Creates a SelectSent : |
35 | -- sentcount = 0 -> remaining (non-sent) entities |
36 | -- sentcount = 1, atleast = True (D) -> sent (at least once) |
37 | -- sentcount = 2, atleast = True -> duplicated (sent least twice) |
38 | -- etc... |
39 | -- sentcount = 1, atleast = False -> sent just once (non-dupl.d) |
40 | -- sentcount = 2, atleast = False -> sent just twice |
41 | -- etc... |
42 | |
43 | SentCount (me) returns Integer; |
44 | ---Purpose : Returns the queried count of sending |
45 | |
46 | AtLeast (me) returns Boolean; |
47 | ---Purpose : Returns the <atleast> status, True for sending at least the |
48 | -- sending count, False for sending exactly the sending count |
49 | -- Remark : if SentCount is 0, AtLeast is ignored |
50 | |
51 | RootResult (me; G : Graph) returns EntityIterator is redefined; |
52 | ---Purpose : Returns the list of selected entities. It is redefined to |
53 | -- work on the graph itself (not queried by sort) |
54 | -- |
55 | -- An entity is selected if its count complies to the query in |
56 | -- Direct Mode, rejected in Reversed Mode |
57 | -- |
58 | -- Query works on the sending count recorded as status in Graph |
59 | |
60 | Sort (me; rank : Integer; ent : Transient; model : InterfaceModel) |
61 | returns Boolean; |
62 | ---Purpose : Returns always False because RootResult has done the work |
63 | |
64 | |
65 | ExtractLabel (me) returns AsciiString from TCollection; |
66 | ---Purpose : Returns a text defining the criterium : query : |
67 | -- SentCount = 0 -> "Remaining (non-sent) entities" |
68 | -- SentCount = 1, AtLeast = True -> "Sent entities" |
69 | -- SentCount = 1, AtLeast = False -> "Sent once (no duplicated)" |
70 | -- SentCount = 2, AtLeast = True -> "Sent several times entities" |
71 | -- SentCount = 2, AtLeast = False -> "Sent twice entities" |
72 | -- SentCount > 2, AtLeast = True -> "Sent at least <count> times entities" |
73 | -- SentCount > 2, AtLeast = False -> "Sent <count> times entities" |
74 | |
75 | fields |
76 | |
77 | thecnt : Integer; |
78 | thelst : Boolean; |
79 | |
80 | end SelectSent; |