blob: e584dbb09c936b239c77482fad825653432a7fe3 (
plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
-- File: Standard_AncestorIterator.cdl
-- Created: Mon Aug 24 16:14:23 1992
-- Author: Ramin BARRETO
-- <rba@sdsun3>
---Copyright: Matra Datavision 1992
class AncestorIterator from Standard
---Purpose:
-- The class <AncestorIterator> is a iterator which provides
-- information about inheritance.
-- An AncestorIterator object is used to scan sequentially the
-- hierarchy of a type object from its direct super-type to the root.
--
-- Warning:
-- The near parents are first.
--
uses
Boolean from Standard
,Integer from Standard
,Type from Standard
raises
NoMoreObject from Standard
is
------------------------------------------------------------------------
---Category: The Constructur of AncestorIterator.
------------------------------------------------------------------------
Create(anOther: AncestorIterator ) returns AncestorIterator;
---Purpose:
-- The copy constructor for a AncestorIterator .
--
---Level: Advanced
Create(aType: Type) returns AncestorIterator;
---Purpose:
-- Creates an iterator on the type <aType>.
-- Set the iterator at the beginning of the ancestors;
-- this means near parents are first.
---Level: Advanced
------------------------------------------------------------------------
---Category: Assignation.
------------------------------------------------------------------------
Assign(me: in out; anOther: AncestorIterator);
---Purpose:
-- Assigns an AncestorIterator from another AncestorIterator.
--
---C++: alias operator =
---Level: Advanced
------------------------------------------------------------------------
---Category: The methods for iterating.
------------------------------------------------------------------------
More(me) returns Boolean;
---Purpose:
-- Returns True if there are other ancestors.
--
-- Example:
--
-- Handle(Standard_Type) type;
-- Standard_AncestorIterator super(TYPE(Geom_Circle));
-- while(super.More()) { type = super.Value();
-- super.Next();
-- }
Next(me: in out)
---Purpose:
-- Moves the position of the iterator to the next super-type.
-- If the current position corresponds to a root class, it becomes undefined.
--
-- Exceptions:
-- Standard_NoMoreObject if the position of the iterator is undefined
raises NoMoreObject; -- If there are no more ancestors.
---Level: Advanced
------------------------------------------------------------------------
---Category: The information of each ancestor.
------------------------------------------------------------------------
Iterator(me) returns AncestorIterator
---Purpose:
-- Returns an <AncestorIterator> corresponding to the current position
-- of the iterator.
raises NoMoreObject; -- If there are no more Ancestors.
---Level: Advanced
Value(me) returns Type
---Purpose:
-- Returns the type corresponding to the current position of
-- the iterator.
--
-- Example:
--
-- Standard_AncestorIterator super(TYPE(Geom_Circle));
-- assert (super.Value() == TYPE(Geom_Conic));
--
-- Exceptions:
-- Standard_NoSuchObject if the position of the iterator is undefined.
raises NoMoreObject; -- If there are no more ancestors.
fields
myType : Type;
myNbIter: Integer;
end AncestorIterator from Standard;
|