1------------------------------------------------------------------------------
2--                                                                          --
3--                            Matreshka Project                             --
4--                                                                          --
5--                          Ada Modeling Framework                          --
6--                                                                          --
7--                        Runtime Library Component                         --
8--                                                                          --
9------------------------------------------------------------------------------
10--                                                                          --
11-- Copyright © 2011, 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: 2520 $ $Date: 2012-02-29 02:21:52 +0400 (Wed, 29 Feb 2012) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46--  A namespace is an element in a model that contains a set of named elements
47--  that can be identified by name.
48------------------------------------------------------------------------------
49limited with AMF.CMOF.Constraints.Collections;
50limited with AMF.CMOF.Element_Imports.Collections;
51with AMF.CMOF.Named_Elements;
52limited with AMF.CMOF.Named_Elements.Collections;
53limited with AMF.CMOF.Package_Imports.Collections;
54limited with AMF.CMOF.Packageable_Elements.Collections;
55with AMF.String_Collections;
56
57package AMF.CMOF.Namespaces is
58
59   pragma Preelaborate;
60
61   type CMOF_Namespace is limited interface
62     and AMF.CMOF.Named_Elements.CMOF_Named_Element;
63
64   type CMOF_Namespace_Access is
65     access all CMOF_Namespace'Class;
66   for CMOF_Namespace_Access'Storage_Size use 0;
67
68   not overriding function Get_Imported_Member
69    (Self : not null access constant CMOF_Namespace)
70       return AMF.CMOF.Packageable_Elements.Collections.Set_Of_CMOF_Packageable_Element is abstract;
71   --  Getter of Namespace::importedMember.
72   --
73   --  References the PackageableElements that are members of this Namespace
74   --  as a result of either PackageImports or ElementImports.
75
76   not overriding function Get_Element_Import
77    (Self : not null access constant CMOF_Namespace)
78       return AMF.CMOF.Element_Imports.Collections.Set_Of_CMOF_Element_Import is abstract;
79   --  Getter of Namespace::elementImport.
80   --
81   --  References the ElementImports owned by the Namespace.
82
83   not overriding function Get_Package_Import
84    (Self : not null access constant CMOF_Namespace)
85       return AMF.CMOF.Package_Imports.Collections.Set_Of_CMOF_Package_Import is abstract;
86   --  Getter of Namespace::packageImport.
87   --
88   --  References the PackageImports owned by the Namespace.
89
90   not overriding function Get_Owned_Member
91    (Self : not null access constant CMOF_Namespace)
92       return AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element is abstract;
93   --  Getter of Namespace::ownedMember.
94   --
95   --  A collection of NamedElements owned by the Namespace.
96
97   not overriding function Get_Member
98    (Self : not null access constant CMOF_Namespace)
99       return AMF.CMOF.Named_Elements.Collections.Set_Of_CMOF_Named_Element is abstract;
100   --  Getter of Namespace::member.
101   --
102   --  A collection of NamedElements identifiable within the Namespace, either
103   --  by being owned or by being introduced by importing or inheritance.
104
105   not overriding function Get_Owned_Rule
106    (Self : not null access constant CMOF_Namespace)
107       return AMF.CMOF.Constraints.Collections.Set_Of_CMOF_Constraint is abstract;
108   --  Getter of Namespace::ownedRule.
109   --
110
111   not overriding function Imported_Member
112    (Self : not null access constant CMOF_Namespace)
113       return AMF.CMOF.Packageable_Elements.Collections.Set_Of_CMOF_Packageable_Element is abstract;
114   --  Operation Namespace::importedMember.
115   --
116   --  The importedMember property is derived from the ElementImports and the
117   --  PackageImports. References the PackageableElements that are members of
118   --  this Namespace as a result of either PackageImports or ElementImports.
119
120   not overriding function Get_Names_Of_Member
121    (Self : not null access constant CMOF_Namespace;
122     Element : AMF.CMOF.Named_Elements.CMOF_Named_Element_Access)
123       return AMF.String_Collections.Set_Of_String is abstract;
124   --  Operation Namespace::getNamesOfMember.
125   --
126   --  The query getNamesOfMember() takes importing into account. It gives
127   --  back the set of names that an element would have in an importing
128   --  namespace, either because it is owned, or if not owned then imported
129   --  individually, or if not individually then from a package.
130
131   not overriding function Import_Members
132    (Self : not null access constant CMOF_Namespace;
133     Imps : AMF.CMOF.Packageable_Elements.Collections.Set_Of_CMOF_Packageable_Element)
134       return AMF.CMOF.Packageable_Elements.Collections.Set_Of_CMOF_Packageable_Element is abstract;
135   --  Operation Namespace::importMembers.
136   --
137   --  The query importMembers() defines which of a set of PackageableElements
138   --  are actually imported into the namespace. This excludes hidden ones,
139   --  i.e., those which have names that conflict with names of owned members,
140   --  and also excludes elements which would have the same name when imported.
141
142   not overriding function Exclude_Collisions
143    (Self : not null access constant CMOF_Namespace;
144     Imps : AMF.CMOF.Packageable_Elements.Collections.Set_Of_CMOF_Packageable_Element)
145       return AMF.CMOF.Packageable_Elements.Collections.Set_Of_CMOF_Packageable_Element is abstract;
146   --  Operation Namespace::excludeCollisions.
147   --
148   --  The query excludeCollisions() excludes from a set of
149   --  PackageableElements any that would not be distinguishable from each
150   --  other in this namespace.
151
152   not overriding function Members_Are_Distinguishable
153    (Self : not null access constant CMOF_Namespace)
154       return Boolean is abstract;
155   --  Operation Namespace::membersAreDistinguishable.
156   --
157   --  The Boolean query membersAreDistinguishable() determines whether all of
158   --  the namespace's members are distinguishable within it.
159
160end AMF.CMOF.Namespaces;
161