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: 3400 $ $Date: 2012-11-13 10:48:36 +0400 (Tue, 13 Nov 2012) $
43------------------------------------------------------------------------------
44--  This package contains conversion subprograms from different subclasses of
45--  elements into holders. They are required to simplify generated code,
46--  otherwise creation of intermediate object should be done in reflections
47--  module. Most probably this package can be removed for Ada2020.
48------------------------------------------------------------------------------
49with AMF.UML.Abstractions;
50with AMF.UML.Accept_Event_Actions;
51with AMF.UML.Actions;
52with AMF.UML.Activities;
53with AMF.UML.Activity_Groups;
54with AMF.UML.Activity_Nodes;
55with AMF.UML.Activity_Partitions;
56with AMF.UML.Artifacts;
57with AMF.UML.Association_Classes;
58with AMF.UML.Associations;
59with AMF.UML.Behaviored_Classifiers;
60with AMF.UML.Behavioral_Features;
61with AMF.UML.Behaviors;
62with AMF.UML.Call_Operation_Actions;
63with AMF.UML.Classifier_Template_Parameters;
64with AMF.UML.Classifiers;
65with AMF.UML.Classes;
66with AMF.UML.Collaboration_Uses;
67with AMF.UML.Collaborations;
68with AMF.UML.Combined_Fragments;
69with AMF.UML.Components;
70with AMF.UML.Connectable_Element_Template_Parameters;
71with AMF.UML.Connectable_Elements;
72with AMF.UML.Connectors;
73with AMF.UML.Constraints;
74with AMF.UML.Data_Types;
75with AMF.UML.Dependencies;
76with AMF.UML.Deployment_Targets;
77with AMF.UML.Deployments;
78with AMF.UML.Duration_Intervals;
79with AMF.UML.Durations;
80with AMF.UML.Elements;
81with AMF.UML.Enumeration_Literals;
82with AMF.UML.Enumerations;
83with AMF.UML.Events;
84with AMF.UML.Executable_Nodes;
85with AMF.UML.Execution_Specifications;
86with AMF.UML.Expansion_Regions;
87with AMF.UML.Extension_Ends;
88with AMF.UML.Input_Pins;
89with AMF.UML.Instance_Specifications;
90with AMF.UML.Interaction_Constraints;
91with AMF.UML.Interaction_Operands;
92with AMF.UML.Interactions;
93with AMF.UML.Interfaces;
94with AMF.UML.Interruptible_Activity_Regions;
95with AMF.UML.Intervals;
96with AMF.UML.Invocation_Actions;
97with AMF.UML.Lifelines;
98with AMF.UML.Literal_Specifications;
99with AMF.UML.Message_Ends;
100with AMF.UML.Messages;
101with AMF.UML.Models;
102with AMF.UML.Multiplicity_Elements;
103with AMF.UML.Named_Elements;
104with AMF.UML.Namespaces;
105with AMF.UML.Object_Flows;
106with AMF.UML.Object_Nodes;
107with AMF.UML.Occurrence_Specifications;
108with AMF.UML.Opaque_Actions;
109with AMF.UML.Opaque_Expressions;
110with AMF.UML.Operation_Template_Parameters;
111with AMF.UML.Operations;
112with AMF.UML.Output_Pins;
113with AMF.UML.Packageable_Elements;
114with AMF.UML.Packages;
115with AMF.UML.Parameterable_Elements;
116with AMF.UML.Parameters;
117with AMF.UML.Part_Decompositions;
118with AMF.UML.Ports;
119with AMF.UML.Profiles;
120with AMF.UML.Properties;
121with AMF.UML.Protocol_State_Machines;
122with AMF.UML.Read_Structural_Feature_Actions;
123with AMF.UML.Redefinable_Elements;
124with AMF.UML.Redefinable_Template_Signatures;
125with AMF.UML.Regions;
126with AMF.UML.Send_Object_Actions;
127with AMF.UML.Send_Signal_Actions;
128with AMF.UML.Signals;
129with AMF.UML.State_Machines;
130with AMF.UML.States;
131with AMF.UML.Stereotypes;
132with AMF.UML.String_Expressions;
133with AMF.UML.Structured_Activity_Nodes;
134with AMF.UML.Structured_Classifiers;
135with AMF.UML.Structural_Features;
136with AMF.UML.Template_Bindings;
137with AMF.UML.Template_Parameters;
138with AMF.UML.Template_Signatures;
139with AMF.UML.Templateable_Elements;
140with AMF.UML.Time_Events;
141with AMF.UML.Time_Expressions;
142with AMF.UML.Time_Intervals;
143with AMF.UML.Transitions;
144with AMF.UML.Triggers;
145with AMF.UML.Types;
146with AMF.UML.Usages;
147with AMF.UML.Use_Cases;
148with AMF.UML.Value_Specifications;
149with AMF.UML.Variables;
150with AMF.UML.Vertexs;
151with AMF.UML.Write_Structural_Feature_Actions;
152
153package AMF.Internals.Holders.UML_Holders is
154
155   function To_Holder
156    (Item : AMF.UML.Abstractions.UML_Abstraction_Access)
157       return League.Holders.Holder;
158
159   function To_Holder
160    (Item : AMF.UML.Accept_Event_Actions.UML_Accept_Event_Action_Access)
161       return League.Holders.Holder;
162
163   function To_Holder
164    (Item : AMF.UML.Actions.UML_Action_Access)
165       return League.Holders.Holder;
166
167   function To_Holder
168    (Item : AMF.UML.Activities.UML_Activity_Access)
169       return League.Holders.Holder;
170
171   function To_Holder
172    (Item : AMF.UML.Activity_Groups.UML_Activity_Group_Access)
173       return League.Holders.Holder;
174
175   function To_Holder
176    (Item : AMF.UML.Activity_Nodes.UML_Activity_Node_Access)
177       return League.Holders.Holder;
178
179   function To_Holder
180    (Item : AMF.UML.Activity_Partitions.UML_Activity_Partition_Access)
181       return League.Holders.Holder;
182
183   function To_Holder
184    (Item : AMF.UML.Artifacts.UML_Artifact_Access)
185       return League.Holders.Holder;
186
187   function To_Holder
188    (Item : AMF.UML.Association_Classes.UML_Association_Class_Access)
189       return League.Holders.Holder;
190
191   function To_Holder
192    (Item : AMF.UML.Associations.UML_Association_Access)
193       return League.Holders.Holder;
194
195   function To_Holder
196    (Item : AMF.UML.Behavioral_Features.UML_Behavioral_Feature_Access)
197       return League.Holders.Holder;
198
199   function To_Holder
200    (Item : AMF.UML.Behaviored_Classifiers.UML_Behaviored_Classifier_Access)
201       return League.Holders.Holder;
202
203   function To_Holder
204    (Item : AMF.UML.Behaviors.UML_Behavior_Access)
205       return League.Holders.Holder;
206
207   function To_Holder
208    (Item : AMF.UML.Call_Operation_Actions.UML_Call_Operation_Action_Access)
209       return League.Holders.Holder;
210
211   function To_Holder
212    (Item : AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access)
213       return League.Holders.Holder;
214
215   function To_Holder
216    (Item : AMF.UML.Classifiers.UML_Classifier_Access)
217       return League.Holders.Holder;
218
219   function To_Holder
220    (Item : AMF.UML.Classes.UML_Class_Access)
221       return League.Holders.Holder;
222
223   function To_Holder
224    (Item : AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access)
225       return League.Holders.Holder;
226
227   function To_Holder
228    (Item : AMF.UML.Collaborations.UML_Collaboration_Access)
229       return League.Holders.Holder;
230
231   function To_Holder
232    (Item : AMF.UML.Combined_Fragments.UML_Combined_Fragment_Access)
233       return League.Holders.Holder;
234
235   function To_Holder
236    (Item : AMF.UML.Components.UML_Component_Access)
237       return League.Holders.Holder;
238
239   function To_Holder
240    (Item : AMF.UML.Connectable_Element_Template_Parameters.UML_Connectable_Element_Template_Parameter_Access)
241       return League.Holders.Holder;
242
243   function To_Holder
244    (Item : AMF.UML.Connectable_Elements.UML_Connectable_Element_Access)
245       return League.Holders.Holder;
246
247   function To_Holder
248    (Item : AMF.UML.Connectors.UML_Connector_Access)
249       return League.Holders.Holder;
250
251   function To_Holder
252    (Item : AMF.UML.Constraints.UML_Constraint_Access)
253       return League.Holders.Holder;
254
255   function To_Holder
256    (Item : AMF.UML.Data_Types.UML_Data_Type_Access)
257       return League.Holders.Holder;
258
259   function To_Holder
260    (Item : AMF.UML.Dependencies.UML_Dependency_Access)
261       return League.Holders.Holder;
262
263   function To_Holder
264    (Item : AMF.UML.Deployment_Targets.UML_Deployment_Target_Access)
265       return League.Holders.Holder;
266
267   function To_Holder
268    (Item : AMF.UML.Deployments.UML_Deployment_Access)
269       return League.Holders.Holder;
270
271   function To_Holder
272    (Item : AMF.UML.Duration_Intervals.UML_Duration_Interval_Access)
273       return League.Holders.Holder;
274
275   function To_Holder
276    (Item : AMF.UML.Durations.UML_Duration_Access)
277       return League.Holders.Holder;
278
279   function To_Holder
280    (Item : AMF.UML.Elements.UML_Element_Access)
281       return League.Holders.Holder;
282
283   function To_Holder
284    (Item : AMF.UML.Enumeration_Literals.UML_Enumeration_Literal_Access)
285       return League.Holders.Holder;
286
287   function To_Holder
288    (Item : AMF.UML.Enumerations.UML_Enumeration_Access)
289       return League.Holders.Holder;
290
291   function To_Holder
292    (Item : AMF.UML.Events.UML_Event_Access)
293       return League.Holders.Holder;
294
295   function To_Holder
296    (Item : AMF.UML.Executable_Nodes.UML_Executable_Node_Access)
297       return League.Holders.Holder;
298
299   function To_Holder
300    (Item : AMF.UML.Execution_Specifications.UML_Execution_Specification_Access)
301       return League.Holders.Holder;
302
303   function To_Holder
304    (Item : AMF.UML.Expansion_Regions.UML_Expansion_Region_Access)
305       return League.Holders.Holder;
306
307   function To_Holder
308    (Item : AMF.UML.Extension_Ends.UML_Extension_End_Access)
309       return League.Holders.Holder;
310
311   function To_Holder
312    (Item : AMF.UML.Input_Pins.UML_Input_Pin_Access)
313       return League.Holders.Holder;
314
315   function To_Holder
316    (Item : AMF.UML.Instance_Specifications.UML_Instance_Specification_Access)
317       return League.Holders.Holder;
318
319   function To_Holder
320    (Item : AMF.UML.Interaction_Constraints.UML_Interaction_Constraint_Access)
321       return League.Holders.Holder;
322
323   function To_Holder
324    (Item : AMF.UML.Interaction_Operands.UML_Interaction_Operand_Access)
325       return League.Holders.Holder;
326
327   function To_Holder
328    (Item : AMF.UML.Interactions.UML_Interaction_Access)
329       return League.Holders.Holder;
330
331   function To_Holder
332    (Item : AMF.UML.Interfaces.UML_Interface_Access)
333       return League.Holders.Holder;
334
335   function To_Holder
336    (Item : AMF.UML.Interruptible_Activity_Regions.UML_Interruptible_Activity_Region_Access)
337       return League.Holders.Holder;
338
339   function To_Holder
340    (Item : AMF.UML.Intervals.UML_Interval_Access)
341       return League.Holders.Holder;
342
343   function To_Holder
344    (Item : AMF.UML.Invocation_Actions.UML_Invocation_Action_Access)
345       return League.Holders.Holder;
346
347   function To_Holder
348    (Item : AMF.UML.Lifelines.UML_Lifeline_Access)
349       return League.Holders.Holder;
350
351   function To_Holder
352    (Item : AMF.UML.Literal_Specifications.UML_Literal_Specification_Access)
353       return League.Holders.Holder;
354
355   function To_Holder
356    (Item : AMF.UML.Message_Ends.UML_Message_End_Access)
357       return League.Holders.Holder;
358
359   function To_Holder
360    (Item : AMF.UML.Messages.UML_Message_Access)
361       return League.Holders.Holder;
362
363   function To_Holder
364    (Item : AMF.UML.Models.UML_Model_Access)
365       return League.Holders.Holder;
366
367   function To_Holder
368    (Item : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access)
369       return League.Holders.Holder;
370
371   function To_Holder
372    (Item : AMF.UML.Named_Elements.UML_Named_Element_Access)
373       return League.Holders.Holder;
374
375   function To_Holder
376    (Item : AMF.UML.Namespaces.UML_Namespace_Access)
377       return League.Holders.Holder;
378
379   function To_Holder
380    (Item : AMF.UML.Object_Flows.UML_Object_Flow_Access)
381       return League.Holders.Holder;
382
383   function To_Holder
384    (Item : AMF.UML.Object_Nodes.UML_Object_Node_Access)
385       return League.Holders.Holder;
386
387   function To_Holder
388    (Item : AMF.UML.Occurrence_Specifications.UML_Occurrence_Specification_Access)
389       return League.Holders.Holder;
390
391   function To_Holder
392    (Item : AMF.UML.Opaque_Actions.UML_Opaque_Action_Access)
393       return League.Holders.Holder;
394
395   function To_Holder
396    (Item : AMF.UML.Opaque_Expressions.UML_Opaque_Expression_Access)
397       return League.Holders.Holder;
398
399   function To_Holder
400    (Item : AMF.UML.Operation_Template_Parameters.UML_Operation_Template_Parameter_Access)
401       return League.Holders.Holder;
402
403   function To_Holder
404    (Item : AMF.UML.Operations.UML_Operation_Access)
405       return League.Holders.Holder;
406
407   function To_Holder
408    (Item : AMF.UML.Output_Pins.UML_Output_Pin_Access)
409       return League.Holders.Holder;
410
411   function To_Holder
412    (Item : AMF.UML.Packageable_Elements.UML_Packageable_Element_Access)
413       return League.Holders.Holder;
414
415   function To_Holder
416    (Item : AMF.UML.Packages.UML_Package_Access)
417       return League.Holders.Holder;
418
419   function To_Holder
420    (Item : AMF.UML.Part_Decompositions.UML_Part_Decomposition_Access)
421       return League.Holders.Holder;
422
423   function To_Holder
424    (Item : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access)
425       return League.Holders.Holder;
426
427   function To_Holder
428    (Item : AMF.UML.Parameters.UML_Parameter_Access)
429       return League.Holders.Holder;
430
431   function To_Holder
432    (Item : AMF.UML.Ports.UML_Port_Access)
433       return League.Holders.Holder;
434
435   function To_Holder
436    (Item : AMF.UML.Profiles.UML_Profile_Access)
437       return League.Holders.Holder;
438
439   function To_Holder
440    (Item : AMF.UML.Properties.UML_Property_Access)
441       return League.Holders.Holder;
442
443   function To_Holder
444    (Item : AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access)
445       return League.Holders.Holder;
446
447   function To_Holder
448    (Item : AMF.UML.Read_Structural_Feature_Actions.UML_Read_Structural_Feature_Action_Access)
449       return League.Holders.Holder;
450
451   function To_Holder
452    (Item : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access)
453       return League.Holders.Holder;
454
455   function To_Holder
456    (Item : AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access)
457       return League.Holders.Holder;
458
459   function To_Holder
460    (Item : AMF.UML.Regions.UML_Region_Access)
461       return League.Holders.Holder;
462
463   function To_Holder
464    (Item : AMF.UML.Send_Object_Actions.UML_Send_Object_Action_Access)
465       return League.Holders.Holder;
466
467   function To_Holder
468    (Item : AMF.UML.Send_Signal_Actions.UML_Send_Signal_Action_Access)
469       return League.Holders.Holder;
470
471   function To_Holder
472    (Item : AMF.UML.Signals.UML_Signal_Access)
473       return League.Holders.Holder;
474
475   function To_Holder
476    (Item : AMF.UML.State_Machines.UML_State_Machine_Access)
477       return League.Holders.Holder;
478
479   function To_Holder
480    (Item : AMF.UML.States.UML_State_Access)
481       return League.Holders.Holder;
482
483   function To_Holder
484    (Item : AMF.UML.Stereotypes.UML_Stereotype_Access)
485       return League.Holders.Holder;
486
487   function To_Holder
488    (Item : AMF.UML.String_Expressions.UML_String_Expression_Access)
489       return League.Holders.Holder;
490
491   function To_Holder
492    (Item : AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access)
493       return League.Holders.Holder;
494
495   function To_Holder
496    (Item : AMF.UML.Structured_Classifiers.UML_Structured_Classifier_Access)
497       return League.Holders.Holder;
498
499   function To_Holder
500    (Item : AMF.UML.Structural_Features.UML_Structural_Feature_Access)
501       return League.Holders.Holder;
502
503   function To_Holder
504    (Item : AMF.UML.Template_Bindings.UML_Template_Binding_Access)
505       return League.Holders.Holder;
506
507   function To_Holder
508    (Item : AMF.UML.Template_Parameters.UML_Template_Parameter_Access)
509       return League.Holders.Holder;
510
511   function To_Holder
512    (Item : AMF.UML.Template_Signatures.UML_Template_Signature_Access)
513       return League.Holders.Holder;
514
515   function To_Holder
516    (Item : AMF.UML.Templateable_Elements.UML_Templateable_Element_Access)
517       return League.Holders.Holder;
518
519   function To_Holder
520    (Item : AMF.UML.Time_Intervals.UML_Time_Interval_Access)
521       return League.Holders.Holder;
522
523   function To_Holder
524    (Item : AMF.UML.Time_Events.UML_Time_Event_Access)
525       return League.Holders.Holder;
526
527   function To_Holder
528    (Item : AMF.UML.Time_Expressions.UML_Time_Expression_Access)
529       return League.Holders.Holder;
530
531   function To_Holder
532    (Item : AMF.UML.Transitions.UML_Transition_Access)
533       return League.Holders.Holder;
534
535   function To_Holder
536    (Item : AMF.UML.Triggers.UML_Trigger_Access)
537       return League.Holders.Holder;
538
539   function To_Holder
540    (Item : AMF.UML.Types.UML_Type_Access)
541       return League.Holders.Holder;
542
543   function To_Holder
544    (Item : AMF.UML.Usages.UML_Usage_Access)
545       return League.Holders.Holder;
546
547   function To_Holder
548    (Item : AMF.UML.Use_Cases.UML_Use_Case_Access)
549       return League.Holders.Holder;
550
551   function To_Holder
552    (Item : AMF.UML.Value_Specifications.UML_Value_Specification_Access)
553       return League.Holders.Holder;
554
555   function To_Holder
556    (Item : AMF.UML.Variables.UML_Variable_Access)
557       return League.Holders.Holder;
558
559   function To_Holder
560    (Item : AMF.UML.Vertexs.UML_Vertex_Access)
561       return League.Holders.Holder;
562
563   function To_Holder
564    (Item : AMF.UML.Write_Structural_Feature_Actions.UML_Write_Structural_Feature_Action_Access)
565       return League.Holders.Holder;
566
567end AMF.Internals.Holders.UML_Holders;
568