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 behavioral feature is a feature of a classifier that specifies an aspect
47--  of the behavior of its instances.
48--
49--  A behavioral feature owns zero or more parameter sets.
50--
51--  A behavioral feature is implemented (realized) by a behavior. A behavioral
52--  feature specifies that a classifier will respond to a designated request
53--  by invoking its implementing method.
54------------------------------------------------------------------------------
55limited with AMF.UML.Behaviors.Collections;
56with AMF.UML.Features;
57limited with AMF.UML.Named_Elements;
58with AMF.UML.Namespaces;
59limited with AMF.UML.Parameter_Sets.Collections;
60limited with AMF.UML.Parameters.Collections;
61limited with AMF.UML.Types.Collections;
62
63package AMF.UML.Behavioral_Features is
64
65   pragma Preelaborate;
66
67   type UML_Behavioral_Feature is limited interface
68     and AMF.UML.Features.UML_Feature
69     and AMF.UML.Namespaces.UML_Namespace;
70
71   type UML_Behavioral_Feature_Access is
72     access all UML_Behavioral_Feature'Class;
73   for UML_Behavioral_Feature_Access'Storage_Size use 0;
74
75   not overriding function Get_Concurrency
76    (Self : not null access constant UML_Behavioral_Feature)
77       return AMF.UML.UML_Call_Concurrency_Kind is abstract;
78   --  Getter of BehavioralFeature::concurrency.
79   --
80   --  Specifies the semantics of concurrent calls to the same passive
81   --  instance (i.e., an instance originating from a class with isActive
82   --  being false). Active instances control access to their own behavioral
83   --  features.
84
85   not overriding procedure Set_Concurrency
86    (Self : not null access UML_Behavioral_Feature;
87     To   : AMF.UML.UML_Call_Concurrency_Kind) is abstract;
88   --  Setter of BehavioralFeature::concurrency.
89   --
90   --  Specifies the semantics of concurrent calls to the same passive
91   --  instance (i.e., an instance originating from a class with isActive
92   --  being false). Active instances control access to their own behavioral
93   --  features.
94
95   not overriding function Get_Is_Abstract
96    (Self : not null access constant UML_Behavioral_Feature)
97       return Boolean is abstract;
98   --  Getter of BehavioralFeature::isAbstract.
99   --
100   --  If true, then the behavioral feature does not have an implementation,
101   --  and one must be supplied by a more specific element. If false, the
102   --  behavioral feature must have an implementation in the classifier or one
103   --  must be inherited from a more general element.
104
105   not overriding procedure Set_Is_Abstract
106    (Self : not null access UML_Behavioral_Feature;
107     To   : Boolean) is abstract;
108   --  Setter of BehavioralFeature::isAbstract.
109   --
110   --  If true, then the behavioral feature does not have an implementation,
111   --  and one must be supplied by a more specific element. If false, the
112   --  behavioral feature must have an implementation in the classifier or one
113   --  must be inherited from a more general element.
114
115   not overriding function Get_Method
116    (Self : not null access constant UML_Behavioral_Feature)
117       return AMF.UML.Behaviors.Collections.Set_Of_UML_Behavior is abstract;
118   --  Getter of BehavioralFeature::method.
119   --
120   --  A behavioral description that implements the behavioral feature. There
121   --  may be at most one behavior for a particular pairing of a classifier
122   --  (as owner of the behavior) and a behavioral feature (as specification
123   --  of the behavior).
124
125   not overriding function Get_Owned_Parameter
126    (Self : not null access constant UML_Behavioral_Feature)
127       return AMF.UML.Parameters.Collections.Ordered_Set_Of_UML_Parameter is abstract;
128   --  Getter of BehavioralFeature::ownedParameter.
129   --
130   --  Specifies the ordered set of formal parameters of this
131   --  BehavioralFeature.
132
133   not overriding function Get_Owned_Parameter_Set
134    (Self : not null access constant UML_Behavioral_Feature)
135       return AMF.UML.Parameter_Sets.Collections.Set_Of_UML_Parameter_Set is abstract;
136   --  Getter of BehavioralFeature::ownedParameterSet.
137   --
138   --  The ParameterSets owned by this BehavioralFeature.
139
140   not overriding function Get_Raised_Exception
141    (Self : not null access constant UML_Behavioral_Feature)
142       return AMF.UML.Types.Collections.Set_Of_UML_Type is abstract;
143   --  Getter of BehavioralFeature::raisedException.
144   --
145   --  References the Types representing exceptions that may be raised during
146   --  an invocation of this feature.
147
148   overriding function Is_Distinguishable_From
149    (Self : not null access constant UML_Behavioral_Feature;
150     N : AMF.UML.Named_Elements.UML_Named_Element_Access;
151     Ns : AMF.UML.Namespaces.UML_Namespace_Access)
152       return Boolean is abstract;
153   --  Operation BehavioralFeature::isDistinguishableFrom.
154   --
155   --  The query isDistinguishableFrom() determines whether two
156   --  BehavioralFeatures may coexist in the same Namespace. It specifies that
157   --  they have to have different signatures.
158
159end AMF.UML.Behavioral_Features;
160