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: 3637 $ $Date: 2013-01-07 21:22:12 +0400 (Mon, 07 Jan 2013) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46with AMF.DC;
47with AMF.Elements;
48with AMF.UML;
49with AMF.UMLDI;
50with Matreshka.Internals.Strings;
51
52package AMF.Internals.Tables.UML_Types is
53
54   pragma Preelaborate;
55
56   type Element_Kinds is
57    (E_None,
58     E_Standard_Profile_L2_Auxiliary,
59     E_Standard_Profile_L2_Call,
60     E_Standard_Profile_L2_Create,
61     E_Standard_Profile_L2_Derive,
62     E_Standard_Profile_L2_Destroy,
63     E_Standard_Profile_L2_Document,
64     E_Standard_Profile_L2_Entity,
65     E_Standard_Profile_L2_Executable,
66     E_Standard_Profile_L2_Focus,
67     E_Standard_Profile_L2_Framework,
68     E_Standard_Profile_L2_Implement,
69     E_Standard_Profile_L2_Implementation_Class,
70     E_Standard_Profile_L2_Instantiate,
71     E_Standard_Profile_L2_Library,
72     E_Standard_Profile_L2_Metaclass,
73     E_Standard_Profile_L2_Model_Library,
74     E_Standard_Profile_L2_Process,
75     E_Standard_Profile_L2_Realization,
76     E_Standard_Profile_L2_Refine,
77     E_Standard_Profile_L2_Responsibility,
78     E_Standard_Profile_L2_Script,
79     E_Standard_Profile_L2_Send,
80     E_Standard_Profile_L2_Service,
81     E_Standard_Profile_L2_Source,
82     E_Standard_Profile_L2_Specification,
83     E_Standard_Profile_L2_Subsystem,
84     E_Standard_Profile_L2_Trace,
85     E_Standard_Profile_L2_Type,
86     E_Standard_Profile_L2_Utility,
87     E_Standard_Profile_L3_Build_Component,
88     E_Standard_Profile_L3_Metamodel,
89     E_Standard_Profile_L3_System_Model,
90     E_UML_Abstraction,
91     E_UML_Accept_Call_Action,
92     E_UML_Accept_Event_Action,
93     E_UML_Action_Execution_Specification,
94     E_UML_Action_Input_Pin,
95     E_UML_Activity,
96     E_UML_Activity_Final_Node,
97     E_UML_Activity_Parameter_Node,
98     E_UML_Activity_Partition,
99     E_UML_Actor,
100     E_UML_Add_Structural_Feature_Value_Action,
101     E_UML_Add_Variable_Value_Action,
102     E_UML_Any_Receive_Event,
103     E_UML_Artifact,
104     E_UML_Association,
105     E_UML_Association_Class,
106     E_UML_Behavior_Execution_Specification,
107     E_UML_Broadcast_Signal_Action,
108     E_UML_Call_Behavior_Action,
109     E_UML_Call_Event,
110     E_UML_Call_Operation_Action,
111     E_UML_Central_Buffer_Node,
112     E_UML_Change_Event,
113     E_UML_Class,
114     E_UML_Classifier_Template_Parameter,
115     E_UML_Clause,
116     E_UML_Clear_Association_Action,
117     E_UML_Clear_Structural_Feature_Action,
118     E_UML_Clear_Variable_Action,
119     E_UML_Collaboration,
120     E_UML_Collaboration_Use,
121     E_UML_Combined_Fragment,
122     E_UML_Comment,
123     E_UML_Communication_Path,
124     E_UML_Component,
125     E_UML_Component_Realization,
126     E_UML_Conditional_Node,
127     E_UML_Connectable_Element_Template_Parameter,
128     E_UML_Connection_Point_Reference,
129     E_UML_Connector,
130     E_UML_Connector_End,
131     E_UML_Consider_Ignore_Fragment,
132     E_UML_Constraint,
133     E_UML_Continuation,
134     E_UML_Control_Flow,
135     E_UML_Create_Link_Action,
136     E_UML_Create_Link_Object_Action,
137     E_UML_Create_Object_Action,
138     E_UMLDI_UML_Activity_Diagram,
139     E_UMLDI_UML_Association_End_Label,
140     E_UMLDI_UML_Association_Or_Connector_Or_Link_Shape,
141     E_UMLDI_UML_Class_Diagram,
142     E_UMLDI_UML_Classifier_Shape,
143     E_UMLDI_UML_Compartment,
144     E_UMLDI_UML_Compartmentable_Shape,
145     E_UMLDI_UML_Component_Diagram,
146     E_UMLDI_UML_Composite_Structure_Diagram,
147     E_UMLDI_UML_Deployment_Diagram,
148     E_UMLDI_UML_Edge,
149     E_UMLDI_UML_Interaction_Diagram,
150     E_UMLDI_UML_Interaction_Table_Label,
151     E_UMLDI_UML_Keyword_Label,
152     E_UMLDI_UML_Label,
153     E_UMLDI_UML_Multiplicity_Label,
154     E_UMLDI_UML_Name_Label,
155     E_UMLDI_UML_Object_Diagram,
156     E_UMLDI_UML_Package_Diagram,
157     E_UMLDI_UML_Profile_Diagram,
158     E_UMLDI_UML_Redefines_Label,
159     E_UMLDI_UML_Shape,
160     E_UMLDI_UML_State_Machine_Diagram,
161     E_UMLDI_UML_State_Shape,
162     E_UMLDI_UML_Stereotype_Property_Value_Label,
163     E_UMLDI_UML_Style,
164     E_UMLDI_UML_Typed_Element_Label,
165     E_UMLDI_UML_Use_Case_Diagram,
166     E_UML_Data_Store_Node,
167     E_UML_Data_Type,
168     E_UML_Decision_Node,
169     E_UML_Dependency,
170     E_UML_Deployment,
171     E_UML_Deployment_Specification,
172     E_UML_Destroy_Link_Action,
173     E_UML_Destroy_Object_Action,
174     E_UML_Destruction_Occurrence_Specification,
175     E_UML_Device,
176     E_UML_Duration,
177     E_UML_Duration_Constraint,
178     E_UML_Duration_Interval,
179     E_UML_Duration_Observation,
180     E_UML_Element_Import,
181     E_UML_Enumeration,
182     E_UML_Enumeration_Literal,
183     E_UML_Exception_Handler,
184     E_UML_Execution_Environment,
185     E_UML_Execution_Occurrence_Specification,
186     E_UML_Expansion_Node,
187     E_UML_Expansion_Region,
188     E_UML_Expression,
189     E_UML_Extend,
190     E_UML_Extension,
191     E_UML_Extension_End,
192     E_UML_Extension_Point,
193     E_UML_Final_State,
194     E_UML_Flow_Final_Node,
195     E_UML_Fork_Node,
196     E_UML_Function_Behavior,
197     E_UML_Gate,
198     E_UML_General_Ordering,
199     E_UML_Generalization,
200     E_UML_Generalization_Set,
201     E_UML_Image,
202     E_UML_Include,
203     E_UML_Information_Flow,
204     E_UML_Information_Item,
205     E_UML_Initial_Node,
206     E_UML_Input_Pin,
207     E_UML_Instance_Specification,
208     E_UML_Instance_Value,
209     E_UML_Interaction,
210     E_UML_Interaction_Constraint,
211     E_UML_Interaction_Operand,
212     E_UML_Interaction_Use,
213     E_UML_Interface,
214     E_UML_Interface_Realization,
215     E_UML_Interruptible_Activity_Region,
216     E_UML_Interval,
217     E_UML_Interval_Constraint,
218     E_UML_Join_Node,
219     E_UML_Lifeline,
220     E_UML_Link_End_Creation_Data,
221     E_UML_Link_End_Data,
222     E_UML_Link_End_Destruction_Data,
223     E_UML_Literal_Boolean,
224     E_UML_Literal_Integer,
225     E_UML_Literal_Null,
226     E_UML_Literal_Real,
227     E_UML_Literal_String,
228     E_UML_Literal_Unlimited_Natural,
229     E_UML_Loop_Node,
230     E_UML_Manifestation,
231     E_UML_Merge_Node,
232     E_UML_Message,
233     E_UML_Message_Occurrence_Specification,
234     E_UML_Model,
235     E_UML_Node,
236     E_UML_Object_Flow,
237     E_UML_Occurrence_Specification,
238     E_UML_Opaque_Action,
239     E_UML_Opaque_Behavior,
240     E_UML_Opaque_Expression,
241     E_UML_Operation,
242     E_UML_Operation_Template_Parameter,
243     E_UML_Output_Pin,
244     E_UML_Package,
245     E_UML_Package_Import,
246     E_UML_Package_Merge,
247     E_UML_Parameter,
248     E_UML_Parameter_Set,
249     E_UML_Part_Decomposition,
250     E_UML_Port,
251     E_UML_Primitive_Type,
252     E_UML_Profile,
253     E_UML_Profile_Application,
254     E_UML_Property,
255     E_UML_Protocol_Conformance,
256     E_UML_Protocol_State_Machine,
257     E_UML_Protocol_Transition,
258     E_UML_Pseudostate,
259     E_UML_Qualifier_Value,
260     E_UML_Raise_Exception_Action,
261     E_UML_Read_Extent_Action,
262     E_UML_Read_Is_Classified_Object_Action,
263     E_UML_Read_Link_Action,
264     E_UML_Read_Link_Object_End_Action,
265     E_UML_Read_Link_Object_End_Qualifier_Action,
266     E_UML_Read_Self_Action,
267     E_UML_Read_Structural_Feature_Action,
268     E_UML_Read_Variable_Action,
269     E_UML_Realization,
270     E_UML_Reception,
271     E_UML_Reclassify_Object_Action,
272     E_UML_Redefinable_Template_Signature,
273     E_UML_Reduce_Action,
274     E_UML_Region,
275     E_UML_Remove_Structural_Feature_Value_Action,
276     E_UML_Remove_Variable_Value_Action,
277     E_UML_Reply_Action,
278     E_UML_Send_Object_Action,
279     E_UML_Send_Signal_Action,
280     E_UML_Sequence_Node,
281     E_UML_Signal,
282     E_UML_Signal_Event,
283     E_UML_Slot,
284     E_UML_Start_Classifier_Behavior_Action,
285     E_UML_Start_Object_Behavior_Action,
286     E_UML_State,
287     E_UML_State_Invariant,
288     E_UML_State_Machine,
289     E_UML_Stereotype,
290     E_UML_String_Expression,
291     E_UML_Structured_Activity_Node,
292     E_UML_Substitution,
293     E_UML_Template_Binding,
294     E_UML_Template_Parameter,
295     E_UML_Template_Parameter_Substitution,
296     E_UML_Template_Signature,
297     E_UML_Test_Identity_Action,
298     E_UML_Time_Constraint,
299     E_UML_Time_Event,
300     E_UML_Time_Expression,
301     E_UML_Time_Interval,
302     E_UML_Time_Observation,
303     E_UML_Transition,
304     E_UML_Trigger,
305     E_UML_Unmarshall_Action,
306     E_UML_Usage,
307     E_UML_Use_Case,
308     E_UML_Value_Pin,
309     E_UML_Value_Specification_Action,
310     E_UML_Variable);
311
312   type Member_Kinds is
313    (M_None,
314     M_Aggregation_Kind,
315     M_Boolean,
316     M_Call_Concurrency_Kind,
317     M_Collection_Of_Boolean,
318     M_Collection_Of_Element,
319     M_Collection_Of_Point,
320     M_Collection_Of_String,
321     M_Connector_Kind,
322     M_Element,
323     M_Expansion_Kind,
324     M_Holder_Of_Boolean,
325     M_Holder_Of_Bounds,
326     M_Holder_Of_Integer,
327     M_Holder_Of_Real,
328     M_Holder_Of_UML_Inherited_State_Border_Kind,
329     M_Holder_Of_Unlimited_Natural,
330     M_Integer,
331     M_Interaction_Operator_Kind,
332     M_Message_Kind,
333     M_Message_Sort,
334     M_Object_Node_Ordering_Kind,
335     M_Parameter_Direction_Kind,
336     M_Parameter_Effect_Kind_Holder,
337     M_Pseudostate_Kind,
338     M_Real,
339     M_String,
340     M_Transition_Kind,
341     M_UML_Association_Or_Connector_Or_Link_Shape_Kind,
342     M_UML_Interaction_Diagram_Kind,
343     M_UML_Interaction_Table_Label_Kind,
344     M_UML_Navigability_Notation_Kind,
345     M_Unlimited_Natural,
346     M_Visibility_Kind,
347     M_Visibility_Kind_Holder);
348
349   type Member_Record (Kind : Member_Kinds := M_None) is record
350      case Kind is
351         when M_None =>
352            null;
353
354         when M_Aggregation_Kind =>
355            Aggregation_Kind_Value : AMF.UML.UML_Aggregation_Kind;
356
357         when M_Boolean =>
358            Boolean_Value : Boolean;
359
360         when M_Call_Concurrency_Kind =>
361            Call_Concurrency_Kind_Value : AMF.UML.UML_Call_Concurrency_Kind;
362
363         when M_Collection_Of_Boolean =>
364            Boolean_Collection : AMF.Internals.AMF_Collection_Of_Boolean;
365
366         when M_Collection_Of_Element =>
367            Collection : AMF.Internals.AMF_Collection_Of_Element;
368
369         when M_Collection_Of_Point =>
370            Point_Collection : AMF.DC.Sequence_Of_DC_Point;
371
372         when M_Collection_Of_String =>
373            String_Collection : AMF.Internals.AMF_Collection_Of_String;
374
375         when M_Connector_Kind =>
376            Connector_Kind_Value : AMF.UML.UML_Connector_Kind;
377
378         when M_Element =>
379            Link : AMF.Internals.AMF_Link;
380
381         when M_Expansion_Kind =>
382            Expansion_Kind_Value : AMF.UML.UML_Expansion_Kind;
383
384         when M_Holder_Of_Boolean =>
385            Boolean_Holder : AMF.Optional_Boolean;
386
387         when M_Holder_Of_Bounds =>
388            Bounds_Holder : AMF.DC.Optional_DC_Bounds;
389
390         when M_Holder_Of_Integer =>
391            Integer_Holder : AMF.Optional_Integer;
392
393         when M_Holder_Of_Real =>
394            Real_Holder : AMF.Optional_Real;
395
396         when M_Holder_Of_UML_Inherited_State_Border_Kind =>
397            UML_Inherited_State_Border_Kind_Holder : AMF.UMLDI.Optional_UMLDI_UML_Inherited_State_Border_Kind;
398
399         when M_Holder_Of_Unlimited_Natural =>
400            Unlimited_Natural_Holder : AMF.Optional_Unlimited_Natural;
401
402         when M_Integer =>
403            Integer_Value : Integer;
404
405         when M_Interaction_Operator_Kind =>
406            Interaction_Operator_Kind_Value : AMF.UML.UML_Interaction_Operator_Kind;
407
408         when M_Message_Kind =>
409            Message_Kind_Value : AMF.UML.UML_Message_Kind;
410
411         when M_Message_Sort =>
412            Message_Sort_Value : AMF.UML.UML_Message_Sort;
413
414         when M_Object_Node_Ordering_Kind =>
415            Object_Node_Ordering_Kind_Value : AMF.UML.UML_Object_Node_Ordering_Kind;
416
417         when M_Parameter_Direction_Kind =>
418            Parameter_Direction_Kind_Value : AMF.UML.UML_Parameter_Direction_Kind;
419
420         when M_Parameter_Effect_Kind_Holder =>
421            Parameter_Effect_Kind_Holder : AMF.UML.Optional_UML_Parameter_Effect_Kind;
422
423         when M_Pseudostate_Kind =>
424            Pseudostate_Kind_Value : AMF.UML.UML_Pseudostate_Kind;
425
426         when M_Real =>
427            Real_Value : AMF.Real;
428
429         when M_String =>
430            String_Value : Matreshka.Internals.Strings.Shared_String_Access;
431
432         when M_Transition_Kind =>
433            Transition_Kind_Value : AMF.UML.UML_Transition_Kind;
434
435         when M_UML_Association_Or_Connector_Or_Link_Shape_Kind =>
436            UML_Association_Or_Connector_Or_Link_Shape_Kind_Value : AMF.UMLDI.UMLDI_UML_Association_Or_Connector_Or_Link_Shape_Kind;
437
438         when M_UML_Interaction_Diagram_Kind =>
439            UML_Interaction_Diagram_Kind_Value : AMF.UMLDI.UMLDI_UML_Interaction_Diagram_Kind;
440
441         when M_UML_Interaction_Table_Label_Kind =>
442            UML_Interaction_Table_Label_Kind_Value : AMF.UMLDI.UMLDI_UML_Interaction_Table_Label_Kind;
443
444         when M_UML_Navigability_Notation_Kind =>
445            UML_Navigability_Notation_Kind_Value : AMF.UMLDI.UMLDI_UML_Navigability_Notation_Kind;
446
447         when M_Unlimited_Natural =>
448            Unlimited_Natural_Value : AMF.Unlimited_Natural;
449
450         when M_Visibility_Kind =>
451            Visibility_Kind_Value : AMF.UML.UML_Visibility_Kind;
452
453         when M_Visibility_Kind_Holder =>
454            Visibility_Kind_Holder : AMF.UML.Optional_UML_Visibility_Kind;
455      end case;
456   end record;
457
458   type Member_Array is array (Natural range 0 .. 37) of Member_Record;
459
460   type Element_Record is record
461      Kind   : Element_Kinds := E_None;
462      Extent : AMF.Internals.AMF_Extent;
463      Proxy  : AMF.Elements.Element_Access;
464      Member : Member_Array;
465   end record;
466
467end AMF.Internals.Tables.UML_Types;
468