1------------------------------------------------------------------------------
2--                                                                          --
3--                            Matreshka Project                             --
4--                                                                          --
5--                          Ada Modeling Framework                          --
6--                                                                          --
7--                        Runtime Library Component                         --
8--                                                                          --
9------------------------------------------------------------------------------
10--                                                                          --
11-- Copyright © 2011-2012, Vadim Godunko <vgodunko@gmail.com>                --
12-- All rights reserved.                                                     --
13--                                                                          --
14-- Redistribution and use in source and binary forms, with or without       --
15-- modification, are permitted provided that the following conditions       --
16-- are met:                                                                 --
17--                                                                          --
18--  * Redistributions of source code must retain the above copyright        --
19--    notice, this list of conditions and the following disclaimer.         --
20--                                                                          --
21--  * Redistributions in binary form must reproduce the above copyright     --
22--    notice, this list of conditions and the following disclaimer in the   --
23--    documentation and/or other materials provided with the distribution.  --
24--                                                                          --
25--  * Neither the name of the Vadim Godunko, IE nor the names of its        --
26--    contributors may be used to endorse or promote products derived from  --
27--    this software without specific prior written permission.              --
28--                                                                          --
29-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS      --
30-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT        --
31-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR    --
32-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT     --
33-- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,   --
34-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED --
35-- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR   --
36-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF   --
37-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING     --
38-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS       --
39-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.             --
40--                                                                          --
41------------------------------------------------------------------------------
42--  $Revision: 2714 $ $Date: 2012-03-24 10:29:08 +0400 (Sat, 24 Mar 2012) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46--  An activity edge is an abstract class for directed connections between two
47--  activity nodes.
48--
49--  Activity edges can be contained in interruptible regions.
50------------------------------------------------------------------------------
51limited with AMF.UML.Activities;
52limited with AMF.UML.Activity_Edges.Collections;
53limited with AMF.UML.Activity_Groups.Collections;
54limited with AMF.UML.Activity_Nodes;
55limited with AMF.UML.Activity_Partitions.Collections;
56limited with AMF.UML.Interruptible_Activity_Regions;
57with AMF.UML.Redefinable_Elements;
58limited with AMF.UML.Structured_Activity_Nodes;
59limited with AMF.UML.Value_Specifications;
60
61package AMF.UML.Activity_Edges is
62
63   pragma Preelaborate;
64
65   type UML_Activity_Edge is limited interface
66     and AMF.UML.Redefinable_Elements.UML_Redefinable_Element;
67
68   type UML_Activity_Edge_Access is
69     access all UML_Activity_Edge'Class;
70   for UML_Activity_Edge_Access'Storage_Size use 0;
71
72   not overriding function Get_Activity
73    (Self : not null access constant UML_Activity_Edge)
74       return AMF.UML.Activities.UML_Activity_Access is abstract;
75   --  Getter of ActivityEdge::activity.
76   --
77   --  Activity containing the edge.
78
79   not overriding procedure Set_Activity
80    (Self : not null access UML_Activity_Edge;
81     To   : AMF.UML.Activities.UML_Activity_Access) is abstract;
82   --  Setter of ActivityEdge::activity.
83   --
84   --  Activity containing the edge.
85
86   not overriding function Get_Guard
87    (Self : not null access constant UML_Activity_Edge)
88       return AMF.UML.Value_Specifications.UML_Value_Specification_Access is abstract;
89   --  Getter of ActivityEdge::guard.
90   --
91   --  Specification evaluated at runtime to determine if the edge can be
92   --  traversed.
93
94   not overriding procedure Set_Guard
95    (Self : not null access UML_Activity_Edge;
96     To   : AMF.UML.Value_Specifications.UML_Value_Specification_Access) is abstract;
97   --  Setter of ActivityEdge::guard.
98   --
99   --  Specification evaluated at runtime to determine if the edge can be
100   --  traversed.
101
102   not overriding function Get_In_Group
103    (Self : not null access constant UML_Activity_Edge)
104       return AMF.UML.Activity_Groups.Collections.Set_Of_UML_Activity_Group is abstract;
105   --  Getter of ActivityEdge::inGroup.
106   --
107   --  Groups containing the edge.
108
109   not overriding function Get_In_Partition
110    (Self : not null access constant UML_Activity_Edge)
111       return AMF.UML.Activity_Partitions.Collections.Set_Of_UML_Activity_Partition is abstract;
112   --  Getter of ActivityEdge::inPartition.
113   --
114   --  Partitions containing the edge.
115
116   not overriding function Get_In_Structured_Node
117    (Self : not null access constant UML_Activity_Edge)
118       return AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access is abstract;
119   --  Getter of ActivityEdge::inStructuredNode.
120   --
121   --  Structured activity node containing the edge.
122
123   not overriding procedure Set_In_Structured_Node
124    (Self : not null access UML_Activity_Edge;
125     To   : AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access) is abstract;
126   --  Setter of ActivityEdge::inStructuredNode.
127   --
128   --  Structured activity node containing the edge.
129
130   not overriding function Get_Interrupts
131    (Self : not null access constant UML_Activity_Edge)
132       return AMF.UML.Interruptible_Activity_Regions.UML_Interruptible_Activity_Region_Access is abstract;
133   --  Getter of ActivityEdge::interrupts.
134   --
135   --  Region that the edge can interrupt.
136
137   not overriding procedure Set_Interrupts
138    (Self : not null access UML_Activity_Edge;
139     To   : AMF.UML.Interruptible_Activity_Regions.UML_Interruptible_Activity_Region_Access) is abstract;
140   --  Setter of ActivityEdge::interrupts.
141   --
142   --  Region that the edge can interrupt.
143
144   not overriding function Get_Redefined_Edge
145    (Self : not null access constant UML_Activity_Edge)
146       return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge is abstract;
147   --  Getter of ActivityEdge::redefinedEdge.
148   --
149   --  Inherited edges replaced by this edge in a specialization of the
150   --  activity.
151
152   not overriding function Get_Source
153    (Self : not null access constant UML_Activity_Edge)
154       return AMF.UML.Activity_Nodes.UML_Activity_Node_Access is abstract;
155   --  Getter of ActivityEdge::source.
156   --
157   --  Node from which tokens are taken when they traverse the edge.
158
159   not overriding procedure Set_Source
160    (Self : not null access UML_Activity_Edge;
161     To   : AMF.UML.Activity_Nodes.UML_Activity_Node_Access) is abstract;
162   --  Setter of ActivityEdge::source.
163   --
164   --  Node from which tokens are taken when they traverse the edge.
165
166   not overriding function Get_Target
167    (Self : not null access constant UML_Activity_Edge)
168       return AMF.UML.Activity_Nodes.UML_Activity_Node_Access is abstract;
169   --  Getter of ActivityEdge::target.
170   --
171   --  Node to which tokens are put when they traverse the edge.
172
173   not overriding procedure Set_Target
174    (Self : not null access UML_Activity_Edge;
175     To   : AMF.UML.Activity_Nodes.UML_Activity_Node_Access) is abstract;
176   --  Setter of ActivityEdge::target.
177   --
178   --  Node to which tokens are put when they traverse the edge.
179
180   not overriding function Get_Weight
181    (Self : not null access constant UML_Activity_Edge)
182       return AMF.UML.Value_Specifications.UML_Value_Specification_Access is abstract;
183   --  Getter of ActivityEdge::weight.
184   --
185   --  The minimum number of tokens that must traverse the edge at the same
186   --  time.
187
188   not overriding procedure Set_Weight
189    (Self : not null access UML_Activity_Edge;
190     To   : AMF.UML.Value_Specifications.UML_Value_Specification_Access) is abstract;
191   --  Setter of ActivityEdge::weight.
192   --
193   --  The minimum number of tokens that must traverse the edge at the same
194   --  time.
195
196end AMF.UML.Activity_Edges;
197