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--  A transition is a directed relationship between a source vertex and a
47--  target vertex. It may be part of a compound transition, which takes the
48--  state machine from one state configuration to another, representing the
49--  complete response of the state machine to an occurrence of an event of a
50--  particular type.
51------------------------------------------------------------------------------
52limited with AMF.UML.Behaviors;
53limited with AMF.UML.Classifiers;
54limited with AMF.UML.Constraints;
55with AMF.UML.Namespaces;
56with AMF.UML.Redefinable_Elements;
57limited with AMF.UML.Regions;
58limited with AMF.UML.State_Machines;
59limited with AMF.UML.Triggers.Collections;
60limited with AMF.UML.Vertexs;
61
62package AMF.UML.Transitions is
63
64   pragma Preelaborate;
65
66   type UML_Transition is limited interface
67     and AMF.UML.Namespaces.UML_Namespace
68     and AMF.UML.Redefinable_Elements.UML_Redefinable_Element;
69
70   type UML_Transition_Access is
71     access all UML_Transition'Class;
72   for UML_Transition_Access'Storage_Size use 0;
73
74   not overriding function Get_Container
75    (Self : not null access constant UML_Transition)
76       return AMF.UML.Regions.UML_Region_Access is abstract;
77   --  Getter of Transition::container.
78   --
79   --  Designates the region that owns this transition.
80
81   not overriding procedure Set_Container
82    (Self : not null access UML_Transition;
83     To   : AMF.UML.Regions.UML_Region_Access) is abstract;
84   --  Setter of Transition::container.
85   --
86   --  Designates the region that owns this transition.
87
88   not overriding function Get_Effect
89    (Self : not null access constant UML_Transition)
90       return AMF.UML.Behaviors.UML_Behavior_Access is abstract;
91   --  Getter of Transition::effect.
92   --
93   --  Specifies an optional behavior to be performed when the transition
94   --  fires.
95
96   not overriding procedure Set_Effect
97    (Self : not null access UML_Transition;
98     To   : AMF.UML.Behaviors.UML_Behavior_Access) is abstract;
99   --  Setter of Transition::effect.
100   --
101   --  Specifies an optional behavior to be performed when the transition
102   --  fires.
103
104   not overriding function Get_Guard
105    (Self : not null access constant UML_Transition)
106       return AMF.UML.Constraints.UML_Constraint_Access is abstract;
107   --  Getter of Transition::guard.
108   --
109   --  A guard is a constraint that provides a fine-grained control over the
110   --  firing of the transition. The guard is evaluated when an event
111   --  occurrence is dispatched by the state machine. If the guard is true at
112   --  that time, the transition may be enabled, otherwise, it is disabled.
113   --  Guards should be pure expressions without side effects. Guard
114   --  expressions with side effects are ill formed.
115
116   not overriding procedure Set_Guard
117    (Self : not null access UML_Transition;
118     To   : AMF.UML.Constraints.UML_Constraint_Access) is abstract;
119   --  Setter of Transition::guard.
120   --
121   --  A guard is a constraint that provides a fine-grained control over the
122   --  firing of the transition. The guard is evaluated when an event
123   --  occurrence is dispatched by the state machine. If the guard is true at
124   --  that time, the transition may be enabled, otherwise, it is disabled.
125   --  Guards should be pure expressions without side effects. Guard
126   --  expressions with side effects are ill formed.
127
128   not overriding function Get_Kind
129    (Self : not null access constant UML_Transition)
130       return AMF.UML.UML_Transition_Kind is abstract;
131   --  Getter of Transition::kind.
132   --
133   --  Indicates the precise type of the transition.
134
135   not overriding procedure Set_Kind
136    (Self : not null access UML_Transition;
137     To   : AMF.UML.UML_Transition_Kind) is abstract;
138   --  Setter of Transition::kind.
139   --
140   --  Indicates the precise type of the transition.
141
142   not overriding function Get_Redefined_Transition
143    (Self : not null access constant UML_Transition)
144       return AMF.UML.Transitions.UML_Transition_Access is abstract;
145   --  Getter of Transition::redefinedTransition.
146   --
147   --  The transition that is redefined by this transition.
148
149   not overriding procedure Set_Redefined_Transition
150    (Self : not null access UML_Transition;
151     To   : AMF.UML.Transitions.UML_Transition_Access) is abstract;
152   --  Setter of Transition::redefinedTransition.
153   --
154   --  The transition that is redefined by this transition.
155
156   not overriding function Get_Redefinition_Context
157    (Self : not null access constant UML_Transition)
158       return AMF.UML.Classifiers.UML_Classifier_Access is abstract;
159   --  Getter of Transition::redefinitionContext.
160   --
161   --  References the classifier in which context this element may be
162   --  redefined.
163
164   not overriding function Get_Source
165    (Self : not null access constant UML_Transition)
166       return AMF.UML.Vertexs.UML_Vertex_Access is abstract;
167   --  Getter of Transition::source.
168   --
169   --  Designates the originating vertex (state or pseudostate) of the
170   --  transition.
171
172   not overriding procedure Set_Source
173    (Self : not null access UML_Transition;
174     To   : AMF.UML.Vertexs.UML_Vertex_Access) is abstract;
175   --  Setter of Transition::source.
176   --
177   --  Designates the originating vertex (state or pseudostate) of the
178   --  transition.
179
180   not overriding function Get_Target
181    (Self : not null access constant UML_Transition)
182       return AMF.UML.Vertexs.UML_Vertex_Access is abstract;
183   --  Getter of Transition::target.
184   --
185   --  Designates the target vertex that is reached when the transition is
186   --  taken.
187
188   not overriding procedure Set_Target
189    (Self : not null access UML_Transition;
190     To   : AMF.UML.Vertexs.UML_Vertex_Access) is abstract;
191   --  Setter of Transition::target.
192   --
193   --  Designates the target vertex that is reached when the transition is
194   --  taken.
195
196   not overriding function Get_Trigger
197    (Self : not null access constant UML_Transition)
198       return AMF.UML.Triggers.Collections.Set_Of_UML_Trigger is abstract;
199   --  Getter of Transition::trigger.
200   --
201   --  Specifies the triggers that may fire the transition.
202
203   not overriding function Containing_State_Machine
204    (Self : not null access constant UML_Transition)
205       return AMF.UML.State_Machines.UML_State_Machine_Access is abstract;
206   --  Operation Transition::containingStateMachine.
207   --
208   --  The query containingStateMachine() returns the state machine that
209   --  contains the transition either directly or transitively.
210
211   overriding function Is_Consistent_With
212    (Self : not null access constant UML_Transition;
213     Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access)
214       return Boolean is abstract;
215   --  Operation Transition::isConsistentWith.
216   --
217   --  The query isConsistentWith() specifies that a redefining transition is
218   --  consistent with a redefined transition provided that the redefining
219   --  transition has the following relation to the redefined transition: A
220   --  redefining transition redefines all properties of the corresponding
221   --  redefined transition, except the source state and the trigger.
222
223   not overriding function Redefinition_Context
224    (Self : not null access constant UML_Transition)
225       return AMF.UML.Classifiers.UML_Classifier_Access is abstract;
226   --  Operation Transition::redefinitionContext.
227   --
228   --  The redefinition context of a transition is the nearest containing
229   --  statemachine.
230
231end AMF.UML.Transitions;
232