b311480e |
1 | -- Created on: 1997-05-09 |
2 | -- Created by: Christian CAILLET |
3 | -- Copyright (c) 1997-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 Plex from StepData inherits Described from StepData |
18 | |
19 | ---Purpose : A Plex (for Complex) Entity is defined as a list of Simple |
20 | -- Members ("external mapping") |
21 | -- The types of these members must be in alphabetic order |
22 | |
23 | uses CString, |
24 | SequenceOfTransient from TColStd, |
25 | HSequenceOfAsciiString from TColStd, |
26 | Check from Interface, EntityIterator from Interface, |
27 | ECDescr from StepData, Simple from StepData, Field from StepData |
28 | |
29 | raises InterfaceMismatch |
30 | |
31 | is |
32 | |
6e33d3ce |
33 | Create (descr : ECDescr) returns Plex; |
7fd59977 |
34 | ---Purpose : Creates a Plex (empty). The complete creation is made by the |
35 | -- ECDescr itself, by calling Add |
36 | |
37 | Add (me : mutable; member : Simple); |
38 | ---Purpose : Adds a member to <me> |
39 | |
40 | ECDescr (me) returns ECDescr; |
41 | ---Purpose : Returns the Description as for a Plex |
42 | |
43 | -- inherited |
44 | |
45 | IsComplex (me) returns Boolean; |
46 | ---Purpose : Returns False |
47 | |
48 | |
49 | Matches (me; steptype : CString) returns Boolean; |
50 | ---Purpose : Tells if a step type is matched by <me> |
51 | -- For a Simple Entity : own type or super type |
52 | -- For a Complex Entity : one of the members |
53 | |
6e33d3ce |
54 | As (me; steptype : CString) returns Simple; |
7fd59977 |
55 | ---Purpose : Returns a Simple Entity which matches with a Type in <me> : |
56 | -- For a Simple Entity : me if it matches, else a null handle |
57 | -- For a Complex Entity : the member which matches, else null |
58 | |
59 | HasField (me; name : CString) returns Boolean; |
60 | ---Purpose : Tells if a Field brings a given name |
61 | |
62 | Field (me; name : CString) returns Field |
63 | ---Purpose : Returns a Field from its name; read-only |
64 | raises InterfaceMismatch; |
65 | -- raises if no Field for <name> |
66 | ---C++ : return const & |
67 | |
68 | CField (me : mutable; name : CString) returns Field |
69 | ---Purpose : Returns a Field from its name; read or write |
70 | raises InterfaceMismatch; |
71 | -- raises if no Field for <name> |
72 | ---C++ : return & |
73 | |
74 | -- more specific |
75 | |
76 | NbMembers (me) returns Integer; |
77 | ---Purpose : Returns the count of simple members |
78 | |
79 | Member (me; num : Integer) returns Simple; |
80 | ---Purpose : Returns a simple member from its rank |
81 | |
82 | TypeList (me) returns HSequenceOfAsciiString; |
83 | ---Purpose : Returns the actual list of members types |
84 | |
85 | -- |
86 | |
87 | Check (me; ach : in out Check from Interface); |
88 | ---Purpose : Fills a Check by using its Description |
89 | |
90 | Shared (me; list : in out EntityIterator from Interface); |
91 | ---Purpose : Fills an EntityIterator with entities shared by <me> |
92 | |
93 | fields |
94 | |
95 | themembers : SequenceOfTransient; |
96 | |
97 | end Plex; |