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: 2324 $ $Date: 2011-12-03 13:24:03 +0400 (Sat, 03 Dec 2011) $
43------------------------------------------------------------------------------
44--  This file is generated, don't edit it.
45------------------------------------------------------------------------------
46--  A property is a structural feature of a classifier that characterizes
47--  instances of the classifier. A property related by ownedAttribute to a
48--  classifier (other than an association) represents an attribute and might
49--  also represent an association end. It relates an instance of the class to
50--  a value or set of values of the type of the attribute. A property related
51--  by memberEnd or its specializations to an association represents an end of
52--  the association. The type of the property is the type of the end of the
53--  association.
54------------------------------------------------------------------------------
55limited with AMF.CMOF.Associations;
56limited with AMF.CMOF.Classes;
57limited with AMF.CMOF.Classifiers.Collections;
58limited with AMF.CMOF.Data_Types;
59limited with AMF.CMOF.Properties.Collections;
60limited with AMF.CMOF.Redefinable_Elements;
61with AMF.CMOF.Structural_Features;
62
63package AMF.CMOF.Properties is
64
65   pragma Preelaborate;
66
67   type CMOF_Property is limited interface
68     and AMF.CMOF.Structural_Features.CMOF_Structural_Feature;
69
70   type CMOF_Property_Access is
71     access all CMOF_Property'Class;
72   for CMOF_Property_Access'Storage_Size use 0;
73
74   not overriding function Get_Is_Read_Only
75    (Self : not null access constant CMOF_Property)
76       return Boolean is abstract;
77   --  Getter of Property::isReadOnly.
78   --
79   --  If isReadOnly is true, the attribute may not be written to after
80   --  initialization.
81
82   not overriding procedure Set_Is_Read_Only
83    (Self : not null access CMOF_Property;
84     To   : Boolean) is abstract;
85   --  Setter of Property::isReadOnly.
86   --
87   --  If isReadOnly is true, the attribute may not be written to after
88   --  initialization.
89
90   not overriding function Get_Default
91    (Self : not null access constant CMOF_Property)
92       return AMF.Optional_String is abstract;
93   --  Getter of Property::default.
94   --
95   --  Specifies a String that represents a value to be used when no argument
96   --  is supplied for the Property.
97
98   not overriding procedure Set_Default
99    (Self : not null access CMOF_Property;
100     To   : AMF.Optional_String) is abstract;
101   --  Setter of Property::default.
102   --
103   --  Specifies a String that represents a value to be used when no argument
104   --  is supplied for the Property.
105
106   not overriding function Get_Is_Composite
107    (Self : not null access constant CMOF_Property)
108       return Boolean is abstract;
109   --  Getter of Property::isComposite.
110   --
111   --  If isComposite is true, the object containing the attribute is a
112   --  container for the object or value contained in the attribute.
113
114   not overriding procedure Set_Is_Composite
115    (Self : not null access CMOF_Property;
116     To   : Boolean) is abstract;
117   --  Setter of Property::isComposite.
118   --
119   --  If isComposite is true, the object containing the attribute is a
120   --  container for the object or value contained in the attribute.
121
122   not overriding function Get_Is_Derived
123    (Self : not null access constant CMOF_Property)
124       return Boolean is abstract;
125   --  Getter of Property::isDerived.
126   --
127   --  If isDerived is true, the value of the attribute is derived from
128   --  information elsewhere.
129
130   not overriding procedure Set_Is_Derived
131    (Self : not null access CMOF_Property;
132     To   : Boolean) is abstract;
133   --  Setter of Property::isDerived.
134   --
135   --  If isDerived is true, the value of the attribute is derived from
136   --  information elsewhere.
137
138   not overriding function Get_Is_Derived_Union
139    (Self : not null access constant CMOF_Property)
140       return Boolean is abstract;
141   --  Getter of Property::isDerivedUnion.
142   --
143   --  Specifies whether the property is derived as the union of all of the
144   --  properties that are constrained to subset it.
145
146   not overriding procedure Set_Is_Derived_Union
147    (Self : not null access CMOF_Property;
148     To   : Boolean) is abstract;
149   --  Setter of Property::isDerivedUnion.
150   --
151   --  Specifies whether the property is derived as the union of all of the
152   --  properties that are constrained to subset it.
153
154   not overriding function Get_Class
155    (Self : not null access constant CMOF_Property)
156       return AMF.CMOF.Classes.CMOF_Class_Access is abstract;
157   --  Getter of Property::class.
158   --
159   --  References the Class that owns the Property.
160
161   not overriding procedure Set_Class
162    (Self : not null access CMOF_Property;
163     To   : AMF.CMOF.Classes.CMOF_Class_Access) is abstract;
164   --  Setter of Property::class.
165   --
166   --  References the Class that owns the Property.
167
168   not overriding function Get_Owning_Association
169    (Self : not null access constant CMOF_Property)
170       return AMF.CMOF.Associations.CMOF_Association_Access is abstract;
171   --  Getter of Property::owningAssociation.
172   --
173   --  References the owning association of this property, if any.
174
175   not overriding procedure Set_Owning_Association
176    (Self : not null access CMOF_Property;
177     To   : AMF.CMOF.Associations.CMOF_Association_Access) is abstract;
178   --  Setter of Property::owningAssociation.
179   --
180   --  References the owning association of this property, if any.
181
182   not overriding function Get_Redefined_Property
183    (Self : not null access constant CMOF_Property)
184       return AMF.CMOF.Properties.Collections.Set_Of_CMOF_Property is abstract;
185   --  Getter of Property::redefinedProperty.
186   --
187   --  References the properties that are redefined by this property.
188
189   not overriding function Get_Subsetted_Property
190    (Self : not null access constant CMOF_Property)
191       return AMF.CMOF.Properties.Collections.Set_Of_CMOF_Property is abstract;
192   --  Getter of Property::subsettedProperty.
193   --
194   --  References the properties of which this property is constrained to be a
195   --  subset.
196
197   not overriding function Get_Opposite
198    (Self : not null access constant CMOF_Property)
199       return AMF.CMOF.Properties.CMOF_Property_Access is abstract;
200   --  Getter of Property::opposite.
201   --
202   --  In the case where the property is one navigable end of a binary
203   --  association with both ends navigable, this gives the other end.
204
205   not overriding procedure Set_Opposite
206    (Self : not null access CMOF_Property;
207     To   : AMF.CMOF.Properties.CMOF_Property_Access) is abstract;
208   --  Setter of Property::opposite.
209   --
210   --  In the case where the property is one navigable end of a binary
211   --  association with both ends navigable, this gives the other end.
212
213   not overriding function Get_Datatype
214    (Self : not null access constant CMOF_Property)
215       return AMF.CMOF.Data_Types.CMOF_Data_Type_Access is abstract;
216   --  Getter of Property::datatype.
217   --
218   --  The DataType that owns this Property.
219
220   not overriding procedure Set_Datatype
221    (Self : not null access CMOF_Property;
222     To   : AMF.CMOF.Data_Types.CMOF_Data_Type_Access) is abstract;
223   --  Setter of Property::datatype.
224   --
225   --  The DataType that owns this Property.
226
227   not overriding function Get_Association
228    (Self : not null access constant CMOF_Property)
229       return AMF.CMOF.Associations.CMOF_Association_Access is abstract;
230   --  Getter of Property::association.
231   --
232   --  References the association of which this property is a member, if any.
233
234   not overriding procedure Set_Association
235    (Self : not null access CMOF_Property;
236     To   : AMF.CMOF.Associations.CMOF_Association_Access) is abstract;
237   --  Setter of Property::association.
238   --
239   --  References the association of which this property is a member, if any.
240
241   not overriding function Opposite
242    (Self : not null access constant CMOF_Property)
243       return AMF.CMOF.Properties.CMOF_Property_Access is abstract;
244   --  Operation Property::opposite.
245   --
246   --  If this property is owned by a class, associated with a binary
247   --  association, and the other end of the association is also owned by a
248   --  class, then opposite gives the other end.
249
250   overriding function Is_Consistent_With
251    (Self : not null access constant CMOF_Property;
252     Redefinee : AMF.CMOF.Redefinable_Elements.CMOF_Redefinable_Element_Access)
253       return Boolean is abstract;
254   --  Operation Property::isConsistentWith.
255   --
256   --  The query isConsistentWith() specifies, for any two Properties in a
257   --  context in which redefinition is possible, whether redefinition would
258   --  be logically consistent. A redefining property is consistent with a
259   --  redefined property if the type of the redefining property conforms to
260   --  the type of the redefined property, the multiplicity of the redefining
261   --  property (if specified) is contained in the multiplicity of the
262   --  redefined property, and the redefining property is derived if the
263   --  redefined property is derived.
264
265   not overriding function Subsetting_Context
266    (Self : not null access constant CMOF_Property)
267       return AMF.CMOF.Classifiers.Collections.Set_Of_CMOF_Classifier is abstract;
268   --  Operation Property::subsettingContext.
269   --
270   --  The query subsettingContext() gives the context for subsetting a
271   --  property. It consists, in the case of an attribute, of the
272   --  corresponding classifier, and in the case of an association end, all of
273   --  the classifiers at the other ends.
274
275   not overriding function Is_Navigable
276    (Self : not null access constant CMOF_Property)
277       return Boolean is abstract;
278   --  Operation Property::isNavigable.
279   --
280   --  The query isNavigable() indicates whether it is possible to navigate
281   --  across the property.
282
283   not overriding function Is_Attribute
284    (Self : not null access constant CMOF_Property;
285     P : AMF.CMOF.Properties.CMOF_Property_Access)
286       return Boolean is abstract;
287   --  Operation Property::isAttribute.
288   --
289   --  The query isAttribute() is true if the Property is defined as an
290   --  attribute of some classifier.
291
292end AMF.CMOF.Properties;
293