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 class describes a set of objects that share the same specifications of
47--  features, constraints, and semantics.
48--
49--  A class has the capability to have an internal structure and ports.
50--
51--  Class has derived association that indicates how it may be extended
52--  through one or more stereotypes. Stereotype is the only kind of metaclass
53--  that cannot be extended by stereotypes.
54--
55--  A class may be designated as active (i.e., each of its instances having
56--  its own thread of control) or passive (i.e., each of its instances
57--  executing within the context of some other object). A class may also
58--  specify which signals the instances of this class handle.
59------------------------------------------------------------------------------
60with AMF.UML.Behaviored_Classifiers;
61limited with AMF.UML.Classes.Collections;
62limited with AMF.UML.Classifiers.Collections;
63with AMF.UML.Encapsulated_Classifiers;
64limited with AMF.UML.Extensions.Collections;
65limited with AMF.UML.Named_Elements.Collections;
66limited with AMF.UML.Operations.Collections;
67limited with AMF.UML.Properties.Collections;
68limited with AMF.UML.Receptions.Collections;
69
70package AMF.UML.Classes is
71
72   pragma Preelaborate;
73
74   type UML_Class is limited interface
75     and AMF.UML.Behaviored_Classifiers.UML_Behaviored_Classifier
76     and AMF.UML.Encapsulated_Classifiers.UML_Encapsulated_Classifier;
77
78   type UML_Class_Access is
79     access all UML_Class'Class;
80   for UML_Class_Access'Storage_Size use 0;
81
82   not overriding function Get_Extension
83    (Self : not null access constant UML_Class)
84       return AMF.UML.Extensions.Collections.Set_Of_UML_Extension is abstract;
85   --  Getter of Class::extension.
86   --
87   --  References the Extensions that specify additional properties of the
88   --  metaclass. The property is derived from the extensions whose memberEnds
89   --  are typed by the Class.
90
91   overriding function Get_Is_Abstract
92    (Self : not null access constant UML_Class)
93       return Boolean is abstract;
94   --  Getter of Class::isAbstract.
95   --
96   --  True when a class is abstract.
97   --  If true, the Classifier does not provide a complete declaration and can
98   --  typically not be instantiated. An abstract classifier is intended to be
99   --  used by other classifiers e.g. as the target of general
100   --  metarelationships or generalization relationships.
101
102   overriding procedure Set_Is_Abstract
103    (Self : not null access UML_Class;
104     To   : Boolean) is abstract;
105   --  Setter of Class::isAbstract.
106   --
107   --  True when a class is abstract.
108   --  If true, the Classifier does not provide a complete declaration and can
109   --  typically not be instantiated. An abstract classifier is intended to be
110   --  used by other classifiers e.g. as the target of general
111   --  metarelationships or generalization relationships.
112
113   not overriding function Get_Is_Active
114    (Self : not null access constant UML_Class)
115       return Boolean is abstract;
116   --  Getter of Class::isActive.
117   --
118   --  Determines whether an object specified by this class is active or not.
119   --  If true, then the owning class is referred to as an active class. If
120   --  false, then such a class is referred to as a passive class.
121
122   not overriding procedure Set_Is_Active
123    (Self : not null access UML_Class;
124     To   : Boolean) is abstract;
125   --  Setter of Class::isActive.
126   --
127   --  Determines whether an object specified by this class is active or not.
128   --  If true, then the owning class is referred to as an active class. If
129   --  false, then such a class is referred to as a passive class.
130
131   not overriding function Get_Nested_Classifier
132    (Self : not null access constant UML_Class)
133       return AMF.UML.Classifiers.Collections.Ordered_Set_Of_UML_Classifier is abstract;
134   --  Getter of Class::nestedClassifier.
135   --
136   --  References all the Classifiers that are defined (nested) within the
137   --  Class.
138
139   overriding function Get_Owned_Attribute
140    (Self : not null access constant UML_Class)
141       return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property is abstract;
142   --  Getter of Class::ownedAttribute.
143   --
144   --  The attributes (i.e. the properties) owned by the class.
145
146   not overriding function Get_Owned_Operation
147    (Self : not null access constant UML_Class)
148       return AMF.UML.Operations.Collections.Ordered_Set_Of_UML_Operation is abstract;
149   --  Getter of Class::ownedOperation.
150   --
151   --  The operations owned by the class.
152
153   not overriding function Get_Owned_Reception
154    (Self : not null access constant UML_Class)
155       return AMF.UML.Receptions.Collections.Set_Of_UML_Reception is abstract;
156   --  Getter of Class::ownedReception.
157   --
158   --  Receptions that objects of this class are willing to accept.
159
160   not overriding function Get_Super_Class
161    (Self : not null access constant UML_Class)
162       return AMF.UML.Classes.Collections.Set_Of_UML_Class is abstract;
163   --  Getter of Class::superClass.
164   --
165   --  This gives the superclasses of a class.
166
167   not overriding function Extension
168    (Self : not null access constant UML_Class)
169       return AMF.UML.Extensions.Collections.Set_Of_UML_Extension is abstract;
170   --  Operation Class::extension.
171   --
172   --  Missing derivation for Class::/extension : Extension
173
174   overriding function Inherit
175    (Self : not null access constant UML_Class;
176     Inhs : AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element)
177       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is abstract;
178   --  Operation Class::inherit.
179   --
180   --  The inherit operation is overridden to exclude redefined properties.
181
182   not overriding function Super_Class
183    (Self : not null access constant UML_Class)
184       return AMF.UML.Classes.Collections.Set_Of_UML_Class is abstract;
185   --  Operation Class::superClass.
186   --
187   --  Missing derivation for Class::/superClass : Class
188
189end AMF.UML.Classes;
190