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: 2714 $ $Date: 2012-03-24 10:29:08 +0400 (Sat, 24 Mar 2012) $ 43------------------------------------------------------------------------------ 44-- This file is generated, don't edit it. 45------------------------------------------------------------------------------ 46-- Property represents a declared state of one or more instances in terms of 47-- a named relationship to a value or values. When a property is an attribute 48-- of a classifier, the value or values are related to the instance of the 49-- classifier by being held in slots of the instance. When a property is an 50-- association end, the value or values are related to the instance or 51-- instances at the other end(s) of the association. The range of valid 52-- values represented by the property can be controlled by setting the 53-- property's type. 54-- 55-- A property has the capability of being a deployment target in a deployment 56-- relationship. This enables modeling the deployment to hierarchical nodes 57-- that have properties functioning as internal parts. 58-- 59-- Property specializes ParameterableElement to specify that a property can 60-- be exposed as a formal template parameter, and provided as an actual 61-- parameter in a binding of a template. 62-- 63-- A property represents a set of instances that are owned by a containing 64-- classifier instance. 65-- 66-- A property is a structural feature of a classifier that characterizes 67-- instances of the classifier. A property related by ownedAttribute to a 68-- classifier (other than an association) represents an attribute and might 69-- also represent an association end. It relates an instance of the class to 70-- a value or set of values of the type of the attribute. A property related 71-- by memberEnd or its specializations to an association represents an end of 72-- the association. The type of the property is the type of the end of the 73-- association. 74------------------------------------------------------------------------------ 75limited with AMF.UML.Associations; 76limited with AMF.UML.Classes; 77with AMF.UML.Connectable_Elements; 78limited with AMF.UML.Data_Types; 79with AMF.UML.Deployment_Targets; 80limited with AMF.UML.Interfaces; 81limited with AMF.UML.Parameterable_Elements; 82limited with AMF.UML.Properties.Collections; 83limited with AMF.UML.Redefinable_Elements; 84with AMF.UML.Structural_Features; 85limited with AMF.UML.Types.Collections; 86limited with AMF.UML.Value_Specifications; 87 88package AMF.UML.Properties is 89 90 pragma Preelaborate; 91 92 type UML_Property is limited interface 93 and AMF.UML.Connectable_Elements.UML_Connectable_Element 94 and AMF.UML.Deployment_Targets.UML_Deployment_Target 95 and AMF.UML.Structural_Features.UML_Structural_Feature; 96 97 type UML_Property_Access is 98 access all UML_Property'Class; 99 for UML_Property_Access'Storage_Size use 0; 100 101 not overriding function Get_Aggregation 102 (Self : not null access constant UML_Property) 103 return AMF.UML.UML_Aggregation_Kind is abstract; 104 -- Getter of Property::aggregation. 105 -- 106 -- Specifies the kind of aggregation that applies to the Property. 107 108 not overriding procedure Set_Aggregation 109 (Self : not null access UML_Property; 110 To : AMF.UML.UML_Aggregation_Kind) is abstract; 111 -- Setter of Property::aggregation. 112 -- 113 -- Specifies the kind of aggregation that applies to the Property. 114 115 not overriding function Get_Association 116 (Self : not null access constant UML_Property) 117 return AMF.UML.Associations.UML_Association_Access is abstract; 118 -- Getter of Property::association. 119 -- 120 -- References the association of which this property is a member, if any. 121 122 not overriding procedure Set_Association 123 (Self : not null access UML_Property; 124 To : AMF.UML.Associations.UML_Association_Access) is abstract; 125 -- Setter of Property::association. 126 -- 127 -- References the association of which this property is a member, if any. 128 129 not overriding function Get_Association_End 130 (Self : not null access constant UML_Property) 131 return AMF.UML.Properties.UML_Property_Access is abstract; 132 -- Getter of Property::associationEnd. 133 -- 134 -- Designates the optional association end that owns a qualifier attribute. 135 136 not overriding procedure Set_Association_End 137 (Self : not null access UML_Property; 138 To : AMF.UML.Properties.UML_Property_Access) is abstract; 139 -- Setter of Property::associationEnd. 140 -- 141 -- Designates the optional association end that owns a qualifier attribute. 142 143 not overriding function Get_Class 144 (Self : not null access constant UML_Property) 145 return AMF.UML.Classes.UML_Class_Access is abstract; 146 -- Getter of Property::class. 147 -- 148 -- References the Class that owns the Property. 149 -- References the Class that owns the Property. 150 151 not overriding procedure Set_Class 152 (Self : not null access UML_Property; 153 To : AMF.UML.Classes.UML_Class_Access) is abstract; 154 -- Setter of Property::class. 155 -- 156 -- References the Class that owns the Property. 157 -- References the Class that owns the Property. 158 159 not overriding function Get_Datatype 160 (Self : not null access constant UML_Property) 161 return AMF.UML.Data_Types.UML_Data_Type_Access is abstract; 162 -- Getter of Property::datatype. 163 -- 164 -- The DataType that owns this Property. 165 166 not overriding procedure Set_Datatype 167 (Self : not null access UML_Property; 168 To : AMF.UML.Data_Types.UML_Data_Type_Access) is abstract; 169 -- Setter of Property::datatype. 170 -- 171 -- The DataType that owns this Property. 172 173 not overriding function Get_Default 174 (Self : not null access constant UML_Property) 175 return AMF.Optional_String is abstract; 176 -- Getter of Property::default. 177 -- 178 -- A String that is evaluated to give a default value for the Property 179 -- when an object of the owning Classifier is instantiated. 180 -- Specifies a String that represents a value to be used when no argument 181 -- is supplied for the Property. 182 183 not overriding procedure Set_Default 184 (Self : not null access UML_Property; 185 To : AMF.Optional_String) is abstract; 186 -- Setter of Property::default. 187 -- 188 -- A String that is evaluated to give a default value for the Property 189 -- when an object of the owning Classifier is instantiated. 190 -- Specifies a String that represents a value to be used when no argument 191 -- is supplied for the Property. 192 193 not overriding function Get_Default_Value 194 (Self : not null access constant UML_Property) 195 return AMF.UML.Value_Specifications.UML_Value_Specification_Access is abstract; 196 -- Getter of Property::defaultValue. 197 -- 198 -- A ValueSpecification that is evaluated to give a default value for the 199 -- Property when an object of the owning Classifier is instantiated. 200 201 not overriding procedure Set_Default_Value 202 (Self : not null access UML_Property; 203 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access) is abstract; 204 -- Setter of Property::defaultValue. 205 -- 206 -- A ValueSpecification that is evaluated to give a default value for the 207 -- Property when an object of the owning Classifier is instantiated. 208 209 not overriding function Get_Interface 210 (Self : not null access constant UML_Property) 211 return AMF.UML.Interfaces.UML_Interface_Access is abstract; 212 -- Getter of Property::interface. 213 -- 214 -- References the Interface that owns the Property 215 216 not overriding procedure Set_Interface 217 (Self : not null access UML_Property; 218 To : AMF.UML.Interfaces.UML_Interface_Access) is abstract; 219 -- Setter of Property::interface. 220 -- 221 -- References the Interface that owns the Property 222 223 not overriding function Get_Is_Composite 224 (Self : not null access constant UML_Property) 225 return Boolean is abstract; 226 -- Getter of Property::isComposite. 227 -- 228 -- If isComposite is true, the object containing the attribute is a 229 -- container for the object or value contained in the attribute. 230 -- This is a derived value, indicating whether the aggregation of the 231 -- Property is composite or not. 232 233 not overriding procedure Set_Is_Composite 234 (Self : not null access UML_Property; 235 To : Boolean) is abstract; 236 -- Setter of Property::isComposite. 237 -- 238 -- If isComposite is true, the object containing the attribute is a 239 -- container for the object or value contained in the attribute. 240 -- This is a derived value, indicating whether the aggregation of the 241 -- Property is composite or not. 242 243 not overriding function Get_Is_Derived 244 (Self : not null access constant UML_Property) 245 return Boolean is abstract; 246 -- Getter of Property::isDerived. 247 -- 248 -- Specifies whether the Property is derived, i.e., whether its value or 249 -- values can be computed from other information. 250 -- If isDerived is true, the value of the attribute is derived from 251 -- information elsewhere. 252 253 not overriding procedure Set_Is_Derived 254 (Self : not null access UML_Property; 255 To : Boolean) is abstract; 256 -- Setter of Property::isDerived. 257 -- 258 -- Specifies whether the Property is derived, i.e., whether its value or 259 -- values can be computed from other information. 260 -- If isDerived is true, the value of the attribute is derived from 261 -- information elsewhere. 262 263 not overriding function Get_Is_Derived_Union 264 (Self : not null access constant UML_Property) 265 return Boolean is abstract; 266 -- Getter of Property::isDerivedUnion. 267 -- 268 -- Specifies whether the property is derived as the union of all of the 269 -- properties that are constrained to subset it. 270 271 not overriding procedure Set_Is_Derived_Union 272 (Self : not null access UML_Property; 273 To : Boolean) is abstract; 274 -- Setter of Property::isDerivedUnion. 275 -- 276 -- Specifies whether the property is derived as the union of all of the 277 -- properties that are constrained to subset it. 278 279 not overriding function Get_Is_ID 280 (Self : not null access constant UML_Property) 281 return Boolean is abstract; 282 -- Getter of Property::isID. 283 -- 284 -- True indicates this property can be used to uniquely identify an 285 -- instance of the containing Class. 286 287 not overriding procedure Set_Is_ID 288 (Self : not null access UML_Property; 289 To : Boolean) is abstract; 290 -- Setter of Property::isID. 291 -- 292 -- True indicates this property can be used to uniquely identify an 293 -- instance of the containing Class. 294 295 overriding function Get_Is_Read_Only 296 (Self : not null access constant UML_Property) 297 return Boolean is abstract; 298 -- Getter of Property::isReadOnly. 299 -- 300 -- If isReadOnly is true, the attribute may not be written to after 301 -- initialization. 302 -- If true, the attribute may only be read, and not written. 303 304 overriding procedure Set_Is_Read_Only 305 (Self : not null access UML_Property; 306 To : Boolean) is abstract; 307 -- Setter of Property::isReadOnly. 308 -- 309 -- If isReadOnly is true, the attribute may not be written to after 310 -- initialization. 311 -- If true, the attribute may only be read, and not written. 312 313 not overriding function Get_Opposite 314 (Self : not null access constant UML_Property) 315 return AMF.UML.Properties.UML_Property_Access is abstract; 316 -- Getter of Property::opposite. 317 -- 318 -- In the case where the property is one navigable end of a binary 319 -- association with both ends navigable, this gives the other end. 320 321 not overriding procedure Set_Opposite 322 (Self : not null access UML_Property; 323 To : AMF.UML.Properties.UML_Property_Access) is abstract; 324 -- Setter of Property::opposite. 325 -- 326 -- In the case where the property is one navigable end of a binary 327 -- association with both ends navigable, this gives the other end. 328 329 not overriding function Get_Owning_Association 330 (Self : not null access constant UML_Property) 331 return AMF.UML.Associations.UML_Association_Access is abstract; 332 -- Getter of Property::owningAssociation. 333 -- 334 -- References the owning association of this property, if any. 335 336 not overriding procedure Set_Owning_Association 337 (Self : not null access UML_Property; 338 To : AMF.UML.Associations.UML_Association_Access) is abstract; 339 -- Setter of Property::owningAssociation. 340 -- 341 -- References the owning association of this property, if any. 342 343 not overriding function Get_Qualifier 344 (Self : not null access constant UML_Property) 345 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property is abstract; 346 -- Getter of Property::qualifier. 347 -- 348 -- An optional list of ordered qualifier attributes for the end. If the 349 -- list is empty, then the Association is not qualified. 350 351 not overriding function Get_Redefined_Property 352 (Self : not null access constant UML_Property) 353 return AMF.UML.Properties.Collections.Set_Of_UML_Property is abstract; 354 -- Getter of Property::redefinedProperty. 355 -- 356 -- References the properties that are redefined by this property. 357 358 not overriding function Get_Subsetted_Property 359 (Self : not null access constant UML_Property) 360 return AMF.UML.Properties.Collections.Set_Of_UML_Property is abstract; 361 -- Getter of Property::subsettedProperty. 362 -- 363 -- References the properties of which this property is constrained to be a 364 -- subset. 365 366 not overriding function Default 367 (Self : not null access constant UML_Property) 368 return AMF.Optional_String is abstract; 369 -- Operation Property::default. 370 -- 371 -- Missing derivation for Property::/default : String 372 373 not overriding function Is_Attribute 374 (Self : not null access constant UML_Property; 375 P : AMF.UML.Properties.UML_Property_Access) 376 return Boolean is abstract; 377 -- Operation Property::isAttribute. 378 -- 379 -- The query isAttribute() is true if the Property is defined as an 380 -- attribute of some classifier. 381 382 overriding function Is_Compatible_With 383 (Self : not null access constant UML_Property; 384 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 385 return Boolean is abstract; 386 -- Operation Property::isCompatibleWith. 387 -- 388 -- The query isCompatibleWith() determines if this parameterable element 389 -- is compatible with the specified parameterable element. By default 390 -- parameterable element P is compatible with parameterable element Q if 391 -- the kind of P is the same or a subtype as the kind of Q. In addition, 392 -- for properties, the type must be conformant with the type of the 393 -- specified parameterable element. 394 395 not overriding function Is_Composite 396 (Self : not null access constant UML_Property) 397 return Boolean is abstract; 398 -- Operation Property::isComposite. 399 -- 400 -- The value of isComposite is true only if aggregation is composite. 401 402 overriding function Is_Consistent_With 403 (Self : not null access constant UML_Property; 404 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 405 return Boolean is abstract; 406 -- Operation Property::isConsistentWith. 407 -- 408 -- The query isConsistentWith() specifies, for any two Properties in a 409 -- context in which redefinition is possible, whether redefinition would 410 -- be logically consistent. A redefining property is consistent with a 411 -- redefined property if the type of the redefining property conforms to 412 -- the type of the redefined property, the multiplicity of the redefining 413 -- property (if specified) is contained in the multiplicity of the 414 -- redefined property. 415 -- The query isConsistentWith() specifies, for any two Properties in a 416 -- context in which redefinition is possible, whether redefinition would 417 -- be logically consistent. A redefining property is consistent with a 418 -- redefined property if the type of the redefining property conforms to 419 -- the type of the redefined property, and the multiplicity of the 420 -- redefining property (if specified) is contained in the multiplicity of 421 -- the redefined property. 422 423 not overriding function Is_Navigable 424 (Self : not null access constant UML_Property) 425 return Boolean is abstract; 426 -- Operation Property::isNavigable. 427 -- 428 -- The query isNavigable() indicates whether it is possible to navigate 429 -- across the property. 430 431 not overriding function Opposite 432 (Self : not null access constant UML_Property) 433 return AMF.UML.Properties.UML_Property_Access is abstract; 434 -- Operation Property::opposite. 435 -- 436 -- If this property is owned by a class, associated with a binary 437 -- association, and the other end of the association is also owned by a 438 -- class, then opposite gives the other end. 439 440 not overriding function Subsetting_Context 441 (Self : not null access constant UML_Property) 442 return AMF.UML.Types.Collections.Set_Of_UML_Type is abstract; 443 -- Operation Property::subsettingContext. 444 -- 445 -- The query subsettingContext() gives the context for subsetting a 446 -- property. It consists, in the case of an attribute, of the 447 -- corresponding classifier, and in the case of an association end, all of 448 -- the classifiers at the other ends. 449 450end AMF.UML.Properties; 451