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 port is a property of a classifier that specifies a distinct interaction
47--  point between that classifier and its environment or between the (behavior
48--  of the) classifier and its internal parts. Ports are connected to
49--  properties of the classifier by connectors through which requests can be
50--  made to invoke the behavioral features of a classifier. A Port may specify
51--  the services a classifier provides (offers) to its environment as well as
52--  the services that a classifier expects (requires) of its environment.
53--
54--  A port has an associated protocol state machine.
55------------------------------------------------------------------------------
56limited with AMF.UML.Interfaces.Collections;
57limited with AMF.UML.Ports.Collections;
58with AMF.UML.Properties;
59limited with AMF.UML.Protocol_State_Machines;
60
61package AMF.UML.Ports is
62
63   pragma Preelaborate;
64
65   type UML_Port is limited interface
66     and AMF.UML.Properties.UML_Property;
67
68   type UML_Port_Access is
69     access all UML_Port'Class;
70   for UML_Port_Access'Storage_Size use 0;
71
72   not overriding function Get_Is_Behavior
73    (Self : not null access constant UML_Port)
74       return Boolean is abstract;
75   --  Getter of Port::isBehavior.
76   --
77   --  Specifies whether requests arriving at this port are sent to the
78   --  classifier behavior of this classifier. Such ports are referred to as
79   --  behavior port. Any invocation of a behavioral feature targeted at a
80   --  behavior port will be handled by the instance of the owning classifier
81   --  itself, rather than by any instances that this classifier may contain.
82
83   not overriding procedure Set_Is_Behavior
84    (Self : not null access UML_Port;
85     To   : Boolean) is abstract;
86   --  Setter of Port::isBehavior.
87   --
88   --  Specifies whether requests arriving at this port are sent to the
89   --  classifier behavior of this classifier. Such ports are referred to as
90   --  behavior port. Any invocation of a behavioral feature targeted at a
91   --  behavior port will be handled by the instance of the owning classifier
92   --  itself, rather than by any instances that this classifier may contain.
93
94   not overriding function Get_Is_Conjugated
95    (Self : not null access constant UML_Port)
96       return Boolean is abstract;
97   --  Getter of Port::isConjugated.
98   --
99   --  Specifies the way that the provided and required interfaces are derived
100   --  from the Port’s Type. The default value is false.
101
102   not overriding procedure Set_Is_Conjugated
103    (Self : not null access UML_Port;
104     To   : Boolean) is abstract;
105   --  Setter of Port::isConjugated.
106   --
107   --  Specifies the way that the provided and required interfaces are derived
108   --  from the Port’s Type. The default value is false.
109
110   not overriding function Get_Is_Service
111    (Self : not null access constant UML_Port)
112       return Boolean is abstract;
113   --  Getter of Port::isService.
114   --
115   --  If true indicates that this port is used to provide the published
116   --  functionality of a classifier; if false, this port is used to implement
117   --  the classifier but is not part of the essential externally-visible
118   --  functionality of the classifier and can, therefore, be altered or
119   --  deleted along with the internal implementation of the classifier and
120   --  other properties that are considered part of its implementation.
121
122   not overriding procedure Set_Is_Service
123    (Self : not null access UML_Port;
124     To   : Boolean) is abstract;
125   --  Setter of Port::isService.
126   --
127   --  If true indicates that this port is used to provide the published
128   --  functionality of a classifier; if false, this port is used to implement
129   --  the classifier but is not part of the essential externally-visible
130   --  functionality of the classifier and can, therefore, be altered or
131   --  deleted along with the internal implementation of the classifier and
132   --  other properties that are considered part of its implementation.
133
134   not overriding function Get_Protocol
135    (Self : not null access constant UML_Port)
136       return AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access is abstract;
137   --  Getter of Port::protocol.
138   --
139   --  References an optional protocol state machine which describes valid
140   --  interactions at this interaction point.
141
142   not overriding procedure Set_Protocol
143    (Self : not null access UML_Port;
144     To   : AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access) is abstract;
145   --  Setter of Port::protocol.
146   --
147   --  References an optional protocol state machine which describes valid
148   --  interactions at this interaction point.
149
150   not overriding function Get_Provided
151    (Self : not null access constant UML_Port)
152       return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface is abstract;
153   --  Getter of Port::provided.
154   --
155   --  References the interfaces specifying the set of operations and
156   --  receptions that the classifier offers to its environment via this port,
157   --  and which it will handle either directly or by forwarding it to a part
158   --  of its internal structure. This association is derived according to the
159   --  value of isConjugated. If isConjugated is false, provided is derived as
160   --  the union of the sets of interfaces realized by the type of the port
161   --  and its supertypes, or directly from the type of the port if the port
162   --  is typed by an interface. If isConjugated is true, it is derived as the
163   --  union of the sets of interfaces used by the type of the port and its
164   --  supertypes.
165
166   not overriding function Get_Redefined_Port
167    (Self : not null access constant UML_Port)
168       return AMF.UML.Ports.Collections.Set_Of_UML_Port is abstract;
169   --  Getter of Port::redefinedPort.
170   --
171   --  A port may be redefined when its containing classifier is specialized.
172   --  The redefining port may have additional interfaces to those that are
173   --  associated with the redefined port or it may replace an interface by
174   --  one of its subtypes.
175
176   not overriding function Get_Required
177    (Self : not null access constant UML_Port)
178       return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface is abstract;
179   --  Getter of Port::required.
180   --
181   --  References the interfaces specifying the set of operations and
182   --  receptions that the classifier expects its environment to handle via
183   --  this port. This association is derived according to the value of
184   --  isConjugated. If isConjugated is false, required is derived as the
185   --  union of the sets of interfaces used by the type of the port and its
186   --  supertypes. If isConjugated is true, it is derived as the union of the
187   --  sets of interfaces realized by the type of the port and its supertypes,
188   --  or directly from the type of the port if the port is typed by an
189   --  interface.
190
191   not overriding function Provided
192    (Self : not null access constant UML_Port)
193       return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface is abstract;
194   --  Operation Port::provided.
195   --
196   --  Missing derivation for Port::/provided : Interface
197
198   not overriding function Required
199    (Self : not null access constant UML_Port)
200       return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface is abstract;
201   --  Operation Port::required.
202   --
203   --  Missing derivation for Port::/required : Interface
204
205end AMF.UML.Ports;
206