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: 2671 $ $Date: 2012-03-23 00:51:37 +0400 (Fri, 23 Mar 2012) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46with AMF.Elements;
47with AMF.Internals.Element_Collections;
48with AMF.Internals.Helpers;
49with AMF.Internals.Tables.OCL_Attributes;
50with AMF.OCL.Ocl_Expressions;
51with AMF.OCL.Variables.Collections;
52with AMF.UML.Comments.Collections;
53with AMF.UML.Dependencies.Collections;
54with AMF.UML.Elements.Collections;
55with AMF.UML.Named_Elements;
56with AMF.UML.Namespaces.Collections;
57with AMF.UML.Packages.Collections;
58with AMF.UML.String_Expressions;
59with AMF.UML.Types;
60with AMF.Visitors.OCL_Iterators;
61with AMF.Visitors.OCL_Visitors;
62with League.Strings.Internals;
63with Matreshka.Internals.Strings;
64
65package body AMF.Internals.OCL_Iterate_Exps is
66
67   ----------------
68   -- Get_Result --
69   ----------------
70
71   overriding function Get_Result
72    (Self : not null access constant OCL_Iterate_Exp_Proxy)
73       return AMF.OCL.Variables.OCL_Variable_Access is
74   begin
75      return
76        AMF.OCL.Variables.OCL_Variable_Access
77         (AMF.Internals.Helpers.To_Element
78           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Result
79             (Self.Element)));
80   end Get_Result;
81
82   ----------------
83   -- Set_Result --
84   ----------------
85
86   overriding procedure Set_Result
87    (Self : not null access OCL_Iterate_Exp_Proxy;
88     To   : AMF.OCL.Variables.OCL_Variable_Access) is
89   begin
90      raise Program_Error;
91--      AMF.Internals.Tables.OCL_Attributes.Internal_Set_Result
92--       (Self.Id,
93--        AMF.Internals.Helpers.To_Element
94--         (AMF.Elements.Element_Access (To)));
95   end Set_Result;
96
97   --------------
98   -- Get_Body --
99   --------------
100
101   overriding function Get_Body
102    (Self : not null access constant OCL_Iterate_Exp_Proxy)
103       return AMF.OCL.Ocl_Expressions.OCL_Ocl_Expression_Access is
104   begin
105      return
106        AMF.OCL.Ocl_Expressions.OCL_Ocl_Expression_Access
107         (AMF.Internals.Helpers.To_Element
108           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Body
109             (Self.Element)));
110   end Get_Body;
111
112   --------------
113   -- Set_Body --
114   --------------
115
116   overriding procedure Set_Body
117    (Self : not null access OCL_Iterate_Exp_Proxy;
118     To   : AMF.OCL.Ocl_Expressions.OCL_Ocl_Expression_Access) is
119   begin
120      AMF.Internals.Tables.OCL_Attributes.Internal_Set_Body
121       (Self.Element,
122        AMF.Internals.Helpers.To_Element
123         (AMF.Elements.Element_Access (To)));
124   end Set_Body;
125
126   ------------------
127   -- Get_Iterator --
128   ------------------
129
130   overriding function Get_Iterator
131    (Self : not null access constant OCL_Iterate_Exp_Proxy)
132       return AMF.OCL.Variables.Collections.Ordered_Set_Of_OCL_Variable is
133   begin
134      return
135        AMF.OCL.Variables.Collections.Wrap
136         (AMF.Internals.Element_Collections.Wrap
137           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Iterator
138             (Self.Element)));
139   end Get_Iterator;
140
141   ----------------
142   -- Get_Source --
143   ----------------
144
145   overriding function Get_Source
146    (Self : not null access constant OCL_Iterate_Exp_Proxy)
147       return AMF.OCL.Ocl_Expressions.OCL_Ocl_Expression_Access is
148   begin
149      return
150        AMF.OCL.Ocl_Expressions.OCL_Ocl_Expression_Access
151         (AMF.Internals.Helpers.To_Element
152           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Source
153             (Self.Element)));
154   end Get_Source;
155
156   ----------------
157   -- Set_Source --
158   ----------------
159
160   overriding procedure Set_Source
161    (Self : not null access OCL_Iterate_Exp_Proxy;
162     To   : AMF.OCL.Ocl_Expressions.OCL_Ocl_Expression_Access) is
163   begin
164      AMF.Internals.Tables.OCL_Attributes.Internal_Set_Source
165       (Self.Element,
166        AMF.Internals.Helpers.To_Element
167         (AMF.Elements.Element_Access (To)));
168   end Set_Source;
169
170   --------------
171   -- Get_Type --
172   --------------
173
174   overriding function Get_Type
175    (Self : not null access constant OCL_Iterate_Exp_Proxy)
176       return AMF.UML.Types.UML_Type_Access is
177   begin
178      return
179        AMF.UML.Types.UML_Type_Access
180         (AMF.Internals.Helpers.To_Element
181           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Type
182             (Self.Element)));
183   end Get_Type;
184
185   --------------
186   -- Set_Type --
187   --------------
188
189   overriding procedure Set_Type
190    (Self : not null access OCL_Iterate_Exp_Proxy;
191     To   : AMF.UML.Types.UML_Type_Access) is
192   begin
193      AMF.Internals.Tables.OCL_Attributes.Internal_Set_Type
194       (Self.Element,
195        AMF.Internals.Helpers.To_Element
196         (AMF.Elements.Element_Access (To)));
197   end Set_Type;
198
199   ---------------------------
200   -- Get_Client_Dependency --
201   ---------------------------
202
203   overriding function Get_Client_Dependency
204    (Self : not null access constant OCL_Iterate_Exp_Proxy)
205       return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency is
206   begin
207      return
208        AMF.UML.Dependencies.Collections.Wrap
209         (AMF.Internals.Element_Collections.Wrap
210           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Client_Dependency
211             (Self.Element)));
212   end Get_Client_Dependency;
213
214   --------------
215   -- Get_Name --
216   --------------
217
218   overriding function Get_Name
219    (Self : not null access constant OCL_Iterate_Exp_Proxy)
220       return AMF.Optional_String is
221   begin
222      declare
223         use type Matreshka.Internals.Strings.Shared_String_Access;
224
225         Aux : constant Matreshka.Internals.Strings.Shared_String_Access
226           := AMF.Internals.Tables.OCL_Attributes.Internal_Get_Name (Self.Element);
227
228      begin
229         if Aux = null then
230            return (Is_Empty => True);
231
232         else
233            return (False, League.Strings.Internals.Create (Aux));
234         end if;
235      end;
236   end Get_Name;
237
238   --------------
239   -- Set_Name --
240   --------------
241
242   overriding procedure Set_Name
243    (Self : not null access OCL_Iterate_Exp_Proxy;
244     To   : AMF.Optional_String) is
245   begin
246      if To.Is_Empty then
247         AMF.Internals.Tables.OCL_Attributes.Internal_Set_Name
248          (Self.Element, null);
249
250      else
251         AMF.Internals.Tables.OCL_Attributes.Internal_Set_Name
252          (Self.Element,
253           League.Strings.Internals.Internal (To.Value));
254      end if;
255   end Set_Name;
256
257   -------------------------
258   -- Get_Name_Expression --
259   -------------------------
260
261   overriding function Get_Name_Expression
262    (Self : not null access constant OCL_Iterate_Exp_Proxy)
263       return AMF.UML.String_Expressions.UML_String_Expression_Access is
264   begin
265      return
266        AMF.UML.String_Expressions.UML_String_Expression_Access
267         (AMF.Internals.Helpers.To_Element
268           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Name_Expression
269             (Self.Element)));
270   end Get_Name_Expression;
271
272   -------------------------
273   -- Set_Name_Expression --
274   -------------------------
275
276   overriding procedure Set_Name_Expression
277    (Self : not null access OCL_Iterate_Exp_Proxy;
278     To   : AMF.UML.String_Expressions.UML_String_Expression_Access) is
279   begin
280      AMF.Internals.Tables.OCL_Attributes.Internal_Set_Name_Expression
281       (Self.Element,
282        AMF.Internals.Helpers.To_Element
283         (AMF.Elements.Element_Access (To)));
284   end Set_Name_Expression;
285
286   -------------------
287   -- Get_Namespace --
288   -------------------
289
290   overriding function Get_Namespace
291    (Self : not null access constant OCL_Iterate_Exp_Proxy)
292       return AMF.UML.Namespaces.UML_Namespace_Access is
293   begin
294      return
295        AMF.UML.Namespaces.UML_Namespace_Access
296         (AMF.Internals.Helpers.To_Element
297           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Namespace
298             (Self.Element)));
299   end Get_Namespace;
300
301   ------------------------
302   -- Get_Qualified_Name --
303   ------------------------
304
305   overriding function Get_Qualified_Name
306    (Self : not null access constant OCL_Iterate_Exp_Proxy)
307       return AMF.Optional_String is
308   begin
309      declare
310         use type Matreshka.Internals.Strings.Shared_String_Access;
311
312         Aux : constant Matreshka.Internals.Strings.Shared_String_Access
313           := AMF.Internals.Tables.OCL_Attributes.Internal_Get_Qualified_Name (Self.Element);
314
315      begin
316         if Aux = null then
317            return (Is_Empty => True);
318
319         else
320            return (False, League.Strings.Internals.Create (Aux));
321         end if;
322      end;
323   end Get_Qualified_Name;
324
325   --------------------
326   -- Get_Visibility --
327   --------------------
328
329   overriding function Get_Visibility
330    (Self : not null access constant OCL_Iterate_Exp_Proxy)
331       return AMF.UML.Optional_UML_Visibility_Kind is
332   begin
333      return
334        AMF.Internals.Tables.OCL_Attributes.Internal_Get_Visibility
335         (Self.Element);
336   end Get_Visibility;
337
338   --------------------
339   -- Set_Visibility --
340   --------------------
341
342   overriding procedure Set_Visibility
343    (Self : not null access OCL_Iterate_Exp_Proxy;
344     To   : AMF.UML.Optional_UML_Visibility_Kind) is
345   begin
346      AMF.Internals.Tables.OCL_Attributes.Internal_Set_Visibility
347       (Self.Element, To);
348   end Set_Visibility;
349
350   -----------------------
351   -- Get_Owned_Comment --
352   -----------------------
353
354   overriding function Get_Owned_Comment
355    (Self : not null access constant OCL_Iterate_Exp_Proxy)
356       return AMF.UML.Comments.Collections.Set_Of_UML_Comment is
357   begin
358      return
359        AMF.UML.Comments.Collections.Wrap
360         (AMF.Internals.Element_Collections.Wrap
361           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Owned_Comment
362             (Self.Element)));
363   end Get_Owned_Comment;
364
365   -----------------------
366   -- Get_Owned_Element --
367   -----------------------
368
369   overriding function Get_Owned_Element
370    (Self : not null access constant OCL_Iterate_Exp_Proxy)
371       return AMF.UML.Elements.Collections.Set_Of_UML_Element is
372   begin
373      return
374        AMF.UML.Elements.Collections.Wrap
375         (AMF.Internals.Element_Collections.Wrap
376           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Owned_Element
377             (Self.Element)));
378   end Get_Owned_Element;
379
380   ---------------
381   -- Get_Owner --
382   ---------------
383
384   overriding function Get_Owner
385    (Self : not null access constant OCL_Iterate_Exp_Proxy)
386       return AMF.UML.Elements.UML_Element_Access is
387   begin
388      return
389        AMF.UML.Elements.UML_Element_Access
390         (AMF.Internals.Helpers.To_Element
391           (AMF.Internals.Tables.OCL_Attributes.Internal_Get_Owner
392             (Self.Element)));
393   end Get_Owner;
394
395   --------------------
396   -- All_Namespaces --
397   --------------------
398
399   overriding function All_Namespaces
400    (Self : not null access constant OCL_Iterate_Exp_Proxy)
401       return AMF.UML.Namespaces.Collections.Ordered_Set_Of_UML_Namespace is
402   begin
403      --  Generated stub: replace with real body!
404      pragma Compile_Time_Warning (Standard.True, "All_Namespaces unimplemented");
405      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.All_Namespaces";
406      return All_Namespaces (Self);
407   end All_Namespaces;
408
409   -------------------------
410   -- All_Owning_Packages --
411   -------------------------
412
413   overriding function All_Owning_Packages
414    (Self : not null access constant OCL_Iterate_Exp_Proxy)
415       return AMF.UML.Packages.Collections.Set_Of_UML_Package is
416   begin
417      --  Generated stub: replace with real body!
418      pragma Compile_Time_Warning (Standard.True, "All_Owning_Packages unimplemented");
419      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.All_Owning_Packages";
420      return All_Owning_Packages (Self);
421   end All_Owning_Packages;
422
423   -----------------------------
424   -- Is_Distinguishable_From --
425   -----------------------------
426
427   overriding function Is_Distinguishable_From
428    (Self : not null access constant OCL_Iterate_Exp_Proxy;
429     N : AMF.UML.Named_Elements.UML_Named_Element_Access;
430     Ns : AMF.UML.Namespaces.UML_Namespace_Access)
431       return Boolean is
432   begin
433      --  Generated stub: replace with real body!
434      pragma Compile_Time_Warning (Standard.True, "Is_Distinguishable_From unimplemented");
435      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.Is_Distinguishable_From";
436      return Is_Distinguishable_From (Self, N, Ns);
437   end Is_Distinguishable_From;
438
439   ---------------
440   -- Namespace --
441   ---------------
442
443   overriding function Namespace
444    (Self : not null access constant OCL_Iterate_Exp_Proxy)
445       return AMF.UML.Namespaces.UML_Namespace_Access is
446   begin
447      --  Generated stub: replace with real body!
448      pragma Compile_Time_Warning (Standard.True, "Namespace unimplemented");
449      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.Namespace";
450      return Namespace (Self);
451   end Namespace;
452
453   --------------------
454   -- Qualified_Name --
455   --------------------
456
457   overriding function Qualified_Name
458    (Self : not null access constant OCL_Iterate_Exp_Proxy)
459       return League.Strings.Universal_String is
460   begin
461      --  Generated stub: replace with real body!
462      pragma Compile_Time_Warning (Standard.True, "Qualified_Name unimplemented");
463      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.Qualified_Name";
464      return Qualified_Name (Self);
465   end Qualified_Name;
466
467   ---------------
468   -- Separator --
469   ---------------
470
471   overriding function Separator
472    (Self : not null access constant OCL_Iterate_Exp_Proxy)
473       return League.Strings.Universal_String is
474   begin
475      --  Generated stub: replace with real body!
476      pragma Compile_Time_Warning (Standard.True, "Separator unimplemented");
477      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.Separator";
478      return Separator (Self);
479   end Separator;
480
481   ------------------------
482   -- All_Owned_Elements --
483   ------------------------
484
485   overriding function All_Owned_Elements
486    (Self : not null access constant OCL_Iterate_Exp_Proxy)
487       return AMF.UML.Elements.Collections.Set_Of_UML_Element is
488   begin
489      --  Generated stub: replace with real body!
490      pragma Compile_Time_Warning (Standard.True, "All_Owned_Elements unimplemented");
491      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.All_Owned_Elements";
492      return All_Owned_Elements (Self);
493   end All_Owned_Elements;
494
495   -------------------
496   -- Must_Be_Owned --
497   -------------------
498
499   overriding function Must_Be_Owned
500    (Self : not null access constant OCL_Iterate_Exp_Proxy)
501       return Boolean is
502   begin
503      --  Generated stub: replace with real body!
504      pragma Compile_Time_Warning (Standard.True, "Must_Be_Owned unimplemented");
505      raise Program_Error with "Unimplemented procedure OCL_Iterate_Exp_Proxy.Must_Be_Owned";
506      return Must_Be_Owned (Self);
507   end Must_Be_Owned;
508
509   -------------------
510   -- Enter_Element --
511   -------------------
512
513   overriding procedure Enter_Element
514    (Self    : not null access constant OCL_Iterate_Exp_Proxy;
515     Visitor : in out AMF.Visitors.Abstract_Visitor'Class;
516     Control : in out AMF.Visitors.Traverse_Control) is
517   begin
518      if Visitor in AMF.Visitors.OCL_Visitors.OCL_Visitor'Class then
519         AMF.Visitors.OCL_Visitors.OCL_Visitor'Class
520          (Visitor).Enter_Iterate_Exp
521            (AMF.OCL.Iterate_Exps.OCL_Iterate_Exp_Access (Self),
522           Control);
523      end if;
524   end Enter_Element;
525
526   -------------------
527   -- Leave_Element --
528   -------------------
529
530   overriding procedure Leave_Element
531    (Self    : not null access constant OCL_Iterate_Exp_Proxy;
532     Visitor : in out AMF.Visitors.Abstract_Visitor'Class;
533     Control : in out AMF.Visitors.Traverse_Control) is
534   begin
535      if Visitor in AMF.Visitors.OCL_Visitors.OCL_Visitor'Class then
536         AMF.Visitors.OCL_Visitors.OCL_Visitor'Class
537          (Visitor).Leave_Iterate_Exp
538            (AMF.OCL.Iterate_Exps.OCL_Iterate_Exp_Access (Self),
539           Control);
540      end if;
541   end Leave_Element;
542
543   -------------------
544   -- Visit_Element --
545   -------------------
546
547   overriding procedure Visit_Element
548    (Self     : not null access constant OCL_Iterate_Exp_Proxy;
549     Iterator : in out AMF.Visitors.Abstract_Iterator'Class;
550     Visitor  : in out AMF.Visitors.Abstract_Visitor'Class;
551     Control  : in out AMF.Visitors.Traverse_Control) is
552   begin
553      if Iterator in AMF.Visitors.OCL_Iterators.OCL_Iterator'Class then
554         AMF.Visitors.OCL_Iterators.OCL_Iterator'Class
555          (Iterator).Visit_Iterate_Exp
556            (Visitor,
557             AMF.OCL.Iterate_Exps.OCL_Iterate_Exp_Access (Self),
558           Control);
559      end if;
560   end Visit_Element;
561
562end AMF.Internals.OCL_Iterate_Exps;
563