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: 2802 $ $Date: 2012-04-06 21:45:28 +0400 (Fri, 06 Apr 2012) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46with AMF.UML.Holders.Aggregation_Kinds;
47with AMF.UML.Holders.Call_Concurrency_Kinds;
48with AMF.UML.Holders.Connector_Kinds;
49with AMF.UML.Holders.Expansion_Kinds;
50with AMF.UML.Holders.Interaction_Operator_Kinds;
51with AMF.UML.Holders.Message_Kinds;
52with AMF.UML.Holders.Message_Sorts;
53with AMF.UML.Holders.Object_Node_Ordering_Kinds;
54with AMF.UML.Holders.Parameter_Direction_Kinds;
55with AMF.UML.Holders.Parameter_Effect_Kinds;
56with AMF.UML.Holders.Pseudostate_Kinds;
57with AMF.UML.Holders.Transition_Kinds;
58with AMF.UML.Holders.Visibility_Kinds;
59
60package body AMF.UML.Holders is
61
62   -------------
63   -- Element --
64   -------------
65
66   function Element
67    (Holder : League.Holders.Holder)
68       return AMF.UML.Optional_UML_Aggregation_Kind is
69   begin
70      if not League.Holders.Has_Tag
71              (Holder, AMF.UML.Holders.Aggregation_Kinds.Value_Tag)
72      then
73         raise Constraint_Error;
74      end if;
75
76      if League.Holders.Is_Empty (Holder) then
77         return (Is_Empty => True);
78
79      else
80         return (False, AMF.UML.Holders.Aggregation_Kinds.Element (Holder));
81      end if;
82   end Element;
83
84   -------------
85   -- Element --
86   -------------
87
88   function Element
89    (Holder : League.Holders.Holder)
90       return AMF.UML.Optional_UML_Call_Concurrency_Kind is
91   begin
92      if not League.Holders.Has_Tag
93              (Holder, AMF.UML.Holders.Call_Concurrency_Kinds.Value_Tag)
94      then
95         raise Constraint_Error;
96      end if;
97
98      if League.Holders.Is_Empty (Holder) then
99         return (Is_Empty => True);
100
101      else
102         return (False, AMF.UML.Holders.Call_Concurrency_Kinds.Element (Holder));
103      end if;
104   end Element;
105
106   -------------
107   -- Element --
108   -------------
109
110   function Element
111    (Holder : League.Holders.Holder)
112       return AMF.UML.Optional_UML_Connector_Kind is
113   begin
114      if not League.Holders.Has_Tag
115              (Holder, AMF.UML.Holders.Connector_Kinds.Value_Tag)
116      then
117         raise Constraint_Error;
118      end if;
119
120      if League.Holders.Is_Empty (Holder) then
121         return (Is_Empty => True);
122
123      else
124         return (False, AMF.UML.Holders.Connector_Kinds.Element (Holder));
125      end if;
126   end Element;
127
128   -------------
129   -- Element --
130   -------------
131
132   function Element
133    (Holder : League.Holders.Holder)
134       return AMF.UML.Optional_UML_Expansion_Kind is
135   begin
136      if not League.Holders.Has_Tag
137              (Holder, AMF.UML.Holders.Expansion_Kinds.Value_Tag)
138      then
139         raise Constraint_Error;
140      end if;
141
142      if League.Holders.Is_Empty (Holder) then
143         return (Is_Empty => True);
144
145      else
146         return (False, AMF.UML.Holders.Expansion_Kinds.Element (Holder));
147      end if;
148   end Element;
149
150   -------------
151   -- Element --
152   -------------
153
154   function Element
155    (Holder : League.Holders.Holder)
156       return AMF.UML.Optional_UML_Interaction_Operator_Kind is
157   begin
158      if not League.Holders.Has_Tag
159              (Holder, AMF.UML.Holders.Interaction_Operator_Kinds.Value_Tag)
160      then
161         raise Constraint_Error;
162      end if;
163
164      if League.Holders.Is_Empty (Holder) then
165         return (Is_Empty => True);
166
167      else
168         return (False, AMF.UML.Holders.Interaction_Operator_Kinds.Element (Holder));
169      end if;
170   end Element;
171
172   -------------
173   -- Element --
174   -------------
175
176   function Element
177    (Holder : League.Holders.Holder)
178       return AMF.UML.Optional_UML_Message_Kind is
179   begin
180      if not League.Holders.Has_Tag
181              (Holder, AMF.UML.Holders.Message_Kinds.Value_Tag)
182      then
183         raise Constraint_Error;
184      end if;
185
186      if League.Holders.Is_Empty (Holder) then
187         return (Is_Empty => True);
188
189      else
190         return (False, AMF.UML.Holders.Message_Kinds.Element (Holder));
191      end if;
192   end Element;
193
194   -------------
195   -- Element --
196   -------------
197
198   function Element
199    (Holder : League.Holders.Holder)
200       return AMF.UML.Optional_UML_Message_Sort is
201   begin
202      if not League.Holders.Has_Tag
203              (Holder, AMF.UML.Holders.Message_Sorts.Value_Tag)
204      then
205         raise Constraint_Error;
206      end if;
207
208      if League.Holders.Is_Empty (Holder) then
209         return (Is_Empty => True);
210
211      else
212         return (False, AMF.UML.Holders.Message_Sorts.Element (Holder));
213      end if;
214   end Element;
215
216   -------------
217   -- Element --
218   -------------
219
220   function Element
221    (Holder : League.Holders.Holder)
222       return AMF.UML.Optional_UML_Object_Node_Ordering_Kind is
223   begin
224      if not League.Holders.Has_Tag
225              (Holder, AMF.UML.Holders.Object_Node_Ordering_Kinds.Value_Tag)
226      then
227         raise Constraint_Error;
228      end if;
229
230      if League.Holders.Is_Empty (Holder) then
231         return (Is_Empty => True);
232
233      else
234         return (False, AMF.UML.Holders.Object_Node_Ordering_Kinds.Element (Holder));
235      end if;
236   end Element;
237
238   -------------
239   -- Element --
240   -------------
241
242   function Element
243    (Holder : League.Holders.Holder)
244       return AMF.UML.Optional_UML_Parameter_Direction_Kind is
245   begin
246      if not League.Holders.Has_Tag
247              (Holder, AMF.UML.Holders.Parameter_Direction_Kinds.Value_Tag)
248      then
249         raise Constraint_Error;
250      end if;
251
252      if League.Holders.Is_Empty (Holder) then
253         return (Is_Empty => True);
254
255      else
256         return (False, AMF.UML.Holders.Parameter_Direction_Kinds.Element (Holder));
257      end if;
258   end Element;
259
260   -------------
261   -- Element --
262   -------------
263
264   function Element
265    (Holder : League.Holders.Holder)
266       return AMF.UML.Optional_UML_Parameter_Effect_Kind is
267   begin
268      if not League.Holders.Has_Tag
269              (Holder, AMF.UML.Holders.Parameter_Effect_Kinds.Value_Tag)
270      then
271         raise Constraint_Error;
272      end if;
273
274      if League.Holders.Is_Empty (Holder) then
275         return (Is_Empty => True);
276
277      else
278         return (False, AMF.UML.Holders.Parameter_Effect_Kinds.Element (Holder));
279      end if;
280   end Element;
281
282   -------------
283   -- Element --
284   -------------
285
286   function Element
287    (Holder : League.Holders.Holder)
288       return AMF.UML.Optional_UML_Pseudostate_Kind is
289   begin
290      if not League.Holders.Has_Tag
291              (Holder, AMF.UML.Holders.Pseudostate_Kinds.Value_Tag)
292      then
293         raise Constraint_Error;
294      end if;
295
296      if League.Holders.Is_Empty (Holder) then
297         return (Is_Empty => True);
298
299      else
300         return (False, AMF.UML.Holders.Pseudostate_Kinds.Element (Holder));
301      end if;
302   end Element;
303
304   -------------
305   -- Element --
306   -------------
307
308   function Element
309    (Holder : League.Holders.Holder)
310       return AMF.UML.Optional_UML_Transition_Kind is
311   begin
312      if not League.Holders.Has_Tag
313              (Holder, AMF.UML.Holders.Transition_Kinds.Value_Tag)
314      then
315         raise Constraint_Error;
316      end if;
317
318      if League.Holders.Is_Empty (Holder) then
319         return (Is_Empty => True);
320
321      else
322         return (False, AMF.UML.Holders.Transition_Kinds.Element (Holder));
323      end if;
324   end Element;
325
326   -------------
327   -- Element --
328   -------------
329
330   function Element
331    (Holder : League.Holders.Holder)
332       return AMF.UML.Optional_UML_Visibility_Kind is
333   begin
334      if not League.Holders.Has_Tag
335              (Holder, AMF.UML.Holders.Visibility_Kinds.Value_Tag)
336      then
337         raise Constraint_Error;
338      end if;
339
340      if League.Holders.Is_Empty (Holder) then
341         return (Is_Empty => True);
342
343      else
344         return (False, AMF.UML.Holders.Visibility_Kinds.Element (Holder));
345      end if;
346   end Element;
347
348   ---------------
349   -- To_Holder --
350   ---------------
351
352   function To_Holder
353    (Element : AMF.UML.Optional_UML_Aggregation_Kind)
354       return League.Holders.Holder is
355   begin
356      return Result : League.Holders.Holder do
357         League.Holders.Set_Tag
358          (Result, AMF.UML.Holders.Aggregation_Kinds.Value_Tag);
359
360         if not Element.Is_Empty then
361            AMF.UML.Holders.Aggregation_Kinds.Replace_Element
362             (Result, Element.Value);
363         end if;
364      end return;
365   end To_Holder;
366
367   ---------------
368   -- To_Holder --
369   ---------------
370
371   function To_Holder
372    (Element : AMF.UML.Optional_UML_Call_Concurrency_Kind)
373       return League.Holders.Holder is
374   begin
375      return Result : League.Holders.Holder do
376         League.Holders.Set_Tag
377          (Result, AMF.UML.Holders.Call_Concurrency_Kinds.Value_Tag);
378
379         if not Element.Is_Empty then
380            AMF.UML.Holders.Call_Concurrency_Kinds.Replace_Element
381             (Result, Element.Value);
382         end if;
383      end return;
384   end To_Holder;
385
386   ---------------
387   -- To_Holder --
388   ---------------
389
390   function To_Holder
391    (Element : AMF.UML.Optional_UML_Connector_Kind)
392       return League.Holders.Holder is
393   begin
394      return Result : League.Holders.Holder do
395         League.Holders.Set_Tag
396          (Result, AMF.UML.Holders.Connector_Kinds.Value_Tag);
397
398         if not Element.Is_Empty then
399            AMF.UML.Holders.Connector_Kinds.Replace_Element
400             (Result, Element.Value);
401         end if;
402      end return;
403   end To_Holder;
404
405   ---------------
406   -- To_Holder --
407   ---------------
408
409   function To_Holder
410    (Element : AMF.UML.Optional_UML_Expansion_Kind)
411       return League.Holders.Holder is
412   begin
413      return Result : League.Holders.Holder do
414         League.Holders.Set_Tag
415          (Result, AMF.UML.Holders.Expansion_Kinds.Value_Tag);
416
417         if not Element.Is_Empty then
418            AMF.UML.Holders.Expansion_Kinds.Replace_Element
419             (Result, Element.Value);
420         end if;
421      end return;
422   end To_Holder;
423
424   ---------------
425   -- To_Holder --
426   ---------------
427
428   function To_Holder
429    (Element : AMF.UML.Optional_UML_Interaction_Operator_Kind)
430       return League.Holders.Holder is
431   begin
432      return Result : League.Holders.Holder do
433         League.Holders.Set_Tag
434          (Result, AMF.UML.Holders.Interaction_Operator_Kinds.Value_Tag);
435
436         if not Element.Is_Empty then
437            AMF.UML.Holders.Interaction_Operator_Kinds.Replace_Element
438             (Result, Element.Value);
439         end if;
440      end return;
441   end To_Holder;
442
443   ---------------
444   -- To_Holder --
445   ---------------
446
447   function To_Holder
448    (Element : AMF.UML.Optional_UML_Message_Kind)
449       return League.Holders.Holder is
450   begin
451      return Result : League.Holders.Holder do
452         League.Holders.Set_Tag
453          (Result, AMF.UML.Holders.Message_Kinds.Value_Tag);
454
455         if not Element.Is_Empty then
456            AMF.UML.Holders.Message_Kinds.Replace_Element
457             (Result, Element.Value);
458         end if;
459      end return;
460   end To_Holder;
461
462   ---------------
463   -- To_Holder --
464   ---------------
465
466   function To_Holder
467    (Element : AMF.UML.Optional_UML_Message_Sort)
468       return League.Holders.Holder is
469   begin
470      return Result : League.Holders.Holder do
471         League.Holders.Set_Tag
472          (Result, AMF.UML.Holders.Message_Sorts.Value_Tag);
473
474         if not Element.Is_Empty then
475            AMF.UML.Holders.Message_Sorts.Replace_Element
476             (Result, Element.Value);
477         end if;
478      end return;
479   end To_Holder;
480
481   ---------------
482   -- To_Holder --
483   ---------------
484
485   function To_Holder
486    (Element : AMF.UML.Optional_UML_Object_Node_Ordering_Kind)
487       return League.Holders.Holder is
488   begin
489      return Result : League.Holders.Holder do
490         League.Holders.Set_Tag
491          (Result, AMF.UML.Holders.Object_Node_Ordering_Kinds.Value_Tag);
492
493         if not Element.Is_Empty then
494            AMF.UML.Holders.Object_Node_Ordering_Kinds.Replace_Element
495             (Result, Element.Value);
496         end if;
497      end return;
498   end To_Holder;
499
500   ---------------
501   -- To_Holder --
502   ---------------
503
504   function To_Holder
505    (Element : AMF.UML.Optional_UML_Parameter_Direction_Kind)
506       return League.Holders.Holder is
507   begin
508      return Result : League.Holders.Holder do
509         League.Holders.Set_Tag
510          (Result, AMF.UML.Holders.Parameter_Direction_Kinds.Value_Tag);
511
512         if not Element.Is_Empty then
513            AMF.UML.Holders.Parameter_Direction_Kinds.Replace_Element
514             (Result, Element.Value);
515         end if;
516      end return;
517   end To_Holder;
518
519   ---------------
520   -- To_Holder --
521   ---------------
522
523   function To_Holder
524    (Element : AMF.UML.Optional_UML_Parameter_Effect_Kind)
525       return League.Holders.Holder is
526   begin
527      return Result : League.Holders.Holder do
528         League.Holders.Set_Tag
529          (Result, AMF.UML.Holders.Parameter_Effect_Kinds.Value_Tag);
530
531         if not Element.Is_Empty then
532            AMF.UML.Holders.Parameter_Effect_Kinds.Replace_Element
533             (Result, Element.Value);
534         end if;
535      end return;
536   end To_Holder;
537
538   ---------------
539   -- To_Holder --
540   ---------------
541
542   function To_Holder
543    (Element : AMF.UML.Optional_UML_Pseudostate_Kind)
544       return League.Holders.Holder is
545   begin
546      return Result : League.Holders.Holder do
547         League.Holders.Set_Tag
548          (Result, AMF.UML.Holders.Pseudostate_Kinds.Value_Tag);
549
550         if not Element.Is_Empty then
551            AMF.UML.Holders.Pseudostate_Kinds.Replace_Element
552             (Result, Element.Value);
553         end if;
554      end return;
555   end To_Holder;
556
557   ---------------
558   -- To_Holder --
559   ---------------
560
561   function To_Holder
562    (Element : AMF.UML.Optional_UML_Transition_Kind)
563       return League.Holders.Holder is
564   begin
565      return Result : League.Holders.Holder do
566         League.Holders.Set_Tag
567          (Result, AMF.UML.Holders.Transition_Kinds.Value_Tag);
568
569         if not Element.Is_Empty then
570            AMF.UML.Holders.Transition_Kinds.Replace_Element
571             (Result, Element.Value);
572         end if;
573      end return;
574   end To_Holder;
575
576   ---------------
577   -- To_Holder --
578   ---------------
579
580   function To_Holder
581    (Element : AMF.UML.Optional_UML_Visibility_Kind)
582       return League.Holders.Holder is
583   begin
584      return Result : League.Holders.Holder do
585         League.Holders.Set_Tag
586          (Result, AMF.UML.Holders.Visibility_Kinds.Value_Tag);
587
588         if not Element.Is_Empty then
589            AMF.UML.Holders.Visibility_Kinds.Replace_Element
590             (Result, Element.Value);
591         end if;
592      end return;
593   end To_Holder;
594
595end AMF.UML.Holders;
596