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_Interfaces is
54
55   -------------------
56   -- Enter_Element --
57   -------------------
58
59   overriding procedure Enter_Element
60    (Self    : not null access constant UML_Interface_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_Interface
67            (AMF.UML.Interfaces.UML_Interface_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_Interface_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_Interface
84            (AMF.UML.Interfaces.UML_Interface_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_Interface_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_Interface
102            (Visitor,
103             AMF.UML.Interfaces.UML_Interface_Access (Self),
104             Control);
105      end if;
106   end Visit_Element;
107
108   ---------------------------
109   -- Get_Nested_Classifier --
110   ---------------------------
111
112   overriding function Get_Nested_Classifier
113    (Self : not null access constant UML_Interface_Proxy)
114       return AMF.UML.Classifiers.Collections.Ordered_Set_Of_UML_Classifier is
115   begin
116      return
117        AMF.UML.Classifiers.Collections.Wrap
118         (AMF.Internals.Element_Collections.Wrap
119           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Nested_Classifier
120             (Self.Element)));
121   end Get_Nested_Classifier;
122
123   -------------------------
124   -- Get_Owned_Attribute --
125   -------------------------
126
127   overriding function Get_Owned_Attribute
128    (Self : not null access constant UML_Interface_Proxy)
129       return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property is
130   begin
131      return
132        AMF.UML.Properties.Collections.Wrap
133         (AMF.Internals.Element_Collections.Wrap
134           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Attribute
135             (Self.Element)));
136   end Get_Owned_Attribute;
137
138   -------------------------
139   -- Get_Owned_Operation --
140   -------------------------
141
142   overriding function Get_Owned_Operation
143    (Self : not null access constant UML_Interface_Proxy)
144       return AMF.UML.Operations.Collections.Ordered_Set_Of_UML_Operation is
145   begin
146      return
147        AMF.UML.Operations.Collections.Wrap
148         (AMF.Internals.Element_Collections.Wrap
149           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Operation
150             (Self.Element)));
151   end Get_Owned_Operation;
152
153   -------------------------
154   -- Get_Owned_Reception --
155   -------------------------
156
157   overriding function Get_Owned_Reception
158    (Self : not null access constant UML_Interface_Proxy)
159       return AMF.UML.Receptions.Collections.Set_Of_UML_Reception is
160   begin
161      return
162        AMF.UML.Receptions.Collections.Wrap
163         (AMF.Internals.Element_Collections.Wrap
164           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Reception
165             (Self.Element)));
166   end Get_Owned_Reception;
167
168   ------------------
169   -- Get_Protocol --
170   ------------------
171
172   overriding function Get_Protocol
173    (Self : not null access constant UML_Interface_Proxy)
174       return AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access is
175   begin
176      return
177        AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access
178         (AMF.Internals.Helpers.To_Element
179           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Protocol
180             (Self.Element)));
181   end Get_Protocol;
182
183   ------------------
184   -- Set_Protocol --
185   ------------------
186
187   overriding procedure Set_Protocol
188    (Self : not null access UML_Interface_Proxy;
189     To   : AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access) is
190   begin
191      AMF.Internals.Tables.UML_Attributes.Internal_Set_Protocol
192       (Self.Element,
193        AMF.Internals.Helpers.To_Element
194         (AMF.Elements.Element_Access (To)));
195   end Set_Protocol;
196
197   -----------------------------
198   -- Get_Redefined_Interface --
199   -----------------------------
200
201   overriding function Get_Redefined_Interface
202    (Self : not null access constant UML_Interface_Proxy)
203       return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface is
204   begin
205      return
206        AMF.UML.Interfaces.Collections.Wrap
207         (AMF.Internals.Element_Collections.Wrap
208           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefined_Interface
209             (Self.Element)));
210   end Get_Redefined_Interface;
211
212   -------------------
213   -- Get_Attribute --
214   -------------------
215
216   overriding function Get_Attribute
217    (Self : not null access constant UML_Interface_Proxy)
218       return AMF.UML.Properties.Collections.Set_Of_UML_Property is
219   begin
220      return
221        AMF.UML.Properties.Collections.Wrap
222         (AMF.Internals.Element_Collections.Wrap
223           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Attribute
224             (Self.Element)));
225   end Get_Attribute;
226
227   ---------------------------
228   -- Get_Collaboration_Use --
229   ---------------------------
230
231   overriding function Get_Collaboration_Use
232    (Self : not null access constant UML_Interface_Proxy)
233       return AMF.UML.Collaboration_Uses.Collections.Set_Of_UML_Collaboration_Use is
234   begin
235      return
236        AMF.UML.Collaboration_Uses.Collections.Wrap
237         (AMF.Internals.Element_Collections.Wrap
238           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Collaboration_Use
239             (Self.Element)));
240   end Get_Collaboration_Use;
241
242   -----------------
243   -- Get_Feature --
244   -----------------
245
246   overriding function Get_Feature
247    (Self : not null access constant UML_Interface_Proxy)
248       return AMF.UML.Features.Collections.Set_Of_UML_Feature is
249   begin
250      return
251        AMF.UML.Features.Collections.Wrap
252         (AMF.Internals.Element_Collections.Wrap
253           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Feature
254             (Self.Element)));
255   end Get_Feature;
256
257   -----------------
258   -- Get_General --
259   -----------------
260
261   overriding function Get_General
262    (Self : not null access constant UML_Interface_Proxy)
263       return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier is
264   begin
265      return
266        AMF.UML.Classifiers.Collections.Wrap
267         (AMF.Internals.Element_Collections.Wrap
268           (AMF.Internals.Tables.UML_Attributes.Internal_Get_General
269             (Self.Element)));
270   end Get_General;
271
272   ------------------------
273   -- Get_Generalization --
274   ------------------------
275
276   overriding function Get_Generalization
277    (Self : not null access constant UML_Interface_Proxy)
278       return AMF.UML.Generalizations.Collections.Set_Of_UML_Generalization is
279   begin
280      return
281        AMF.UML.Generalizations.Collections.Wrap
282         (AMF.Internals.Element_Collections.Wrap
283           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Generalization
284             (Self.Element)));
285   end Get_Generalization;
286
287   --------------------------
288   -- Get_Inherited_Member --
289   --------------------------
290
291   overriding function Get_Inherited_Member
292    (Self : not null access constant UML_Interface_Proxy)
293       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
294   begin
295      return
296        AMF.UML.Named_Elements.Collections.Wrap
297         (AMF.Internals.Element_Collections.Wrap
298           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Inherited_Member
299             (Self.Element)));
300   end Get_Inherited_Member;
301
302   ---------------------
303   -- Get_Is_Abstract --
304   ---------------------
305
306   overriding function Get_Is_Abstract
307    (Self : not null access constant UML_Interface_Proxy)
308       return Boolean is
309   begin
310      return
311        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Abstract
312         (Self.Element);
313   end Get_Is_Abstract;
314
315   ---------------------------------
316   -- Get_Is_Final_Specialization --
317   ---------------------------------
318
319   overriding function Get_Is_Final_Specialization
320    (Self : not null access constant UML_Interface_Proxy)
321       return Boolean is
322   begin
323      return
324        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Final_Specialization
325         (Self.Element);
326   end Get_Is_Final_Specialization;
327
328   ---------------------------------
329   -- Set_Is_Final_Specialization --
330   ---------------------------------
331
332   overriding procedure Set_Is_Final_Specialization
333    (Self : not null access UML_Interface_Proxy;
334     To   : Boolean) is
335   begin
336      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Final_Specialization
337       (Self.Element, To);
338   end Set_Is_Final_Specialization;
339
340   ----------------------------------
341   -- Get_Owned_Template_Signature --
342   ----------------------------------
343
344   overriding function Get_Owned_Template_Signature
345    (Self : not null access constant UML_Interface_Proxy)
346       return AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access is
347   begin
348      return
349        AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access
350         (AMF.Internals.Helpers.To_Element
351           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Template_Signature
352             (Self.Element)));
353   end Get_Owned_Template_Signature;
354
355   ----------------------------------
356   -- Set_Owned_Template_Signature --
357   ----------------------------------
358
359   overriding procedure Set_Owned_Template_Signature
360    (Self : not null access UML_Interface_Proxy;
361     To   : AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access) is
362   begin
363      AMF.Internals.Tables.UML_Attributes.Internal_Set_Owned_Template_Signature
364       (Self.Element,
365        AMF.Internals.Helpers.To_Element
366         (AMF.Elements.Element_Access (To)));
367   end Set_Owned_Template_Signature;
368
369   ------------------------
370   -- Get_Owned_Use_Case --
371   ------------------------
372
373   overriding function Get_Owned_Use_Case
374    (Self : not null access constant UML_Interface_Proxy)
375       return AMF.UML.Use_Cases.Collections.Set_Of_UML_Use_Case is
376   begin
377      return
378        AMF.UML.Use_Cases.Collections.Wrap
379         (AMF.Internals.Element_Collections.Wrap
380           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Use_Case
381             (Self.Element)));
382   end Get_Owned_Use_Case;
383
384   --------------------------
385   -- Get_Powertype_Extent --
386   --------------------------
387
388   overriding function Get_Powertype_Extent
389    (Self : not null access constant UML_Interface_Proxy)
390       return AMF.UML.Generalization_Sets.Collections.Set_Of_UML_Generalization_Set is
391   begin
392      return
393        AMF.UML.Generalization_Sets.Collections.Wrap
394         (AMF.Internals.Element_Collections.Wrap
395           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Powertype_Extent
396             (Self.Element)));
397   end Get_Powertype_Extent;
398
399   ------------------------------
400   -- Get_Redefined_Classifier --
401   ------------------------------
402
403   overriding function Get_Redefined_Classifier
404    (Self : not null access constant UML_Interface_Proxy)
405       return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier is
406   begin
407      return
408        AMF.UML.Classifiers.Collections.Wrap
409         (AMF.Internals.Element_Collections.Wrap
410           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefined_Classifier
411             (Self.Element)));
412   end Get_Redefined_Classifier;
413
414   ------------------------
415   -- Get_Representation --
416   ------------------------
417
418   overriding function Get_Representation
419    (Self : not null access constant UML_Interface_Proxy)
420       return AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access is
421   begin
422      return
423        AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access
424         (AMF.Internals.Helpers.To_Element
425           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Representation
426             (Self.Element)));
427   end Get_Representation;
428
429   ------------------------
430   -- Set_Representation --
431   ------------------------
432
433   overriding procedure Set_Representation
434    (Self : not null access UML_Interface_Proxy;
435     To   : AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access) is
436   begin
437      AMF.Internals.Tables.UML_Attributes.Internal_Set_Representation
438       (Self.Element,
439        AMF.Internals.Helpers.To_Element
440         (AMF.Elements.Element_Access (To)));
441   end Set_Representation;
442
443   ----------------------
444   -- Get_Substitution --
445   ----------------------
446
447   overriding function Get_Substitution
448    (Self : not null access constant UML_Interface_Proxy)
449       return AMF.UML.Substitutions.Collections.Set_Of_UML_Substitution is
450   begin
451      return
452        AMF.UML.Substitutions.Collections.Wrap
453         (AMF.Internals.Element_Collections.Wrap
454           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Substitution
455             (Self.Element)));
456   end Get_Substitution;
457
458   ----------------------------
459   -- Get_Template_Parameter --
460   ----------------------------
461
462   overriding function Get_Template_Parameter
463    (Self : not null access constant UML_Interface_Proxy)
464       return AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access is
465   begin
466      return
467        AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access
468         (AMF.Internals.Helpers.To_Element
469           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Template_Parameter
470             (Self.Element)));
471   end Get_Template_Parameter;
472
473   ----------------------------
474   -- Set_Template_Parameter --
475   ----------------------------
476
477   overriding procedure Set_Template_Parameter
478    (Self : not null access UML_Interface_Proxy;
479     To   : AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access) is
480   begin
481      AMF.Internals.Tables.UML_Attributes.Internal_Set_Template_Parameter
482       (Self.Element,
483        AMF.Internals.Helpers.To_Element
484         (AMF.Elements.Element_Access (To)));
485   end Set_Template_Parameter;
486
487   ------------------
488   -- Get_Use_Case --
489   ------------------
490
491   overriding function Get_Use_Case
492    (Self : not null access constant UML_Interface_Proxy)
493       return AMF.UML.Use_Cases.Collections.Set_Of_UML_Use_Case is
494   begin
495      return
496        AMF.UML.Use_Cases.Collections.Wrap
497         (AMF.Internals.Element_Collections.Wrap
498           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Use_Case
499             (Self.Element)));
500   end Get_Use_Case;
501
502   ------------------------
503   -- Get_Element_Import --
504   ------------------------
505
506   overriding function Get_Element_Import
507    (Self : not null access constant UML_Interface_Proxy)
508       return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import is
509   begin
510      return
511        AMF.UML.Element_Imports.Collections.Wrap
512         (AMF.Internals.Element_Collections.Wrap
513           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Element_Import
514             (Self.Element)));
515   end Get_Element_Import;
516
517   -------------------------
518   -- Get_Imported_Member --
519   -------------------------
520
521   overriding function Get_Imported_Member
522    (Self : not null access constant UML_Interface_Proxy)
523       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
524   begin
525      return
526        AMF.UML.Packageable_Elements.Collections.Wrap
527         (AMF.Internals.Element_Collections.Wrap
528           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Imported_Member
529             (Self.Element)));
530   end Get_Imported_Member;
531
532   ----------------
533   -- Get_Member --
534   ----------------
535
536   overriding function Get_Member
537    (Self : not null access constant UML_Interface_Proxy)
538       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
539   begin
540      return
541        AMF.UML.Named_Elements.Collections.Wrap
542         (AMF.Internals.Element_Collections.Wrap
543           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Member
544             (Self.Element)));
545   end Get_Member;
546
547   ----------------------
548   -- Get_Owned_Member --
549   ----------------------
550
551   overriding function Get_Owned_Member
552    (Self : not null access constant UML_Interface_Proxy)
553       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
554   begin
555      return
556        AMF.UML.Named_Elements.Collections.Wrap
557         (AMF.Internals.Element_Collections.Wrap
558           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Member
559             (Self.Element)));
560   end Get_Owned_Member;
561
562   --------------------
563   -- Get_Owned_Rule --
564   --------------------
565
566   overriding function Get_Owned_Rule
567    (Self : not null access constant UML_Interface_Proxy)
568       return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint is
569   begin
570      return
571        AMF.UML.Constraints.Collections.Wrap
572         (AMF.Internals.Element_Collections.Wrap
573           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Rule
574             (Self.Element)));
575   end Get_Owned_Rule;
576
577   ------------------------
578   -- Get_Package_Import --
579   ------------------------
580
581   overriding function Get_Package_Import
582    (Self : not null access constant UML_Interface_Proxy)
583       return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import is
584   begin
585      return
586        AMF.UML.Package_Imports.Collections.Wrap
587         (AMF.Internals.Element_Collections.Wrap
588           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Package_Import
589             (Self.Element)));
590   end Get_Package_Import;
591
592   ---------------------------
593   -- Get_Client_Dependency --
594   ---------------------------
595
596   overriding function Get_Client_Dependency
597    (Self : not null access constant UML_Interface_Proxy)
598       return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency is
599   begin
600      return
601        AMF.UML.Dependencies.Collections.Wrap
602         (AMF.Internals.Element_Collections.Wrap
603           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Client_Dependency
604             (Self.Element)));
605   end Get_Client_Dependency;
606
607   -------------------------
608   -- Get_Name_Expression --
609   -------------------------
610
611   overriding function Get_Name_Expression
612    (Self : not null access constant UML_Interface_Proxy)
613       return AMF.UML.String_Expressions.UML_String_Expression_Access is
614   begin
615      return
616        AMF.UML.String_Expressions.UML_String_Expression_Access
617         (AMF.Internals.Helpers.To_Element
618           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Name_Expression
619             (Self.Element)));
620   end Get_Name_Expression;
621
622   -------------------------
623   -- Set_Name_Expression --
624   -------------------------
625
626   overriding procedure Set_Name_Expression
627    (Self : not null access UML_Interface_Proxy;
628     To   : AMF.UML.String_Expressions.UML_String_Expression_Access) is
629   begin
630      AMF.Internals.Tables.UML_Attributes.Internal_Set_Name_Expression
631       (Self.Element,
632        AMF.Internals.Helpers.To_Element
633         (AMF.Elements.Element_Access (To)));
634   end Set_Name_Expression;
635
636   -------------------
637   -- Get_Namespace --
638   -------------------
639
640   overriding function Get_Namespace
641    (Self : not null access constant UML_Interface_Proxy)
642       return AMF.UML.Namespaces.UML_Namespace_Access is
643   begin
644      return
645        AMF.UML.Namespaces.UML_Namespace_Access
646         (AMF.Internals.Helpers.To_Element
647           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Namespace
648             (Self.Element)));
649   end Get_Namespace;
650
651   ------------------------
652   -- Get_Qualified_Name --
653   ------------------------
654
655   overriding function Get_Qualified_Name
656    (Self : not null access constant UML_Interface_Proxy)
657       return AMF.Optional_String is
658   begin
659      declare
660         use type Matreshka.Internals.Strings.Shared_String_Access;
661
662         Aux : constant Matreshka.Internals.Strings.Shared_String_Access
663           := AMF.Internals.Tables.UML_Attributes.Internal_Get_Qualified_Name (Self.Element);
664
665      begin
666         if Aux = null then
667            return (Is_Empty => True);
668
669         else
670            return (False, League.Strings.Internals.Create (Aux));
671         end if;
672      end;
673   end Get_Qualified_Name;
674
675   -----------------
676   -- Get_Package --
677   -----------------
678
679   overriding function Get_Package
680    (Self : not null access constant UML_Interface_Proxy)
681       return AMF.UML.Packages.UML_Package_Access is
682   begin
683      return
684        AMF.UML.Packages.UML_Package_Access
685         (AMF.Internals.Helpers.To_Element
686           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Package
687             (Self.Element)));
688   end Get_Package;
689
690   -----------------
691   -- Set_Package --
692   -----------------
693
694   overriding procedure Set_Package
695    (Self : not null access UML_Interface_Proxy;
696     To   : AMF.UML.Packages.UML_Package_Access) is
697   begin
698      AMF.Internals.Tables.UML_Attributes.Internal_Set_Package
699       (Self.Element,
700        AMF.Internals.Helpers.To_Element
701         (AMF.Elements.Element_Access (To)));
702   end Set_Package;
703
704   -----------------------------------
705   -- Get_Owning_Template_Parameter --
706   -----------------------------------
707
708   overriding function Get_Owning_Template_Parameter
709    (Self : not null access constant UML_Interface_Proxy)
710       return AMF.UML.Template_Parameters.UML_Template_Parameter_Access is
711   begin
712      return
713        AMF.UML.Template_Parameters.UML_Template_Parameter_Access
714         (AMF.Internals.Helpers.To_Element
715           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owning_Template_Parameter
716             (Self.Element)));
717   end Get_Owning_Template_Parameter;
718
719   -----------------------------------
720   -- Set_Owning_Template_Parameter --
721   -----------------------------------
722
723   overriding procedure Set_Owning_Template_Parameter
724    (Self : not null access UML_Interface_Proxy;
725     To   : AMF.UML.Template_Parameters.UML_Template_Parameter_Access) is
726   begin
727      AMF.Internals.Tables.UML_Attributes.Internal_Set_Owning_Template_Parameter
728       (Self.Element,
729        AMF.Internals.Helpers.To_Element
730         (AMF.Elements.Element_Access (To)));
731   end Set_Owning_Template_Parameter;
732
733   ----------------------------
734   -- Get_Template_Parameter --
735   ----------------------------
736
737   overriding function Get_Template_Parameter
738    (Self : not null access constant UML_Interface_Proxy)
739       return AMF.UML.Template_Parameters.UML_Template_Parameter_Access is
740   begin
741      return
742        AMF.UML.Template_Parameters.UML_Template_Parameter_Access
743         (AMF.Internals.Helpers.To_Element
744           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Template_Parameter
745             (Self.Element)));
746   end Get_Template_Parameter;
747
748   ----------------------------
749   -- Set_Template_Parameter --
750   ----------------------------
751
752   overriding procedure Set_Template_Parameter
753    (Self : not null access UML_Interface_Proxy;
754     To   : AMF.UML.Template_Parameters.UML_Template_Parameter_Access) is
755   begin
756      AMF.Internals.Tables.UML_Attributes.Internal_Set_Template_Parameter
757       (Self.Element,
758        AMF.Internals.Helpers.To_Element
759         (AMF.Elements.Element_Access (To)));
760   end Set_Template_Parameter;
761
762   ----------------------------------
763   -- Get_Owned_Template_Signature --
764   ----------------------------------
765
766   overriding function Get_Owned_Template_Signature
767    (Self : not null access constant UML_Interface_Proxy)
768       return AMF.UML.Template_Signatures.UML_Template_Signature_Access is
769   begin
770      return
771        AMF.UML.Template_Signatures.UML_Template_Signature_Access
772         (AMF.Internals.Helpers.To_Element
773           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Owned_Template_Signature
774             (Self.Element)));
775   end Get_Owned_Template_Signature;
776
777   ----------------------------------
778   -- Set_Owned_Template_Signature --
779   ----------------------------------
780
781   overriding procedure Set_Owned_Template_Signature
782    (Self : not null access UML_Interface_Proxy;
783     To   : AMF.UML.Template_Signatures.UML_Template_Signature_Access) is
784   begin
785      AMF.Internals.Tables.UML_Attributes.Internal_Set_Owned_Template_Signature
786       (Self.Element,
787        AMF.Internals.Helpers.To_Element
788         (AMF.Elements.Element_Access (To)));
789   end Set_Owned_Template_Signature;
790
791   --------------------------
792   -- Get_Template_Binding --
793   --------------------------
794
795   overriding function Get_Template_Binding
796    (Self : not null access constant UML_Interface_Proxy)
797       return AMF.UML.Template_Bindings.Collections.Set_Of_UML_Template_Binding is
798   begin
799      return
800        AMF.UML.Template_Bindings.Collections.Wrap
801         (AMF.Internals.Element_Collections.Wrap
802           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Template_Binding
803             (Self.Element)));
804   end Get_Template_Binding;
805
806   -----------------
807   -- Get_Is_Leaf --
808   -----------------
809
810   overriding function Get_Is_Leaf
811    (Self : not null access constant UML_Interface_Proxy)
812       return Boolean is
813   begin
814      return
815        AMF.Internals.Tables.UML_Attributes.Internal_Get_Is_Leaf
816         (Self.Element);
817   end Get_Is_Leaf;
818
819   -----------------
820   -- Set_Is_Leaf --
821   -----------------
822
823   overriding procedure Set_Is_Leaf
824    (Self : not null access UML_Interface_Proxy;
825     To   : Boolean) is
826   begin
827      AMF.Internals.Tables.UML_Attributes.Internal_Set_Is_Leaf
828       (Self.Element, To);
829   end Set_Is_Leaf;
830
831   ---------------------------
832   -- Get_Redefined_Element --
833   ---------------------------
834
835   overriding function Get_Redefined_Element
836    (Self : not null access constant UML_Interface_Proxy)
837       return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element is
838   begin
839      return
840        AMF.UML.Redefinable_Elements.Collections.Wrap
841         (AMF.Internals.Element_Collections.Wrap
842           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefined_Element
843             (Self.Element)));
844   end Get_Redefined_Element;
845
846   ------------------------------
847   -- Get_Redefinition_Context --
848   ------------------------------
849
850   overriding function Get_Redefinition_Context
851    (Self : not null access constant UML_Interface_Proxy)
852       return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier is
853   begin
854      return
855        AMF.UML.Classifiers.Collections.Wrap
856         (AMF.Internals.Element_Collections.Wrap
857           (AMF.Internals.Tables.UML_Attributes.Internal_Get_Redefinition_Context
858             (Self.Element)));
859   end Get_Redefinition_Context;
860
861   ------------------
862   -- All_Features --
863   ------------------
864
865   overriding function All_Features
866    (Self : not null access constant UML_Interface_Proxy)
867       return AMF.UML.Features.Collections.Set_Of_UML_Feature is
868   begin
869      --  Generated stub: replace with real body!
870      pragma Compile_Time_Warning (Standard.True, "All_Features unimplemented");
871      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.All_Features";
872      return All_Features (Self);
873   end All_Features;
874
875   -----------------
876   -- Conforms_To --
877   -----------------
878
879   overriding function Conforms_To
880    (Self : not null access constant UML_Interface_Proxy;
881     Other : AMF.UML.Classifiers.UML_Classifier_Access)
882       return Boolean is
883   begin
884      --  Generated stub: replace with real body!
885      pragma Compile_Time_Warning (Standard.True, "Conforms_To unimplemented");
886      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Conforms_To";
887      return Conforms_To (Self, Other);
888   end Conforms_To;
889
890   -------------
891   -- General --
892   -------------
893
894   overriding function General
895    (Self : not null access constant UML_Interface_Proxy)
896       return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier is
897   begin
898      --  Generated stub: replace with real body!
899      pragma Compile_Time_Warning (Standard.True, "General unimplemented");
900      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.General";
901      return General (Self);
902   end General;
903
904   -----------------------
905   -- Has_Visibility_Of --
906   -----------------------
907
908   overriding function Has_Visibility_Of
909    (Self : not null access constant UML_Interface_Proxy;
910     N : AMF.UML.Named_Elements.UML_Named_Element_Access)
911       return Boolean is
912   begin
913      --  Generated stub: replace with real body!
914      pragma Compile_Time_Warning (Standard.True, "Has_Visibility_Of unimplemented");
915      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Has_Visibility_Of";
916      return Has_Visibility_Of (Self, N);
917   end Has_Visibility_Of;
918
919   -------------
920   -- Inherit --
921   -------------
922
923   overriding function Inherit
924    (Self : not null access constant UML_Interface_Proxy;
925     Inhs : AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element)
926       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
927   begin
928      --  Generated stub: replace with real body!
929      pragma Compile_Time_Warning (Standard.True, "Inherit unimplemented");
930      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Inherit";
931      return Inherit (Self, Inhs);
932   end Inherit;
933
934   -------------------------
935   -- Inheritable_Members --
936   -------------------------
937
938   overriding function Inheritable_Members
939    (Self : not null access constant UML_Interface_Proxy;
940     C : AMF.UML.Classifiers.UML_Classifier_Access)
941       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
942   begin
943      --  Generated stub: replace with real body!
944      pragma Compile_Time_Warning (Standard.True, "Inheritable_Members unimplemented");
945      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Inheritable_Members";
946      return Inheritable_Members (Self, C);
947   end Inheritable_Members;
948
949   ----------------------
950   -- Inherited_Member --
951   ----------------------
952
953   overriding function Inherited_Member
954    (Self : not null access constant UML_Interface_Proxy)
955       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
956   begin
957      --  Generated stub: replace with real body!
958      pragma Compile_Time_Warning (Standard.True, "Inherited_Member unimplemented");
959      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Inherited_Member";
960      return Inherited_Member (Self);
961   end Inherited_Member;
962
963   -----------------
964   -- Is_Template --
965   -----------------
966
967   overriding function Is_Template
968    (Self : not null access constant UML_Interface_Proxy)
969       return Boolean is
970   begin
971      --  Generated stub: replace with real body!
972      pragma Compile_Time_Warning (Standard.True, "Is_Template unimplemented");
973      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Is_Template";
974      return Is_Template (Self);
975   end Is_Template;
976
977   -------------------------
978   -- May_Specialize_Type --
979   -------------------------
980
981   overriding function May_Specialize_Type
982    (Self : not null access constant UML_Interface_Proxy;
983     C : AMF.UML.Classifiers.UML_Classifier_Access)
984       return Boolean is
985   begin
986      --  Generated stub: replace with real body!
987      pragma Compile_Time_Warning (Standard.True, "May_Specialize_Type unimplemented");
988      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.May_Specialize_Type";
989      return May_Specialize_Type (Self, C);
990   end May_Specialize_Type;
991
992   ------------------------
993   -- Exclude_Collisions --
994   ------------------------
995
996   overriding function Exclude_Collisions
997    (Self : not null access constant UML_Interface_Proxy;
998     Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element)
999       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
1000   begin
1001      --  Generated stub: replace with real body!
1002      pragma Compile_Time_Warning (Standard.True, "Exclude_Collisions unimplemented");
1003      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Exclude_Collisions";
1004      return Exclude_Collisions (Self, Imps);
1005   end Exclude_Collisions;
1006
1007   -------------------------
1008   -- Get_Names_Of_Member --
1009   -------------------------
1010
1011   overriding function Get_Names_Of_Member
1012    (Self : not null access constant UML_Interface_Proxy;
1013     Element : AMF.UML.Named_Elements.UML_Named_Element_Access)
1014       return AMF.String_Collections.Set_Of_String is
1015   begin
1016      --  Generated stub: replace with real body!
1017      pragma Compile_Time_Warning (Standard.True, "Get_Names_Of_Member unimplemented");
1018      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Get_Names_Of_Member";
1019      return Get_Names_Of_Member (Self, Element);
1020   end Get_Names_Of_Member;
1021
1022   --------------------
1023   -- Import_Members --
1024   --------------------
1025
1026   overriding function Import_Members
1027    (Self : not null access constant UML_Interface_Proxy;
1028     Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element)
1029       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
1030   begin
1031      --  Generated stub: replace with real body!
1032      pragma Compile_Time_Warning (Standard.True, "Import_Members unimplemented");
1033      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Import_Members";
1034      return Import_Members (Self, Imps);
1035   end Import_Members;
1036
1037   ---------------------
1038   -- Imported_Member --
1039   ---------------------
1040
1041   overriding function Imported_Member
1042    (Self : not null access constant UML_Interface_Proxy)
1043       return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element is
1044   begin
1045      --  Generated stub: replace with real body!
1046      pragma Compile_Time_Warning (Standard.True, "Imported_Member unimplemented");
1047      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Imported_Member";
1048      return Imported_Member (Self);
1049   end Imported_Member;
1050
1051   ---------------------------------
1052   -- Members_Are_Distinguishable --
1053   ---------------------------------
1054
1055   overriding function Members_Are_Distinguishable
1056    (Self : not null access constant UML_Interface_Proxy)
1057       return Boolean is
1058   begin
1059      --  Generated stub: replace with real body!
1060      pragma Compile_Time_Warning (Standard.True, "Members_Are_Distinguishable unimplemented");
1061      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Members_Are_Distinguishable";
1062      return Members_Are_Distinguishable (Self);
1063   end Members_Are_Distinguishable;
1064
1065   ------------------
1066   -- Owned_Member --
1067   ------------------
1068
1069   overriding function Owned_Member
1070    (Self : not null access constant UML_Interface_Proxy)
1071       return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element is
1072   begin
1073      --  Generated stub: replace with real body!
1074      pragma Compile_Time_Warning (Standard.True, "Owned_Member unimplemented");
1075      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Owned_Member";
1076      return Owned_Member (Self);
1077   end Owned_Member;
1078
1079   -------------------------
1080   -- All_Owning_Packages --
1081   -------------------------
1082
1083   overriding function All_Owning_Packages
1084    (Self : not null access constant UML_Interface_Proxy)
1085       return AMF.UML.Packages.Collections.Set_Of_UML_Package is
1086   begin
1087      --  Generated stub: replace with real body!
1088      pragma Compile_Time_Warning (Standard.True, "All_Owning_Packages unimplemented");
1089      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.All_Owning_Packages";
1090      return All_Owning_Packages (Self);
1091   end All_Owning_Packages;
1092
1093   -----------------------------
1094   -- Is_Distinguishable_From --
1095   -----------------------------
1096
1097   overriding function Is_Distinguishable_From
1098    (Self : not null access constant UML_Interface_Proxy;
1099     N : AMF.UML.Named_Elements.UML_Named_Element_Access;
1100     Ns : AMF.UML.Namespaces.UML_Namespace_Access)
1101       return Boolean is
1102   begin
1103      --  Generated stub: replace with real body!
1104      pragma Compile_Time_Warning (Standard.True, "Is_Distinguishable_From unimplemented");
1105      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Is_Distinguishable_From";
1106      return Is_Distinguishable_From (Self, N, Ns);
1107   end Is_Distinguishable_From;
1108
1109   ---------------
1110   -- Namespace --
1111   ---------------
1112
1113   overriding function Namespace
1114    (Self : not null access constant UML_Interface_Proxy)
1115       return AMF.UML.Namespaces.UML_Namespace_Access is
1116   begin
1117      --  Generated stub: replace with real body!
1118      pragma Compile_Time_Warning (Standard.True, "Namespace unimplemented");
1119      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Namespace";
1120      return Namespace (Self);
1121   end Namespace;
1122
1123   -----------------
1124   -- Conforms_To --
1125   -----------------
1126
1127   overriding function Conforms_To
1128    (Self : not null access constant UML_Interface_Proxy;
1129     Other : AMF.UML.Types.UML_Type_Access)
1130       return Boolean is
1131   begin
1132      --  Generated stub: replace with real body!
1133      pragma Compile_Time_Warning (Standard.True, "Conforms_To unimplemented");
1134      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Conforms_To";
1135      return Conforms_To (Self, Other);
1136   end Conforms_To;
1137
1138   ------------------------
1139   -- Is_Compatible_With --
1140   ------------------------
1141
1142   overriding function Is_Compatible_With
1143    (Self : not null access constant UML_Interface_Proxy;
1144     P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access)
1145       return Boolean is
1146   begin
1147      --  Generated stub: replace with real body!
1148      pragma Compile_Time_Warning (Standard.True, "Is_Compatible_With unimplemented");
1149      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Is_Compatible_With";
1150      return Is_Compatible_With (Self, P);
1151   end Is_Compatible_With;
1152
1153   ---------------------------
1154   -- Is_Template_Parameter --
1155   ---------------------------
1156
1157   overriding function Is_Template_Parameter
1158    (Self : not null access constant UML_Interface_Proxy)
1159       return Boolean is
1160   begin
1161      --  Generated stub: replace with real body!
1162      pragma Compile_Time_Warning (Standard.True, "Is_Template_Parameter unimplemented");
1163      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Is_Template_Parameter";
1164      return Is_Template_Parameter (Self);
1165   end Is_Template_Parameter;
1166
1167   ----------------------------
1168   -- Parameterable_Elements --
1169   ----------------------------
1170
1171   overriding function Parameterable_Elements
1172    (Self : not null access constant UML_Interface_Proxy)
1173       return AMF.UML.Parameterable_Elements.Collections.Set_Of_UML_Parameterable_Element is
1174   begin
1175      --  Generated stub: replace with real body!
1176      pragma Compile_Time_Warning (Standard.True, "Parameterable_Elements unimplemented");
1177      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Parameterable_Elements";
1178      return Parameterable_Elements (Self);
1179   end Parameterable_Elements;
1180
1181   ------------------------
1182   -- Is_Consistent_With --
1183   ------------------------
1184
1185   overriding function Is_Consistent_With
1186    (Self : not null access constant UML_Interface_Proxy;
1187     Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access)
1188       return Boolean is
1189   begin
1190      --  Generated stub: replace with real body!
1191      pragma Compile_Time_Warning (Standard.True, "Is_Consistent_With unimplemented");
1192      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Is_Consistent_With";
1193      return Is_Consistent_With (Self, Redefinee);
1194   end Is_Consistent_With;
1195
1196   -----------------------------------
1197   -- Is_Redefinition_Context_Valid --
1198   -----------------------------------
1199
1200   overriding function Is_Redefinition_Context_Valid
1201    (Self : not null access constant UML_Interface_Proxy;
1202     Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access)
1203       return Boolean is
1204   begin
1205      --  Generated stub: replace with real body!
1206      pragma Compile_Time_Warning (Standard.True, "Is_Redefinition_Context_Valid unimplemented");
1207      raise Program_Error with "Unimplemented procedure UML_Interface_Proxy.Is_Redefinition_Context_Valid";
1208      return Is_Redefinition_Context_Valid (Self, Redefined);
1209   end Is_Redefinition_Context_Valid;
1210
1211end AMF.Internals.UML_Interfaces;
1212