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: 2937 $ $Date: 2012-05-01 21:07:27 +0400 (Tue, 01 May 2012) $
43------------------------------------------------------------------------------
44with AMF.Elements;
45with AMF.Internals.Element_Collections;
46with AMF.Internals.Helpers;
47with AMF.Internals.Tables.UML_Attributes;
48with AMF.Visitors.UML_Iterators;
49with AMF.Visitors.UML_Visitors;
50with League.Strings.Internals;
51with Matreshka.Internals.Strings;
52
53package body AMF.Internals.UML_Conditional_Nodes is
54
55   -------------------
56   -- Enter_Element --
57   -------------------
58
59   overriding procedure Enter_Element
60    (Self    : not null access constant UML_Conditional_Node_Proxy;
61     Visitor : in out AMF.Visitors.Abstract_Visitor'Class;
62     Control : in out AMF.Visitors.Traverse_Control) is
63   begin
64      if Visitor in AMF.Visitors.UML_Visitors.UML_Visitor'Class then
65         AMF.Visitors.UML_Visitors.UML_Visitor'Class
66          (Visitor).Enter_Conditional_Node
67            (AMF.UML.Conditional_Nodes.UML_Conditional_Node_Access (Self),
68           Control);
69      end if;
70   end Enter_Element;
71
72   -------------------
73   -- Leave_Element --
74   -------------------
75
76   overriding procedure Leave_Element
77    (Self    : not null access constant UML_Conditional_Node_Proxy;
78     Visitor : in out AMF.Visitors.Abstract_Visitor'Class;
79     Control : in out AMF.Visitors.Traverse_Control) is
80   begin
81      if Visitor in AMF.Visitors.UML_Visitors.UML_Visitor'Class then
82         AMF.Visitors.UML_Visitors.UML_Visitor'Class
83          (Visitor).Leave_Conditional_Node
84            (AMF.UML.Conditional_Nodes.UML_Conditional_Node_Access (Self),
85           Control);
86      end if;
87   end Leave_Element;
88
89   -------------------
90   -- Visit_Element --
91   -------------------
92
93   overriding procedure Visit_Element
94    (Self     : not null access constant UML_Conditional_Node_Proxy;
95     Iterator : in out AMF.Visitors.Abstract_Iterator'Class;
96     Visitor  : in out AMF.Visitors.Abstract_Visitor'Class;
97     Control  : in out AMF.Visitors.Traverse_Control) is
98   begin
99      if Iterator in AMF.Visitors.UML_Iterators.UML_Iterator'Class then
100         AMF.Visitors.UML_Iterators.UML_Iterator'Class
101          (Iterator).Visit_Conditional_Node
102            (Visitor,
103             AMF.UML.Conditional_Nodes.UML_Conditional_Node_Access (Self),
104             Control);
105      end if;
106   end Visit_Element;
107
108   ----------------
109   -- Get_Clause --
110   ----------------
111
112   overriding function Get_Clause
113    (Self : not null access constant UML_Conditional_Node_Proxy)
114       return AMF.UML.Clauses.Collections.Set_Of_UML_Clause is
115   begin
116      return
117        AMF.UML.Clauses.Collections.Wrap
118         (AMF.Internals.Element_Collections.Wrap
119           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Clause
120             (Self.Element)));
121   end Get_Clause;
122
123   --------------------
124   -- Get_Is_Assured --
125   --------------------
126
127   overriding function Get_Is_Assured
128    (Self : not null access constant UML_Conditional_Node_Proxy)
129       return Boolean is
130   begin
131      return
132        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Assured
133         (Self.Element);
134   end Get_Is_Assured;
135
136   --------------------
137   -- Set_Is_Assured --
138   --------------------
139
140   overriding procedure Set_Is_Assured
141    (Self : not null access UML_Conditional_Node_Proxy;
142     To   : Boolean) is
143   begin
144      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Assured
145       (Self.Element, To);
146   end Set_Is_Assured;
147
148   ------------------------
149   -- Get_Is_Determinate --
150   ------------------------
151
152   overriding function Get_Is_Determinate
153    (Self : not null access constant UML_Conditional_Node_Proxy)
154       return Boolean is
155   begin
156      return
157        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Determinate
158         (Self.Element);
159   end Get_Is_Determinate;
160
161   ------------------------
162   -- Set_Is_Determinate --
163   ------------------------
164
165   overriding procedure Set_Is_Determinate
166    (Self : not null access UML_Conditional_Node_Proxy;
167     To   : Boolean) is
168   begin
169      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Determinate
170       (Self.Element, To);
171   end Set_Is_Determinate;
172
173   ----------------
174   -- Get_Result --
175   ----------------
176
177   overriding function Get_Result
178    (Self : not null access constant UML_Conditional_Node_Proxy)
179       return AMF.UML.Output_Pins.Collections.Ordered_Set_Of_UML_Output_Pin is
180   begin
181      return
182        AMF.UML.Output_Pins.Collections.Wrap
183         (AMF.Internals.Element_Collections.Wrap
184           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Result
185             (Self.Element)));
186   end Get_Result;
187
188   ------------------
189   -- Get_Activity --
190   ------------------
191
192   overriding function Get_Activity
193    (Self : not null access constant UML_Conditional_Node_Proxy)
194       return AMF.UML.Activities.UML_Activity_Access is
195   begin
196      return
197        AMF.UML.Activities.UML_Activity_Access
198         (AMF.Internals.Helpers.To_Element
199           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Activity
200             (Self.Element)));
201   end Get_Activity;
202
203   ------------------
204   -- Set_Activity --
205   ------------------
206
207   overriding procedure Set_Activity
208    (Self : not null access UML_Conditional_Node_Proxy;
209     To   : AMF.UML.Activities.UML_Activity_Access) is
210   begin
211      AMF.Internals.Tables.UML_Attributes.Internal_Set_Activity
212       (Self.Element,
213        AMF.Internals.Helpers.To_Element
214         (AMF.Elements.Element_Access (To)));
215   end Set_Activity;
216
217   --------------
218   -- Get_Edge --
219   --------------
220
221   overriding function Get_Edge
222    (Self : not null access constant UML_Conditional_Node_Proxy)
223       return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge is
224   begin
225      return
226        AMF.UML.Activity_Edges.Collections.Wrap
227         (AMF.Internals.Element_Collections.Wrap
228           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Edge
229             (Self.Element)));
230   end Get_Edge;
231
232   ----------------------
233   -- Get_Must_Isolate --
234   ----------------------
235
236   overriding function Get_Must_Isolate
237    (Self : not null access constant UML_Conditional_Node_Proxy)
238       return Boolean is
239   begin
240      return
241        AMF.Internals.Tables.UML_Attributes.Internal_Get_Must_Isolate
242         (Self.Element);
243   end Get_Must_Isolate;
244
245   ----------------------
246   -- Set_Must_Isolate --
247   ----------------------
248
249   overriding procedure Set_Must_Isolate
250    (Self : not null access UML_Conditional_Node_Proxy;
251     To   : Boolean) is
252   begin
253      AMF.Internals.Tables.UML_Attributes.Internal_Set_Must_Isolate
254       (Self.Element, To);
255   end Set_Must_Isolate;
256
257   --------------
258   -- Get_Node --
259   --------------
260
261   overriding function Get_Node
262    (Self : not null access constant UML_Conditional_Node_Proxy)
263       return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node is
264   begin
265      return
266        AMF.UML.Activity_Nodes.Collections.Wrap
267         (AMF.Internals.Element_Collections.Wrap
268           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Node
269             (Self.Element)));
270   end Get_Node;
271
272   -------------------------------
273   -- Get_Structured_Node_Input --
274   -------------------------------
275
276   overriding function Get_Structured_Node_Input
277    (Self : not null access constant UML_Conditional_Node_Proxy)
278       return AMF.UML.Input_Pins.Collections.Set_Of_UML_Input_Pin is
279   begin
280      return
281        AMF.UML.Input_Pins.Collections.Wrap
282         (AMF.Internals.Element_Collections.Wrap
283           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Structured_Node_Input
284             (Self.Element)));
285   end Get_Structured_Node_Input;
286
287   --------------------------------
288   -- Get_Structured_Node_Output --
289   --------------------------------
290
291   overriding function Get_Structured_Node_Output
292    (Self : not null access constant UML_Conditional_Node_Proxy)
293       return AMF.UML.Output_Pins.Collections.Set_Of_UML_Output_Pin is
294   begin
295      return
296        AMF.UML.Output_Pins.Collections.Wrap
297         (AMF.Internals.Element_Collections.Wrap
298           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Structured_Node_Output
299             (Self.Element)));
300   end Get_Structured_Node_Output;
301
302   ------------------
303   -- Get_Variable --
304   ------------------
305
306   overriding function Get_Variable
307    (Self : not null access constant UML_Conditional_Node_Proxy)
308       return AMF.UML.Variables.Collections.Set_Of_UML_Variable is
309   begin
310      return
311        AMF.UML.Variables.Collections.Wrap
312         (AMF.Internals.Element_Collections.Wrap
313           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Variable
314             (Self.Element)));
315   end Get_Variable;
316
317   ------------------------
318   -- Get_Element_Import --
319   ------------------------
320
321   overriding function Get_Element_Import
322    (Self : not null access constant UML_Conditional_Node_Proxy)
323       return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import is
324   begin
325      return
326        AMF.UML.Element_Imports.Collections.Wrap
327         (AMF.Internals.Element_Collections.Wrap
328           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Element_Import
329             (Self.Element)));
330   end Get_Element_Import;
331
332   -------------------------
333   -- Get_Imported_Member --
334   -------------------------
335
336   overriding function Get_Imported_Member
337    (Self : not null access constant UML_Conditional_Node_Proxy)
338       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
339   begin
340      return
341        AMF.UML.Packageable_Elements.Collections.Wrap
342         (AMF.Internals.Element_Collections.Wrap
343           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Imported_Member
344             (Self.Element)));
345   end Get_Imported_Member;
346
347   ----------------
348   -- Get_Member --
349   ----------------
350
351   overriding function Get_Member
352    (Self : not null access constant UML_Conditional_Node_Proxy)
353       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
354   begin
355      return
356        AMF.UML.Named_Elements.Collections.Wrap
357         (AMF.Internals.Element_Collections.Wrap
358           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Member
359             (Self.Element)));
360   end Get_Member;
361
362   ----------------------
363   -- Get_Owned_Member --
364   ----------------------
365
366   overriding function Get_Owned_Member
367    (Self : not null access constant UML_Conditional_Node_Proxy)
368       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
369   begin
370      return
371        AMF.UML.Named_Elements.Collections.Wrap
372         (AMF.Internals.Element_Collections.Wrap
373           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Member
374             (Self.Element)));
375   end Get_Owned_Member;
376
377   --------------------
378   -- Get_Owned_Rule --
379   --------------------
380
381   overriding function Get_Owned_Rule
382    (Self : not null access constant UML_Conditional_Node_Proxy)
383       return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint is
384   begin
385      return
386        AMF.UML.Constraints.Collections.Wrap
387         (AMF.Internals.Element_Collections.Wrap
388           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Rule
389             (Self.Element)));
390   end Get_Owned_Rule;
391
392   ------------------------
393   -- Get_Package_Import --
394   ------------------------
395
396   overriding function Get_Package_Import
397    (Self : not null access constant UML_Conditional_Node_Proxy)
398       return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import is
399   begin
400      return
401        AMF.UML.Package_Imports.Collections.Wrap
402         (AMF.Internals.Element_Collections.Wrap
403           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Package_Import
404             (Self.Element)));
405   end Get_Package_Import;
406
407   ---------------------------
408   -- Get_Client_Dependency --
409   ---------------------------
410
411   overriding function Get_Client_Dependency
412    (Self : not null access constant UML_Conditional_Node_Proxy)
413       return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency is
414   begin
415      return
416        AMF.UML.Dependencies.Collections.Wrap
417         (AMF.Internals.Element_Collections.Wrap
418           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Client_Dependency
419             (Self.Element)));
420   end Get_Client_Dependency;
421
422   -------------------------
423   -- Get_Name_Expression --
424   -------------------------
425
426   overriding function Get_Name_Expression
427    (Self : not null access constant UML_Conditional_Node_Proxy)
428       return AMF.UML.String_Expressions.UML_String_Expression_Access is
429   begin
430      return
431        AMF.UML.String_Expressions.UML_String_Expression_Access
432         (AMF.Internals.Helpers.To_Element
433           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Name_Expression
434             (Self.Element)));
435   end Get_Name_Expression;
436
437   -------------------------
438   -- Set_Name_Expression --
439   -------------------------
440
441   overriding procedure Set_Name_Expression
442    (Self : not null access UML_Conditional_Node_Proxy;
443     To   : AMF.UML.String_Expressions.UML_String_Expression_Access) is
444   begin
445      AMF.Internals.Tables.UML_Attributes.Internal_Set_Name_Expression
446       (Self.Element,
447        AMF.Internals.Helpers.To_Element
448         (AMF.Elements.Element_Access (To)));
449   end Set_Name_Expression;
450
451   -------------------
452   -- Get_Namespace --
453   -------------------
454
455   overriding function Get_Namespace
456    (Self : not null access constant UML_Conditional_Node_Proxy)
457       return AMF.UML.Namespaces.UML_Namespace_Access is
458   begin
459      return
460        AMF.UML.Namespaces.UML_Namespace_Access
461         (AMF.Internals.Helpers.To_Element
462           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Namespace
463             (Self.Element)));
464   end Get_Namespace;
465
466   ------------------------
467   -- Get_Qualified_Name --
468   ------------------------
469
470   overriding function Get_Qualified_Name
471    (Self : not null access constant UML_Conditional_Node_Proxy)
472       return AMF.Optional_String is
473   begin
474      declare
475         use type Matreshka.Internals.Strings.Shared_String_Access;
476
477         Aux : constant Matreshka.Internals.Strings.Shared_String_Access
478           := AMF.Internals.Tables.UML_Attributes.Internal_Get_Qualified_Name (Self.Element);
479
480      begin
481         if Aux = null then
482            return (Is_Empty => True);
483
484         else
485            return (False, League.Strings.Internals.Create (Aux));
486         end if;
487      end;
488   end Get_Qualified_Name;
489
490   ------------------------
491   -- Get_Contained_Edge --
492   ------------------------
493
494   overriding function Get_Contained_Edge
495    (Self : not null access constant UML_Conditional_Node_Proxy)
496       return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge is
497   begin
498      return
499        AMF.UML.Activity_Edges.Collections.Wrap
500         (AMF.Internals.Element_Collections.Wrap
501           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Contained_Edge
502             (Self.Element)));
503   end Get_Contained_Edge;
504
505   ------------------------
506   -- Get_Contained_Node --
507   ------------------------
508
509   overriding function Get_Contained_Node
510    (Self : not null access constant UML_Conditional_Node_Proxy)
511       return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node is
512   begin
513      return
514        AMF.UML.Activity_Nodes.Collections.Wrap
515         (AMF.Internals.Element_Collections.Wrap
516           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Contained_Node
517             (Self.Element)));
518   end Get_Contained_Node;
519
520   ---------------------
521   -- Get_In_Activity --
522   ---------------------
523
524   overriding function Get_In_Activity
525    (Self : not null access constant UML_Conditional_Node_Proxy)
526       return AMF.UML.Activities.UML_Activity_Access is
527   begin
528      return
529        AMF.UML.Activities.UML_Activity_Access
530         (AMF.Internals.Helpers.To_Element
531           (AMF.Internals.Tables.UML_Attributes.Internal_Get_In_Activity
532             (Self.Element)));
533   end Get_In_Activity;
534
535   ---------------------
536   -- Set_In_Activity --
537   ---------------------
538
539   overriding procedure Set_In_Activity
540    (Self : not null access UML_Conditional_Node_Proxy;
541     To   : AMF.UML.Activities.UML_Activity_Access) is
542   begin
543      AMF.Internals.Tables.UML_Attributes.Internal_Set_In_Activity
544       (Self.Element,
545        AMF.Internals.Helpers.To_Element
546         (AMF.Elements.Element_Access (To)));
547   end Set_In_Activity;
548
549   ------------------
550   -- Get_Subgroup --
551   ------------------
552
553   overriding function Get_Subgroup
554    (Self : not null access constant UML_Conditional_Node_Proxy)
555       return AMF.UML.Activity_Groups.Collections.Set_Of_UML_Activity_Group is
556   begin
557      return
558        AMF.UML.Activity_Groups.Collections.Wrap
559         (AMF.Internals.Element_Collections.Wrap
560           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Subgroup
561             (Self.Element)));
562   end Get_Subgroup;
563
564   ---------------------
565   -- Get_Super_Group --
566   ---------------------
567
568   overriding function Get_Super_Group
569    (Self : not null access constant UML_Conditional_Node_Proxy)
570       return AMF.UML.Activity_Groups.UML_Activity_Group_Access is
571   begin
572      return
573        AMF.UML.Activity_Groups.UML_Activity_Group_Access
574         (AMF.Internals.Helpers.To_Element
575           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Super_Group
576             (Self.Element)));
577   end Get_Super_Group;
578
579   -----------------
580   -- Get_Context --
581   -----------------
582
583   overriding function Get_Context
584    (Self : not null access constant UML_Conditional_Node_Proxy)
585       return AMF.UML.Classifiers.UML_Classifier_Access is
586   begin
587      return
588        AMF.UML.Classifiers.UML_Classifier_Access
589         (AMF.Internals.Helpers.To_Element
590           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Context
591             (Self.Element)));
592   end Get_Context;
593
594   ---------------
595   -- Get_Input --
596   ---------------
597
598   overriding function Get_Input
599    (Self : not null access constant UML_Conditional_Node_Proxy)
600       return AMF.UML.Input_Pins.Collections.Ordered_Set_Of_UML_Input_Pin is
601   begin
602      return
603        AMF.UML.Input_Pins.Collections.Wrap
604         (AMF.Internals.Element_Collections.Wrap
605           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Input
606             (Self.Element)));
607   end Get_Input;
608
609   ------------------------------
610   -- Get_Is_Locally_Reentrant --
611   ------------------------------
612
613   overriding function Get_Is_Locally_Reentrant
614    (Self : not null access constant UML_Conditional_Node_Proxy)
615       return Boolean is
616   begin
617      return
618        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Locally_Reentrant
619         (Self.Element);
620   end Get_Is_Locally_Reentrant;
621
622   ------------------------------
623   -- Set_Is_Locally_Reentrant --
624   ------------------------------
625
626   overriding procedure Set_Is_Locally_Reentrant
627    (Self : not null access UML_Conditional_Node_Proxy;
628     To   : Boolean) is
629   begin
630      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Locally_Reentrant
631       (Self.Element, To);
632   end Set_Is_Locally_Reentrant;
633
634   -----------------------------
635   -- Get_Local_Postcondition --
636   -----------------------------
637
638   overriding function Get_Local_Postcondition
639    (Self : not null access constant UML_Conditional_Node_Proxy)
640       return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint is
641   begin
642      return
643        AMF.UML.Constraints.Collections.Wrap
644         (AMF.Internals.Element_Collections.Wrap
645           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Local_Postcondition
646             (Self.Element)));
647   end Get_Local_Postcondition;
648
649   ----------------------------
650   -- Get_Local_Precondition --
651   ----------------------------
652
653   overriding function Get_Local_Precondition
654    (Self : not null access constant UML_Conditional_Node_Proxy)
655       return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint is
656   begin
657      return
658        AMF.UML.Constraints.Collections.Wrap
659         (AMF.Internals.Element_Collections.Wrap
660           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Local_Precondition
661             (Self.Element)));
662   end Get_Local_Precondition;
663
664   ----------------
665   -- Get_Output --
666   ----------------
667
668   overriding function Get_Output
669    (Self : not null access constant UML_Conditional_Node_Proxy)
670       return AMF.UML.Output_Pins.Collections.Ordered_Set_Of_UML_Output_Pin is
671   begin
672      return
673        AMF.UML.Output_Pins.Collections.Wrap
674         (AMF.Internals.Element_Collections.Wrap
675           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Output
676             (Self.Element)));
677   end Get_Output;
678
679   -----------------
680   -- Get_Handler --
681   -----------------
682
683   overriding function Get_Handler
684    (Self : not null access constant UML_Conditional_Node_Proxy)
685       return AMF.UML.Exception_Handlers.Collections.Set_Of_UML_Exception_Handler is
686   begin
687      return
688        AMF.UML.Exception_Handlers.Collections.Wrap
689         (AMF.Internals.Element_Collections.Wrap
690           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Handler
691             (Self.Element)));
692   end Get_Handler;
693
694   ------------------
695   -- Get_In_Group --
696   ------------------
697
698   overriding function Get_In_Group
699    (Self : not null access constant UML_Conditional_Node_Proxy)
700       return AMF.UML.Activity_Groups.Collections.Set_Of_UML_Activity_Group is
701   begin
702      return
703        AMF.UML.Activity_Groups.Collections.Wrap
704         (AMF.Internals.Element_Collections.Wrap
705           (AMF.Internals.Tables.UML_Attributes.Internal_Get_In_Group
706             (Self.Element)));
707   end Get_In_Group;
708
709   ---------------------------------
710   -- Get_In_Interruptible_Region --
711   ---------------------------------
712
713   overriding function Get_In_Interruptible_Region
714    (Self : not null access constant UML_Conditional_Node_Proxy)
715       return AMF.UML.Interruptible_Activity_Regions.Collections.Set_Of_UML_Interruptible_Activity_Region is
716   begin
717      return
718        AMF.UML.Interruptible_Activity_Regions.Collections.Wrap
719         (AMF.Internals.Element_Collections.Wrap
720           (AMF.Internals.Tables.UML_Attributes.Internal_Get_In_Interruptible_Region
721             (Self.Element)));
722   end Get_In_Interruptible_Region;
723
724   ----------------------
725   -- Get_In_Partition --
726   ----------------------
727
728   overriding function Get_In_Partition
729    (Self : not null access constant UML_Conditional_Node_Proxy)
730       return AMF.UML.Activity_Partitions.Collections.Set_Of_UML_Activity_Partition is
731   begin
732      return
733        AMF.UML.Activity_Partitions.Collections.Wrap
734         (AMF.Internals.Element_Collections.Wrap
735           (AMF.Internals.Tables.UML_Attributes.Internal_Get_In_Partition
736             (Self.Element)));
737   end Get_In_Partition;
738
739   ----------------------------
740   -- Get_In_Structured_Node --
741   ----------------------------
742
743   overriding function Get_In_Structured_Node
744    (Self : not null access constant UML_Conditional_Node_Proxy)
745       return AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access is
746   begin
747      return
748        AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access
749         (AMF.Internals.Helpers.To_Element
750           (AMF.Internals.Tables.UML_Attributes.Internal_Get_In_Structured_Node
751             (Self.Element)));
752   end Get_In_Structured_Node;
753
754   ----------------------------
755   -- Set_In_Structured_Node --
756   ----------------------------
757
758   overriding procedure Set_In_Structured_Node
759    (Self : not null access UML_Conditional_Node_Proxy;
760     To   : AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access) is
761   begin
762      AMF.Internals.Tables.UML_Attributes.Internal_Set_In_Structured_Node
763       (Self.Element,
764        AMF.Internals.Helpers.To_Element
765         (AMF.Elements.Element_Access (To)));
766   end Set_In_Structured_Node;
767
768   ------------------
769   -- Get_Incoming --
770   ------------------
771
772   overriding function Get_Incoming
773    (Self : not null access constant UML_Conditional_Node_Proxy)
774       return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge is
775   begin
776      return
777        AMF.UML.Activity_Edges.Collections.Wrap
778         (AMF.Internals.Element_Collections.Wrap
779           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Incoming
780             (Self.Element)));
781   end Get_Incoming;
782
783   ------------------
784   -- Get_Outgoing --
785   ------------------
786
787   overriding function Get_Outgoing
788    (Self : not null access constant UML_Conditional_Node_Proxy)
789       return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge is
790   begin
791      return
792        AMF.UML.Activity_Edges.Collections.Wrap
793         (AMF.Internals.Element_Collections.Wrap
794           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Outgoing
795             (Self.Element)));
796   end Get_Outgoing;
797
798   ------------------------
799   -- Get_Redefined_Node --
800   ------------------------
801
802   overriding function Get_Redefined_Node
803    (Self : not null access constant UML_Conditional_Node_Proxy)
804       return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node is
805   begin
806      return
807        AMF.UML.Activity_Nodes.Collections.Wrap
808         (AMF.Internals.Element_Collections.Wrap
809           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefined_Node
810             (Self.Element)));
811   end Get_Redefined_Node;
812
813   -----------------
814   -- Get_Is_Leaf --
815   -----------------
816
817   overriding function Get_Is_Leaf
818    (Self : not null access constant UML_Conditional_Node_Proxy)
819       return Boolean is
820   begin
821      return
822        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Leaf
823         (Self.Element);
824   end Get_Is_Leaf;
825
826   -----------------
827   -- Set_Is_Leaf --
828   -----------------
829
830   overriding procedure Set_Is_Leaf
831    (Self : not null access UML_Conditional_Node_Proxy;
832     To   : Boolean) is
833   begin
834      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Leaf
835       (Self.Element, To);
836   end Set_Is_Leaf;
837
838   ---------------------------
839   -- Get_Redefined_Element --
840   ---------------------------
841
842   overriding function Get_Redefined_Element
843    (Self : not null access constant UML_Conditional_Node_Proxy)
844       return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element is
845   begin
846      return
847        AMF.UML.Redefinable_Elements.Collections.Wrap
848         (AMF.Internals.Element_Collections.Wrap
849           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefined_Element
850             (Self.Element)));
851   end Get_Redefined_Element;
852
853   ------------------------------
854   -- Get_Redefinition_Context --
855   ------------------------------
856
857   overriding function Get_Redefinition_Context
858    (Self : not null access constant UML_Conditional_Node_Proxy)
859       return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier is
860   begin
861      return
862        AMF.UML.Classifiers.Collections.Wrap
863         (AMF.Internals.Element_Collections.Wrap
864           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefinition_Context
865             (Self.Element)));
866   end Get_Redefinition_Context;
867
868   ------------------------
869   -- Exclude_Collisions --
870   ------------------------
871
872   overriding function Exclude_Collisions
873    (Self : not null access constant UML_Conditional_Node_Proxy;
874     Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element)
875       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
876   begin
877      --  Generated stub: replace with real body!
878      pragma Compile_Time_Warning (Standard.True, "Exclude_Collisions unimplemented");
879      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Exclude_Collisions";
880      return Exclude_Collisions (Self, Imps);
881   end Exclude_Collisions;
882
883   -------------------------
884   -- Get_Names_Of_Member --
885   -------------------------
886
887   overriding function Get_Names_Of_Member
888    (Self : not null access constant UML_Conditional_Node_Proxy;
889     Element : AMF.UML.Named_Elements.UML_Named_Element_Access)
890       return AMF.String_Collections.Set_Of_String is
891   begin
892      --  Generated stub: replace with real body!
893      pragma Compile_Time_Warning (Standard.True, "Get_Names_Of_Member unimplemented");
894      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Get_Names_Of_Member";
895      return Get_Names_Of_Member (Self, Element);
896   end Get_Names_Of_Member;
897
898   --------------------
899   -- Import_Members --
900   --------------------
901
902   overriding function Import_Members
903    (Self : not null access constant UML_Conditional_Node_Proxy;
904     Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element)
905       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
906   begin
907      --  Generated stub: replace with real body!
908      pragma Compile_Time_Warning (Standard.True, "Import_Members unimplemented");
909      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Import_Members";
910      return Import_Members (Self, Imps);
911   end Import_Members;
912
913   ---------------------
914   -- Imported_Member --
915   ---------------------
916
917   overriding function Imported_Member
918    (Self : not null access constant UML_Conditional_Node_Proxy)
919       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
920   begin
921      --  Generated stub: replace with real body!
922      pragma Compile_Time_Warning (Standard.True, "Imported_Member unimplemented");
923      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Imported_Member";
924      return Imported_Member (Self);
925   end Imported_Member;
926
927   ---------------------------------
928   -- Members_Are_Distinguishable --
929   ---------------------------------
930
931   overriding function Members_Are_Distinguishable
932    (Self : not null access constant UML_Conditional_Node_Proxy)
933       return Boolean is
934   begin
935      --  Generated stub: replace with real body!
936      pragma Compile_Time_Warning (Standard.True, "Members_Are_Distinguishable unimplemented");
937      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Members_Are_Distinguishable";
938      return Members_Are_Distinguishable (Self);
939   end Members_Are_Distinguishable;
940
941   ------------------
942   -- Owned_Member --
943   ------------------
944
945   overriding function Owned_Member
946    (Self : not null access constant UML_Conditional_Node_Proxy)
947       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
948   begin
949      --  Generated stub: replace with real body!
950      pragma Compile_Time_Warning (Standard.True, "Owned_Member unimplemented");
951      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Owned_Member";
952      return Owned_Member (Self);
953   end Owned_Member;
954
955   -------------------------
956   -- All_Owning_Packages --
957   -------------------------
958
959   overriding function All_Owning_Packages
960    (Self : not null access constant UML_Conditional_Node_Proxy)
961       return AMF.UML.Packages.Collections.Set_Of_UML_Package is
962   begin
963      --  Generated stub: replace with real body!
964      pragma Compile_Time_Warning (Standard.True, "All_Owning_Packages unimplemented");
965      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.All_Owning_Packages";
966      return All_Owning_Packages (Self);
967   end All_Owning_Packages;
968
969   -----------------------------
970   -- Is_Distinguishable_From --
971   -----------------------------
972
973   overriding function Is_Distinguishable_From
974    (Self : not null access constant UML_Conditional_Node_Proxy;
975     N : AMF.UML.Named_Elements.UML_Named_Element_Access;
976     Ns : AMF.UML.Namespaces.UML_Namespace_Access)
977       return Boolean is
978   begin
979      --  Generated stub: replace with real body!
980      pragma Compile_Time_Warning (Standard.True, "Is_Distinguishable_From unimplemented");
981      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Is_Distinguishable_From";
982      return Is_Distinguishable_From (Self, N, Ns);
983   end Is_Distinguishable_From;
984
985   ---------------
986   -- Namespace --
987   ---------------
988
989   overriding function Namespace
990    (Self : not null access constant UML_Conditional_Node_Proxy)
991       return AMF.UML.Namespaces.UML_Namespace_Access is
992   begin
993      --  Generated stub: replace with real body!
994      pragma Compile_Time_Warning (Standard.True, "Namespace unimplemented");
995      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Namespace";
996      return Namespace (Self);
997   end Namespace;
998
999   -------------
1000   -- Context --
1001   -------------
1002
1003   overriding function Context
1004    (Self : not null access constant UML_Conditional_Node_Proxy)
1005       return AMF.UML.Classifiers.UML_Classifier_Access is
1006   begin
1007      --  Generated stub: replace with real body!
1008      pragma Compile_Time_Warning (Standard.True, "Context unimplemented");
1009      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Context";
1010      return Context (Self);
1011   end Context;
1012
1013   ------------------------
1014   -- Is_Consistent_With --
1015   ------------------------
1016
1017   overriding function Is_Consistent_With
1018    (Self : not null access constant UML_Conditional_Node_Proxy;
1019     Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access)
1020       return Boolean is
1021   begin
1022      --  Generated stub: replace with real body!
1023      pragma Compile_Time_Warning (Standard.True, "Is_Consistent_With unimplemented");
1024      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Is_Consistent_With";
1025      return Is_Consistent_With (Self, Redefinee);
1026   end Is_Consistent_With;
1027
1028   -----------------------------------
1029   -- Is_Redefinition_Context_Valid --
1030   -----------------------------------
1031
1032   overriding function Is_Redefinition_Context_Valid
1033    (Self : not null access constant UML_Conditional_Node_Proxy;
1034     Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access)
1035       return Boolean is
1036   begin
1037      --  Generated stub: replace with real body!
1038      pragma Compile_Time_Warning (Standard.True, "Is_Redefinition_Context_Valid unimplemented");
1039      raise Program_Error with "Unimplemented procedure UML_Conditional_Node_Proxy.Is_Redefinition_Context_Valid";
1040      return Is_Redefinition_Context_Valid (Self, Redefined);
1041   end Is_Redefinition_Context_Valid;
1042
1043end AMF.Internals.UML_Conditional_Nodes;
1044