0024927: Getting rid of "Persistent" functionality -- Code
[occt.git] / src / PCollection / PCollection_HArray2.cdl
1 -- Copyright (c) 1998-1999 Matra Datavision
2 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
3 --
4 -- This file is part of Open CASCADE Technology software library.
5 --
6 -- This library is free software; you can redistribute it and/or modify it under
7 -- the terms of the GNU Lesser General Public License version 2.1 as published
8 -- by the Free Software Foundation, with special exception defined in the file
9 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 -- distribution for complete text of the license and disclaimer of any warranty.
11 --
12 -- Alternatively, this file may be used under the terms of Open CASCADE
13 -- commercial license or contractual agreement.
14
15 generic class HArray2 from PCollection (Item as Storable) 
16 inherits Persistent
17
18         ---Purpose: The class HArray2 represents bi-dimensionnal 
19         -- arrays fixed size known at run time. 
20         -- The range of the index is user defined. 
21         --  Warning: Programs clients of such class must be independant
22         -- of the range of the first element. Then, a C++ for
23         -- loop must be written like this
24         --    for (i = A->LowerRow(); i <= A->UpperRow(); i++)
25         --           for (j = A->LowerCol(); j <= A->UpperCol(); j++)
26
27 raises 
28     RangeError from Standard,
29     OutOfRange from Standard
30
31
32     class FieldOfHArray2 instantiates VArray from DBC (Item);
33
34 is
35
36         Create (R1, R2, C1, C2: Integer from Standard) 
37                returns HArray2 from PCollection
38                 raises RangeError from Standard;
39                 ---Purpose: Creates an array of lower bound <R1><C1> and 
40                 -- upper bound <R2><C2>. Range Error is raised 
41                 -- when <R2> is less than <R1> or <C2> is less than <C1>.
42
43         Create (R1, R2, C1, C2: Integer from Standard ; V : Item) 
44                 returns HArray2 from PCollection
45                   raises RangeError from Standard;
46                 ---Purpose: Creates an array of lower bound <R1><C1> and 
47                 -- upper bound <R2><C2>. RangeError is raised 
48                 -- when <R2> is less than <R1> or <C2> is less
49                 -- than <C1>.
50                 -- The array is initialized with V.
51
52         ColLength (me) returns Integer from Standard
53                 is static ;
54                 ---Purpose: Returns the number of rows of <me>.
55                 --Example
56                 -- PCollection_HArray2
57                 -- myTable(1,100, 1, 50);
58                 -- Standard_Integer noOfRows =
59                 -- myTable->ColLength();
60
61         LowerCol (me) returns Integer from Standard
62                 is static ;
63                 ---Purpose: Returns the lower column number of the array.
64                 ---Level: Public
65                 ---C++: inline
66
67         LowerRow (me) returns Integer from Standard
68                 is static ;
69                 ---Purpose: Returns the lower row number of the array.
70                 ---Level: Public
71                 ---C++: inline
72
73         RowLength (me) returns Integer from Standard
74                 is static;
75                 ---Purpose: Returns the number of columns of <me>.
76                 -- Example
77                 -- PCollection_HArray2
78                 -- myTable(1,100, 1, 50);
79                 -- Standard_Integer noOfColumns =
80                 -- myTable->RowLength();
81
82         SetValue (me : mutable; Row, Col: Integer from Standard; Value: Item) 
83                 raises OutOfRange from Standard
84                 is static ;
85                 ---Level: Public
86                 ---Purpose: Assigns Value to the element which is at index
87                 -- (Row, Column) of this array.
88                 -- Example
89                 -- PCollection_HArray2
90                 -- myTable(1,100,1,50);
91                 -- myTable->SetValue(3,5, 1551);
92                 -- assert (myTable(3,5) == 1551);
93                 -- Exceptions
94                 -- Standard_OutOfRange if the index (Row,
95                 -- Column) is not within the bounds of this array. 
96
97         UpperCol (me) returns Integer from Standard
98                 is static ;
99                 ---Level: Public
100                 ---Purpose: Returns the upper column number of the array.
101                 ---C++: inline
102
103         UpperRow (me) returns Integer from Standard
104                 ---Level: Public
105                 is static ;
106                 ---Level: Public
107                 ---Purpose: Returns the upper row number of the array.
108                 ---C++: inline
109
110         Value (me; Row,Col: Integer from Standard) returns any Item
111                 raises OutOfRange from Standard
112                 is static;
113                 ---Purpose: Returns the value of the element at index (Row,
114                 -- Column) of this array.
115                 -- Example
116                 -- PCollection_HArray2
117                 --  myTable(1,100,1,50);
118                 --  myTable->SetValue(3,5,1551);
119                 -- Standard_Integer myItem = myTable->Value(3,5);
120                 -- Exceptions
121                 -- Standard_OutOfRange if the index (Row,
122                 -- Column) is not within the bounds of this array.
123
124         Field (me) returns FieldOfHArray2 
125                 is private;
126                 ---Level: Internal
127                 ---Purpose: Returns the field Data. Private method.
128
129         Datas(me) returns Address
130                 ---Level: Internal
131                 is private;
132
133 fields 
134
135         myLowerRow    : Integer from Standard ;
136         myLowerCol    : Integer from Standard ;
137         myUpperRow    : Integer from Standard ;
138         myUpperCol    : Integer from Standard ;
139         Data          : FieldOfHArray2    ;
140
141 end HArray2 ;