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 relationship from an extending use case to an extended use case that
47--  specifies how and when the behavior defined in the extending use case can
48--  be inserted into the behavior defined in the extended use case.
49------------------------------------------------------------------------------
50limited with AMF.UML.Constraints;
51with AMF.UML.Directed_Relationships;
52limited with AMF.UML.Extension_Points.Collections;
53with AMF.UML.Named_Elements;
54limited with AMF.UML.Use_Cases;
55
56package AMF.UML.Extends is
57
58   pragma Preelaborate;
59
60   type UML_Extend is limited interface
61     and AMF.UML.Directed_Relationships.UML_Directed_Relationship
62     and AMF.UML.Named_Elements.UML_Named_Element;
63
64   type UML_Extend_Access is
65     access all UML_Extend'Class;
66   for UML_Extend_Access'Storage_Size use 0;
67
68   not overriding function Get_Condition
69    (Self : not null access constant UML_Extend)
70       return AMF.UML.Constraints.UML_Constraint_Access is abstract;
71   --  Getter of Extend::condition.
72   --
73   --  References the condition that must hold when the first extension point
74   --  is reached for the extension to take place. If no constraint is
75   --  associated with the extend relationship, the extension is unconditional.
76
77   not overriding procedure Set_Condition
78    (Self : not null access UML_Extend;
79     To   : AMF.UML.Constraints.UML_Constraint_Access) is abstract;
80   --  Setter of Extend::condition.
81   --
82   --  References the condition that must hold when the first extension point
83   --  is reached for the extension to take place. If no constraint is
84   --  associated with the extend relationship, the extension is unconditional.
85
86   not overriding function Get_Extended_Case
87    (Self : not null access constant UML_Extend)
88       return AMF.UML.Use_Cases.UML_Use_Case_Access is abstract;
89   --  Getter of Extend::extendedCase.
90   --
91   --  References the use case that is being extended.
92
93   not overriding procedure Set_Extended_Case
94    (Self : not null access UML_Extend;
95     To   : AMF.UML.Use_Cases.UML_Use_Case_Access) is abstract;
96   --  Setter of Extend::extendedCase.
97   --
98   --  References the use case that is being extended.
99
100   not overriding function Get_Extension
101    (Self : not null access constant UML_Extend)
102       return AMF.UML.Use_Cases.UML_Use_Case_Access is abstract;
103   --  Getter of Extend::extension.
104   --
105   --  References the use case that represents the extension and owns the
106   --  extend relationship.
107
108   not overriding procedure Set_Extension
109    (Self : not null access UML_Extend;
110     To   : AMF.UML.Use_Cases.UML_Use_Case_Access) is abstract;
111   --  Setter of Extend::extension.
112   --
113   --  References the use case that represents the extension and owns the
114   --  extend relationship.
115
116   not overriding function Get_Extension_Location
117    (Self : not null access constant UML_Extend)
118       return AMF.UML.Extension_Points.Collections.Ordered_Set_Of_UML_Extension_Point is abstract;
119   --  Getter of Extend::extensionLocation.
120   --
121   --  An ordered list of extension points belonging to the extended use case,
122   --  specifying where the respective behavioral fragments of the extending
123   --  use case are to be inserted. The first fragment in the extending use
124   --  case is associated with the first extension point in the list, the
125   --  second fragment with the second point, and so on. (Note that, in most
126   --  practical cases, the extending use case has just a single behavior
127   --  fragment, so that the list of extension points is trivial.)
128
129end AMF.UML.Extends;
130