1------------------------------------------------------------------------------
2--                                                                          --
3--                            Matreshka Project                             --
4--                                                                          --
5--                          Ada Modeling Framework                          --
6--                                                                          --
7--                        Runtime Library Component                         --
8--                                                                          --
9------------------------------------------------------------------------------
10--                                                                          --
11-- Copyright © 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: 3436 $ $Date: 2012-11-14 10:14:34 +0400 (Wed, 14 Nov 2012) $
43------------------------------------------------------------------------------
44with AMF.Elements;
45with AMF.Internals.Element_Collections;
46with AMF.Internals.Helpers;
47with AMF.Internals.Tables.UML_Attributes;
48with AMF.Visitors.UMLDI_Iterators;
49with AMF.Visitors.UMLDI_Visitors;
50with League.Strings.Internals;
51with Matreshka.Internals.Strings;
52
53package body AMF.Internals.UMLDI_UML_Profile_Diagrams is
54
55   -----------------
56   -- Get_Heading --
57   -----------------
58
59   overriding function Get_Heading
60    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
61       return AMF.UMLDI.UML_Labels.UMLDI_UML_Label_Access is
62   begin
63      return
64        AMF.UMLDI.UML_Labels.UMLDI_UML_Label_Access
65         (AMF.Internals.Helpers.To_Element
66           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Heading
67             (Self.Element)));
68   end Get_Heading;
69
70   -----------------
71   -- Set_Heading --
72   -----------------
73
74   overriding procedure Set_Heading
75    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
76     To   : AMF.UMLDI.UML_Labels.UMLDI_UML_Label_Access) is
77   begin
78      AMF.Internals.Tables.UML_Attributes.Internal_Set_Heading
79       (Self.Element,
80        AMF.Internals.Helpers.To_Element
81         (AMF.Elements.Element_Access (To)));
82   end Set_Heading;
83
84   ------------------
85   -- Get_Is_Frame --
86   ------------------
87
88   overriding function Get_Is_Frame
89    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
90       return Boolean is
91   begin
92      return
93        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Frame
94         (Self.Element);
95   end Get_Is_Frame;
96
97   ------------------
98   -- Set_Is_Frame --
99   ------------------
100
101   overriding procedure Set_Is_Frame
102    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
103     To   : Boolean) is
104   begin
105      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Frame
106       (Self.Element, To);
107   end Set_Is_Frame;
108
109   ----------------
110   -- Get_Is_Iso --
111   ----------------
112
113   overriding function Get_Is_Iso
114    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
115       return Boolean is
116   begin
117      return
118        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Iso
119         (Self.Element);
120   end Get_Is_Iso;
121
122   ----------------
123   -- Set_Is_Iso --
124   ----------------
125
126   overriding procedure Set_Is_Iso
127    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
128     To   : Boolean) is
129   begin
130      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Iso
131       (Self.Element, To);
132   end Set_Is_Iso;
133
134   -----------------
135   -- Get_Is_Icon --
136   -----------------
137
138   overriding function Get_Is_Icon
139    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
140       return Boolean is
141   begin
142      return
143        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Icon
144         (Self.Element);
145   end Get_Is_Icon;
146
147   -----------------
148   -- Set_Is_Icon --
149   -----------------
150
151   overriding procedure Set_Is_Icon
152    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
153     To   : Boolean) is
154   begin
155      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Icon
156       (Self.Element, To);
157   end Set_Is_Icon;
158
159   ---------------------
160   -- Get_Local_Style --
161   ---------------------
162
163   overriding function Get_Local_Style
164    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
165       return AMF.UMLDI.UML_Styles.UMLDI_UML_Style_Access is
166   begin
167      return
168        AMF.UMLDI.UML_Styles.UMLDI_UML_Style_Access
169         (AMF.Internals.Helpers.To_Element
170           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Local_Style
171             (Self.Element)));
172   end Get_Local_Style;
173
174   ---------------------
175   -- Set_Local_Style --
176   ---------------------
177
178   overriding procedure Set_Local_Style
179    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
180     To   : AMF.UMLDI.UML_Styles.UMLDI_UML_Style_Access) is
181   begin
182      AMF.Internals.Tables.UML_Attributes.Internal_Set_Local_Style
183       (Self.Element,
184        AMF.Internals.Helpers.To_Element
185         (AMF.Elements.Element_Access (To)));
186   end Set_Local_Style;
187
188   -----------------------
189   -- Get_Model_Element --
190   -----------------------
191
192   overriding function Get_Model_Element
193    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
194       return AMF.UML.Elements.Collections.Set_Of_UML_Element is
195   begin
196      raise Program_Error;
197      return X : AMF.UML.Elements.Collections.Set_Of_UML_Element;
198--      return
199--        AMF.UML.Elements.Collections.Wrap
200--         (AMF.Internals.Element_Collections.Wrap
201--           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Model_Element
202--             (Self.Element)));
203   end Get_Model_Element;
204
205   -----------------------
206   -- Get_Model_Element --
207   -----------------------
208
209   overriding function Get_Model_Element
210    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
211       return AMF.CMOF.Elements.CMOF_Element_Access is
212   begin
213      return
214        AMF.CMOF.Elements.CMOF_Element_Access
215         (AMF.Internals.Helpers.To_Element
216           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Model_Element
217             (Self.Element)));
218   end Get_Model_Element;
219
220   ---------------------
221   -- Get_Local_Style --
222   ---------------------
223
224   overriding function Get_Local_Style
225    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
226       return AMF.DI.Styles.DI_Style_Access is
227   begin
228      return
229        AMF.DI.Styles.DI_Style_Access
230         (AMF.Internals.Helpers.To_Element
231           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Local_Style
232             (Self.Element)));
233   end Get_Local_Style;
234
235   ---------------------
236   -- Set_Local_Style --
237   ---------------------
238
239   overriding procedure Set_Local_Style
240    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
241     To   : AMF.DI.Styles.DI_Style_Access) is
242   begin
243      AMF.Internals.Tables.UML_Attributes.Internal_Set_Local_Style
244       (Self.Element,
245        AMF.Internals.Helpers.To_Element
246         (AMF.Elements.Element_Access (To)));
247   end Set_Local_Style;
248
249   --------------
250   -- Get_Name --
251   --------------
252
253   overriding function Get_Name
254    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
255       return League.Strings.Universal_String is
256   begin
257      null;
258      return
259        League.Strings.Internals.Create
260         (AMF.Internals.Tables.UML_Attributes.Internal_Get_Name (Self.Element));
261   end Get_Name;
262
263   --------------
264   -- Set_Name --
265   --------------
266
267   overriding procedure Set_Name
268    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
269     To   : League.Strings.Universal_String) is
270   begin
271      AMF.Internals.Tables.UML_Attributes.Internal_Set_Name
272       (Self.Element,
273        League.Strings.Internals.Internal (To));
274   end Set_Name;
275
276   -----------------------
277   -- Get_Documentation --
278   -----------------------
279
280   overriding function Get_Documentation
281    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
282       return League.Strings.Universal_String is
283   begin
284      null;
285      return
286        League.Strings.Internals.Create
287         (AMF.Internals.Tables.UML_Attributes.Internal_Get_Documentation (Self.Element));
288   end Get_Documentation;
289
290   -----------------------
291   -- Set_Documentation --
292   -----------------------
293
294   overriding procedure Set_Documentation
295    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
296     To   : League.Strings.Universal_String) is
297   begin
298      AMF.Internals.Tables.UML_Attributes.Internal_Set_Documentation
299       (Self.Element,
300        League.Strings.Internals.Internal (To));
301   end Set_Documentation;
302
303   --------------------
304   -- Get_Resolution --
305   --------------------
306
307   overriding function Get_Resolution
308    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
309       return AMF.Real is
310   begin
311      return
312        AMF.Internals.Tables.UML_Attributes.Internal_Get_Resolution
313         (Self.Element);
314   end Get_Resolution;
315
316   --------------------
317   -- Set_Resolution --
318   --------------------
319
320   overriding procedure Set_Resolution
321    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
322     To   : AMF.Real) is
323   begin
324      AMF.Internals.Tables.UML_Attributes.Internal_Set_Resolution
325       (Self.Element, To);
326   end Set_Resolution;
327
328   ---------------------------
329   -- Get_Client_Dependency --
330   ---------------------------
331
332   overriding function Get_Client_Dependency
333    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
334       return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency is
335   begin
336      return
337        AMF.UML.Dependencies.Collections.Wrap
338         (AMF.Internals.Element_Collections.Wrap
339           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Client_Dependency
340             (Self.Element)));
341   end Get_Client_Dependency;
342
343   --------------
344   -- Get_Name --
345   --------------
346
347   overriding function Get_Name
348    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
349       return AMF.Optional_String is
350   begin
351      declare
352         use type Matreshka.Internals.Strings.Shared_String_Access;
353
354         Aux : constant Matreshka.Internals.Strings.Shared_String_Access
355           := AMF.Internals.Tables.UML_Attributes.Internal_Get_Name (Self.Element);
356
357      begin
358         if Aux = null then
359            return (Is_Empty => True);
360
361         else
362            return (False, League.Strings.Internals.Create (Aux));
363         end if;
364      end;
365   end Get_Name;
366
367   --------------
368   -- Set_Name --
369   --------------
370
371   overriding procedure Set_Name
372    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
373     To   : AMF.Optional_String) is
374   begin
375      if To.Is_Empty then
376         AMF.Internals.Tables.UML_Attributes.Internal_Set_Name
377          (Self.Element, null);
378
379      else
380         AMF.Internals.Tables.UML_Attributes.Internal_Set_Name
381          (Self.Element,
382           League.Strings.Internals.Internal (To.Value));
383      end if;
384   end Set_Name;
385
386   -------------------------
387   -- Get_Name_Expression --
388   -------------------------
389
390   overriding function Get_Name_Expression
391    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
392       return AMF.UML.String_Expressions.UML_String_Expression_Access is
393   begin
394      return
395        AMF.UML.String_Expressions.UML_String_Expression_Access
396         (AMF.Internals.Helpers.To_Element
397           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Name_Expression
398             (Self.Element)));
399   end Get_Name_Expression;
400
401   -------------------------
402   -- Set_Name_Expression --
403   -------------------------
404
405   overriding procedure Set_Name_Expression
406    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
407     To   : AMF.UML.String_Expressions.UML_String_Expression_Access) is
408   begin
409      AMF.Internals.Tables.UML_Attributes.Internal_Set_Name_Expression
410       (Self.Element,
411        AMF.Internals.Helpers.To_Element
412         (AMF.Elements.Element_Access (To)));
413   end Set_Name_Expression;
414
415   -------------------
416   -- Get_Namespace --
417   -------------------
418
419   overriding function Get_Namespace
420    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
421       return AMF.UML.Namespaces.UML_Namespace_Access is
422   begin
423      return
424        AMF.UML.Namespaces.UML_Namespace_Access
425         (AMF.Internals.Helpers.To_Element
426           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Namespace
427             (Self.Element)));
428   end Get_Namespace;
429
430   ------------------------
431   -- Get_Qualified_Name --
432   ------------------------
433
434   overriding function Get_Qualified_Name
435    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
436       return AMF.Optional_String is
437   begin
438      declare
439         use type Matreshka.Internals.Strings.Shared_String_Access;
440
441         Aux : constant Matreshka.Internals.Strings.Shared_String_Access
442           := AMF.Internals.Tables.UML_Attributes.Internal_Get_Qualified_Name (Self.Element);
443
444      begin
445         if Aux = null then
446            return (Is_Empty => True);
447
448         else
449            return (False, League.Strings.Internals.Create (Aux));
450         end if;
451      end;
452   end Get_Qualified_Name;
453
454   -----------------------
455   -- Get_Owned_Comment --
456   -----------------------
457
458   overriding function Get_Owned_Comment
459    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
460       return AMF.UML.Comments.Collections.Set_Of_UML_Comment is
461   begin
462      return
463        AMF.UML.Comments.Collections.Wrap
464         (AMF.Internals.Element_Collections.Wrap
465           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Comment
466             (Self.Element)));
467   end Get_Owned_Comment;
468
469   -----------------------
470   -- Get_Owned_Element --
471   -----------------------
472
473   overriding function Get_Owned_Element
474    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
475       return AMF.UML.Elements.Collections.Set_Of_UML_Element is
476   begin
477      return
478        AMF.UML.Elements.Collections.Wrap
479         (AMF.Internals.Element_Collections.Wrap
480           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Element
481             (Self.Element)));
482   end Get_Owned_Element;
483
484   ---------------
485   -- Get_Owner --
486   ---------------
487
488   overriding function Get_Owner
489    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
490       return AMF.UML.Elements.UML_Element_Access is
491   begin
492      return
493        AMF.UML.Elements.UML_Element_Access
494         (AMF.Internals.Helpers.To_Element
495           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owner
496             (Self.Element)));
497   end Get_Owner;
498
499   -----------------------------------
500   -- Get_Owning_Template_Parameter --
501   -----------------------------------
502
503   overriding function Get_Owning_Template_Parameter
504    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
505       return AMF.UML.Template_Parameters.UML_Template_Parameter_Access is
506   begin
507      return
508        AMF.UML.Template_Parameters.UML_Template_Parameter_Access
509         (AMF.Internals.Helpers.To_Element
510           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owning_Template_Parameter
511             (Self.Element)));
512   end Get_Owning_Template_Parameter;
513
514   -----------------------------------
515   -- Set_Owning_Template_Parameter --
516   -----------------------------------
517
518   overriding procedure Set_Owning_Template_Parameter
519    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
520     To   : AMF.UML.Template_Parameters.UML_Template_Parameter_Access) is
521   begin
522      AMF.Internals.Tables.UML_Attributes.Internal_Set_Owning_Template_Parameter
523       (Self.Element,
524        AMF.Internals.Helpers.To_Element
525         (AMF.Elements.Element_Access (To)));
526   end Set_Owning_Template_Parameter;
527
528   ----------------------------
529   -- Get_Template_Parameter --
530   ----------------------------
531
532   overriding function Get_Template_Parameter
533    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
534       return AMF.UML.Template_Parameters.UML_Template_Parameter_Access is
535   begin
536      return
537        AMF.UML.Template_Parameters.UML_Template_Parameter_Access
538         (AMF.Internals.Helpers.To_Element
539           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Template_Parameter
540             (Self.Element)));
541   end Get_Template_Parameter;
542
543   ----------------------------
544   -- Set_Template_Parameter --
545   ----------------------------
546
547   overriding procedure Set_Template_Parameter
548    (Self : not null access UMLDI_UML_Profile_Diagram_Proxy;
549     To   : AMF.UML.Template_Parameters.UML_Template_Parameter_Access) is
550   begin
551      AMF.Internals.Tables.UML_Attributes.Internal_Set_Template_Parameter
552       (Self.Element,
553        AMF.Internals.Helpers.To_Element
554         (AMF.Elements.Element_Access (To)));
555   end Set_Template_Parameter;
556
557   --------------------
558   -- All_Namespaces --
559   --------------------
560
561   overriding function All_Namespaces
562    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
563       return AMF.UML.Namespaces.Collections.Ordered_Set_Of_UML_Namespace is
564   begin
565      --  Generated stub: replace with real body!
566      pragma Compile_Time_Warning (Standard.True, "All_Namespaces unimplemented");
567      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.All_Namespaces";
568      return All_Namespaces (Self);
569   end All_Namespaces;
570
571   -------------------------
572   -- All_Owning_Packages --
573   -------------------------
574
575   overriding function All_Owning_Packages
576    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
577       return AMF.UML.Packages.Collections.Set_Of_UML_Package is
578   begin
579      --  Generated stub: replace with real body!
580      pragma Compile_Time_Warning (Standard.True, "All_Owning_Packages unimplemented");
581      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.All_Owning_Packages";
582      return All_Owning_Packages (Self);
583   end All_Owning_Packages;
584
585   -----------------------------
586   -- Is_Distinguishable_From --
587   -----------------------------
588
589   overriding function Is_Distinguishable_From
590    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy;
591     N : AMF.UML.Named_Elements.UML_Named_Element_Access;
592     Ns : AMF.UML.Namespaces.UML_Namespace_Access)
593       return Boolean is
594   begin
595      --  Generated stub: replace with real body!
596      pragma Compile_Time_Warning (Standard.True, "Is_Distinguishable_From unimplemented");
597      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.Is_Distinguishable_From";
598      return Is_Distinguishable_From (Self, N, Ns);
599   end Is_Distinguishable_From;
600
601   ---------------
602   -- Namespace --
603   ---------------
604
605   overriding function Namespace
606    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
607       return AMF.UML.Namespaces.UML_Namespace_Access is
608   begin
609      --  Generated stub: replace with real body!
610      pragma Compile_Time_Warning (Standard.True, "Namespace unimplemented");
611      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.Namespace";
612      return Namespace (Self);
613   end Namespace;
614
615   --------------------
616   -- Qualified_Name --
617   --------------------
618
619   overriding function Qualified_Name
620    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
621       return League.Strings.Universal_String is
622   begin
623      --  Generated stub: replace with real body!
624      pragma Compile_Time_Warning (Standard.True, "Qualified_Name unimplemented");
625      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.Qualified_Name";
626      return Qualified_Name (Self);
627   end Qualified_Name;
628
629   ---------------
630   -- Separator --
631   ---------------
632
633   overriding function Separator
634    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
635       return League.Strings.Universal_String is
636   begin
637      --  Generated stub: replace with real body!
638      pragma Compile_Time_Warning (Standard.True, "Separator unimplemented");
639      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.Separator";
640      return Separator (Self);
641   end Separator;
642
643   ------------------------
644   -- All_Owned_Elements --
645   ------------------------
646
647   overriding function All_Owned_Elements
648    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
649       return AMF.UML.Elements.Collections.Set_Of_UML_Element is
650   begin
651      --  Generated stub: replace with real body!
652      pragma Compile_Time_Warning (Standard.True, "All_Owned_Elements unimplemented");
653      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.All_Owned_Elements";
654      return All_Owned_Elements (Self);
655   end All_Owned_Elements;
656
657   ------------------------
658   -- Is_Compatible_With --
659   ------------------------
660
661   overriding function Is_Compatible_With
662    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy;
663     P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access)
664       return Boolean is
665   begin
666      --  Generated stub: replace with real body!
667      pragma Compile_Time_Warning (Standard.True, "Is_Compatible_With unimplemented");
668      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.Is_Compatible_With";
669      return Is_Compatible_With (Self, P);
670   end Is_Compatible_With;
671
672   ---------------------------
673   -- Is_Template_Parameter --
674   ---------------------------
675
676   overriding function Is_Template_Parameter
677    (Self : not null access constant UMLDI_UML_Profile_Diagram_Proxy)
678       return Boolean is
679   begin
680      --  Generated stub: replace with real body!
681      pragma Compile_Time_Warning (Standard.True, "Is_Template_Parameter unimplemented");
682      raise Program_Error with "Unimplemented procedure UMLDI_UML_Profile_Diagram_Proxy.Is_Template_Parameter";
683      return Is_Template_Parameter (Self);
684   end Is_Template_Parameter;
685
686   -------------------
687   -- Enter_Element --
688   -------------------
689
690   overriding procedure Enter_Element
691    (Self    : not null access constant UMLDI_UML_Profile_Diagram_Proxy;
692     Visitor : in out AMF.Visitors.Abstract_Visitor'Class;
693     Control : in out AMF.Visitors.Traverse_Control) is
694   begin
695      if Visitor in AMF.Visitors.UMLDI_Visitors.UMLDI_Visitor'Class then
696         AMF.Visitors.UMLDI_Visitors.UMLDI_Visitor'Class
697          (Visitor).Enter_UML_Profile_Diagram
698            (AMF.UMLDI.UML_Profile_Diagrams.UMLDI_UML_Profile_Diagram_Access (Self),
699           Control);
700      end if;
701   end Enter_Element;
702
703   -------------------
704   -- Leave_Element --
705   -------------------
706
707   overriding procedure Leave_Element
708    (Self    : not null access constant UMLDI_UML_Profile_Diagram_Proxy;
709     Visitor : in out AMF.Visitors.Abstract_Visitor'Class;
710     Control : in out AMF.Visitors.Traverse_Control) is
711   begin
712      if Visitor in AMF.Visitors.UMLDI_Visitors.UMLDI_Visitor'Class then
713         AMF.Visitors.UMLDI_Visitors.UMLDI_Visitor'Class
714          (Visitor).Leave_UML_Profile_Diagram
715            (AMF.UMLDI.UML_Profile_Diagrams.UMLDI_UML_Profile_Diagram_Access (Self),
716           Control);
717      end if;
718   end Leave_Element;
719
720   -------------------
721   -- Visit_Element --
722   -------------------
723
724   overriding procedure Visit_Element
725    (Self     : not null access constant UMLDI_UML_Profile_Diagram_Proxy;
726     Iterator : in out AMF.Visitors.Abstract_Iterator'Class;
727     Visitor  : in out AMF.Visitors.Abstract_Visitor'Class;
728     Control  : in out AMF.Visitors.Traverse_Control) is
729   begin
730      if Iterator in AMF.Visitors.UMLDI_Iterators.UMLDI_Iterator'Class then
731         AMF.Visitors.UMLDI_Iterators.UMLDI_Iterator'Class
732          (Iterator).Visit_UML_Profile_Diagram
733            (Visitor,
734             AMF.UMLDI.UML_Profile_Diagrams.UMLDI_UML_Profile_Diagram_Access (Self),
735           Control);
736      end if;
737   end Visit_Element;
738
739end AMF.Internals.UMLDI_UML_Profile_Diagrams;
740