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: 2967 $ $Date: 2012-05-12 10:21:56 +0400 (Sat, 12 May 2012) $ 43------------------------------------------------------------------------------ 44with AMF.Internals.UML_Named_Elements; 45with AMF.Internals.UML_Multiplicity_Elements; 46with AMF.UML.Associations; 47with AMF.UML.Classes; 48with AMF.UML.Classifiers.Collections; 49with AMF.UML.Connectable_Element_Template_Parameters; 50with AMF.UML.Connector_Ends.Collections; 51with AMF.UML.Data_Types; 52with AMF.UML.Dependencies.Collections; 53with AMF.UML.Deployments.Collections; 54with AMF.UML.Interfaces; 55with AMF.UML.Multiplicity_Elements; 56with AMF.UML.Named_Elements; 57with AMF.UML.Namespaces; 58with AMF.UML.Packageable_Elements.Collections; 59with AMF.UML.Packages.Collections; 60with AMF.UML.Parameterable_Elements; 61with AMF.UML.Properties.Collections; 62with AMF.UML.Redefinable_Elements.Collections; 63with AMF.UML.String_Expressions; 64with AMF.UML.Template_Parameters; 65with AMF.UML.Types.Collections; 66with AMF.UML.Value_Specifications; 67with AMF.Visitors; 68 69package AMF.Internals.UML_Properties is 70 71 package Multiplicity_Elements is 72 new AMF.Internals.UML_Multiplicity_Elements 73 (AMF.Internals.UML_Named_Elements.UML_Named_Element_Proxy); 74 75 type UML_Property_Proxy is 76 limited new Multiplicity_Elements.UML_Multiplicity_Element_Proxy 77 and AMF.UML.Properties.UML_Property with null record; 78 79 overriding function Get_Aggregation 80 (Self : not null access constant UML_Property_Proxy) 81 return AMF.UML.UML_Aggregation_Kind; 82 -- Getter of Property::aggregation. 83 -- 84 -- Specifies the kind of aggregation that applies to the Property. 85 86 overriding procedure Set_Aggregation 87 (Self : not null access UML_Property_Proxy; 88 To : AMF.UML.UML_Aggregation_Kind); 89 -- Setter of Property::aggregation. 90 -- 91 -- Specifies the kind of aggregation that applies to the Property. 92 93 overriding function Get_Association 94 (Self : not null access constant UML_Property_Proxy) 95 return AMF.UML.Associations.UML_Association_Access; 96 -- Getter of Property::association. 97 -- 98 -- References the association of which this property is a member, if any. 99 100 overriding procedure Set_Association 101 (Self : not null access UML_Property_Proxy; 102 To : AMF.UML.Associations.UML_Association_Access); 103 -- Setter of Property::association. 104 -- 105 -- References the association of which this property is a member, if any. 106 107 overriding function Get_Association_End 108 (Self : not null access constant UML_Property_Proxy) 109 return AMF.UML.Properties.UML_Property_Access; 110 -- Getter of Property::associationEnd. 111 -- 112 -- Designates the optional association end that owns a qualifier attribute. 113 114 overriding procedure Set_Association_End 115 (Self : not null access UML_Property_Proxy; 116 To : AMF.UML.Properties.UML_Property_Access); 117 -- Setter of Property::associationEnd. 118 -- 119 -- Designates the optional association end that owns a qualifier attribute. 120 121 overriding function Get_Class 122 (Self : not null access constant UML_Property_Proxy) 123 return AMF.UML.Classes.UML_Class_Access; 124 -- Getter of Property::class. 125 -- 126 -- References the Class that owns the Property. 127 -- References the Class that owns the Property. 128 129 overriding procedure Set_Class 130 (Self : not null access UML_Property_Proxy; 131 To : AMF.UML.Classes.UML_Class_Access); 132 -- Setter of Property::class. 133 -- 134 -- References the Class that owns the Property. 135 -- References the Class that owns the Property. 136 137 overriding function Get_Datatype 138 (Self : not null access constant UML_Property_Proxy) 139 return AMF.UML.Data_Types.UML_Data_Type_Access; 140 -- Getter of Property::datatype. 141 -- 142 -- The DataType that owns this Property. 143 144 overriding procedure Set_Datatype 145 (Self : not null access UML_Property_Proxy; 146 To : AMF.UML.Data_Types.UML_Data_Type_Access); 147 -- Setter of Property::datatype. 148 -- 149 -- The DataType that owns this Property. 150 151 overriding function Get_Default 152 (Self : not null access constant UML_Property_Proxy) 153 return AMF.Optional_String; 154 -- Getter of Property::default. 155 -- 156 -- A String that is evaluated to give a default value for the Property 157 -- when an object of the owning Classifier is instantiated. 158 -- Specifies a String that represents a value to be used when no argument 159 -- is supplied for the Property. 160 161 overriding procedure Set_Default 162 (Self : not null access UML_Property_Proxy; 163 To : AMF.Optional_String); 164 -- Setter of Property::default. 165 -- 166 -- A String that is evaluated to give a default value for the Property 167 -- when an object of the owning Classifier is instantiated. 168 -- Specifies a String that represents a value to be used when no argument 169 -- is supplied for the Property. 170 171 overriding function Get_Default_Value 172 (Self : not null access constant UML_Property_Proxy) 173 return AMF.UML.Value_Specifications.UML_Value_Specification_Access; 174 -- Getter of Property::defaultValue. 175 -- 176 -- A ValueSpecification that is evaluated to give a default value for the 177 -- Property when an object of the owning Classifier is instantiated. 178 179 overriding procedure Set_Default_Value 180 (Self : not null access UML_Property_Proxy; 181 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access); 182 -- Setter of Property::defaultValue. 183 -- 184 -- A ValueSpecification that is evaluated to give a default value for the 185 -- Property when an object of the owning Classifier is instantiated. 186 187 overriding function Get_Interface 188 (Self : not null access constant UML_Property_Proxy) 189 return AMF.UML.Interfaces.UML_Interface_Access; 190 -- Getter of Property::interface. 191 -- 192 -- References the Interface that owns the Property 193 194 overriding procedure Set_Interface 195 (Self : not null access UML_Property_Proxy; 196 To : AMF.UML.Interfaces.UML_Interface_Access); 197 -- Setter of Property::interface. 198 -- 199 -- References the Interface that owns the Property 200 201 overriding function Get_Is_Composite 202 (Self : not null access constant UML_Property_Proxy) 203 return Boolean; 204 -- Getter of Property::isComposite. 205 -- 206 -- If isComposite is true, the object containing the attribute is a 207 -- container for the object or value contained in the attribute. 208 -- This is a derived value, indicating whether the aggregation of the 209 -- Property is composite or not. 210 211 overriding procedure Set_Is_Composite 212 (Self : not null access UML_Property_Proxy; 213 To : Boolean); 214 -- Setter of Property::isComposite. 215 -- 216 -- If isComposite is true, the object containing the attribute is a 217 -- container for the object or value contained in the attribute. 218 -- This is a derived value, indicating whether the aggregation of the 219 -- Property is composite or not. 220 221 overriding function Get_Is_Derived 222 (Self : not null access constant UML_Property_Proxy) 223 return Boolean; 224 -- Getter of Property::isDerived. 225 -- 226 -- Specifies whether the Property is derived, i.e., whether its value or 227 -- values can be computed from other information. 228 -- If isDerived is true, the value of the attribute is derived from 229 -- information elsewhere. 230 231 overriding procedure Set_Is_Derived 232 (Self : not null access UML_Property_Proxy; 233 To : Boolean); 234 -- Setter of Property::isDerived. 235 -- 236 -- Specifies whether the Property is derived, i.e., whether its value or 237 -- values can be computed from other information. 238 -- If isDerived is true, the value of the attribute is derived from 239 -- information elsewhere. 240 241 overriding function Get_Is_Derived_Union 242 (Self : not null access constant UML_Property_Proxy) 243 return Boolean; 244 -- Getter of Property::isDerivedUnion. 245 -- 246 -- Specifies whether the property is derived as the union of all of the 247 -- properties that are constrained to subset it. 248 249 overriding procedure Set_Is_Derived_Union 250 (Self : not null access UML_Property_Proxy; 251 To : Boolean); 252 -- Setter of Property::isDerivedUnion. 253 -- 254 -- Specifies whether the property is derived as the union of all of the 255 -- properties that are constrained to subset it. 256 257 overriding function Get_Is_ID 258 (Self : not null access constant UML_Property_Proxy) 259 return Boolean; 260 -- Getter of Property::isID. 261 -- 262 -- True indicates this property can be used to uniquely identify an 263 -- instance of the containing Class. 264 265 overriding procedure Set_Is_ID 266 (Self : not null access UML_Property_Proxy; 267 To : Boolean); 268 -- Setter of Property::isID. 269 -- 270 -- True indicates this property can be used to uniquely identify an 271 -- instance of the containing Class. 272 273 overriding function Get_Is_Read_Only 274 (Self : not null access constant UML_Property_Proxy) 275 return Boolean; 276 -- Getter of Property::isReadOnly. 277 -- 278 -- If isReadOnly is true, the attribute may not be written to after 279 -- initialization. 280 -- If true, the attribute may only be read, and not written. 281 282 overriding procedure Set_Is_Read_Only 283 (Self : not null access UML_Property_Proxy; 284 To : Boolean); 285 -- Setter of Property::isReadOnly. 286 -- 287 -- If isReadOnly is true, the attribute may not be written to after 288 -- initialization. 289 -- If true, the attribute may only be read, and not written. 290 291 overriding function Get_Opposite 292 (Self : not null access constant UML_Property_Proxy) 293 return AMF.UML.Properties.UML_Property_Access; 294 -- Getter of Property::opposite. 295 -- 296 -- In the case where the property is one navigable end of a binary 297 -- association with both ends navigable, this gives the other end. 298 299 overriding procedure Set_Opposite 300 (Self : not null access UML_Property_Proxy; 301 To : AMF.UML.Properties.UML_Property_Access); 302 -- Setter of Property::opposite. 303 -- 304 -- In the case where the property is one navigable end of a binary 305 -- association with both ends navigable, this gives the other end. 306 307 overriding function Get_Owning_Association 308 (Self : not null access constant UML_Property_Proxy) 309 return AMF.UML.Associations.UML_Association_Access; 310 -- Getter of Property::owningAssociation. 311 -- 312 -- References the owning association of this property, if any. 313 314 overriding procedure Set_Owning_Association 315 (Self : not null access UML_Property_Proxy; 316 To : AMF.UML.Associations.UML_Association_Access); 317 -- Setter of Property::owningAssociation. 318 -- 319 -- References the owning association of this property, if any. 320 321 overriding function Get_Qualifier 322 (Self : not null access constant UML_Property_Proxy) 323 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property; 324 -- Getter of Property::qualifier. 325 -- 326 -- An optional list of ordered qualifier attributes for the end. If the 327 -- list is empty, then the Association is not qualified. 328 329 overriding function Get_Redefined_Property 330 (Self : not null access constant UML_Property_Proxy) 331 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 332 -- Getter of Property::redefinedProperty. 333 -- 334 -- References the properties that are redefined by this property. 335 336 overriding function Get_Subsetted_Property 337 (Self : not null access constant UML_Property_Proxy) 338 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 339 -- Getter of Property::subsettedProperty. 340 -- 341 -- References the properties of which this property is constrained to be a 342 -- subset. 343 344 overriding function Get_End 345 (Self : not null access constant UML_Property_Proxy) 346 return AMF.UML.Connector_Ends.Collections.Ordered_Set_Of_UML_Connector_End; 347 -- Getter of ConnectableElement::end. 348 -- 349 -- Denotes a set of connector ends that attaches to this connectable 350 -- element. 351 352 overriding function Get_Template_Parameter 353 (Self : not null access constant UML_Property_Proxy) 354 return AMF.UML.Connectable_Element_Template_Parameters.UML_Connectable_Element_Template_Parameter_Access; 355 -- Getter of ConnectableElement::templateParameter. 356 -- 357 -- The ConnectableElementTemplateParameter for this ConnectableElement 358 -- parameter. 359 360 overriding procedure Set_Template_Parameter 361 (Self : not null access UML_Property_Proxy; 362 To : AMF.UML.Connectable_Element_Template_Parameters.UML_Connectable_Element_Template_Parameter_Access); 363 -- Setter of ConnectableElement::templateParameter. 364 -- 365 -- The ConnectableElementTemplateParameter for this ConnectableElement 366 -- parameter. 367 368 overriding function Get_Type 369 (Self : not null access constant UML_Property_Proxy) 370 return AMF.UML.Types.UML_Type_Access; 371 -- Getter of TypedElement::type. 372 -- 373 -- The type of the TypedElement. 374 -- This information is derived from the return result for this Operation. 375 376 overriding procedure Set_Type 377 (Self : not null access UML_Property_Proxy; 378 To : AMF.UML.Types.UML_Type_Access); 379 -- Setter of TypedElement::type. 380 -- 381 -- The type of the TypedElement. 382 -- This information is derived from the return result for this Operation. 383 384 overriding function Get_Client_Dependency 385 (Self : not null access constant UML_Property_Proxy) 386 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 387 -- Getter of NamedElement::clientDependency. 388 -- 389 -- Indicates the dependencies that reference the client. 390 391 overriding function Get_Name_Expression 392 (Self : not null access constant UML_Property_Proxy) 393 return AMF.UML.String_Expressions.UML_String_Expression_Access; 394 -- Getter of NamedElement::nameExpression. 395 -- 396 -- The string expression used to define the name of this named element. 397 398 overriding procedure Set_Name_Expression 399 (Self : not null access UML_Property_Proxy; 400 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 401 -- Setter of NamedElement::nameExpression. 402 -- 403 -- The string expression used to define the name of this named element. 404 405 overriding function Get_Namespace 406 (Self : not null access constant UML_Property_Proxy) 407 return AMF.UML.Namespaces.UML_Namespace_Access; 408 -- Getter of NamedElement::namespace. 409 -- 410 -- Specifies the namespace that owns the NamedElement. 411 412 overriding function Get_Qualified_Name 413 (Self : not null access constant UML_Property_Proxy) 414 return AMF.Optional_String; 415 -- Getter of NamedElement::qualifiedName. 416 -- 417 -- A name which allows the NamedElement to be identified within a 418 -- hierarchy of nested Namespaces. It is constructed from the names of the 419 -- containing namespaces starting at the root of the hierarchy and ending 420 -- with the name of the NamedElement itself. 421 422 overriding function Get_Owning_Template_Parameter 423 (Self : not null access constant UML_Property_Proxy) 424 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 425 -- Getter of ParameterableElement::owningTemplateParameter. 426 -- 427 -- The formal template parameter that owns this element. 428 429 overriding procedure Set_Owning_Template_Parameter 430 (Self : not null access UML_Property_Proxy; 431 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 432 -- Setter of ParameterableElement::owningTemplateParameter. 433 -- 434 -- The formal template parameter that owns this element. 435 436 overriding function Get_Template_Parameter 437 (Self : not null access constant UML_Property_Proxy) 438 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 439 -- Getter of ParameterableElement::templateParameter. 440 -- 441 -- The template parameter that exposes this element as a formal parameter. 442 443 overriding procedure Set_Template_Parameter 444 (Self : not null access UML_Property_Proxy; 445 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 446 -- Setter of ParameterableElement::templateParameter. 447 -- 448 -- The template parameter that exposes this element as a formal parameter. 449 450 overriding function Get_Deployed_Element 451 (Self : not null access constant UML_Property_Proxy) 452 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 453 -- Getter of DeploymentTarget::deployedElement. 454 -- 455 -- The set of elements that are manifested in an Artifact that is involved 456 -- in Deployment to a DeploymentTarget. 457 458 overriding function Get_Deployment 459 (Self : not null access constant UML_Property_Proxy) 460 return AMF.UML.Deployments.Collections.Set_Of_UML_Deployment; 461 -- Getter of DeploymentTarget::deployment. 462 -- 463 -- The set of Deployments for a DeploymentTarget. 464 465 overriding function Get_Featuring_Classifier 466 (Self : not null access constant UML_Property_Proxy) 467 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 468 -- Getter of Feature::featuringClassifier. 469 -- 470 -- The Classifiers that have this Feature as a feature. 471 472 overriding function Get_Is_Static 473 (Self : not null access constant UML_Property_Proxy) 474 return Boolean; 475 -- Getter of Feature::isStatic. 476 -- 477 -- Specifies whether this feature characterizes individual instances 478 -- classified by the classifier (false) or the classifier itself (true). 479 480 overriding procedure Set_Is_Static 481 (Self : not null access UML_Property_Proxy; 482 To : Boolean); 483 -- Setter of Feature::isStatic. 484 -- 485 -- Specifies whether this feature characterizes individual instances 486 -- classified by the classifier (false) or the classifier itself (true). 487 488 overriding function Get_Is_Leaf 489 (Self : not null access constant UML_Property_Proxy) 490 return Boolean; 491 -- Getter of RedefinableElement::isLeaf. 492 -- 493 -- Indicates whether it is possible to further redefine a 494 -- RedefinableElement. If the value is true, then it is not possible to 495 -- further redefine the RedefinableElement. Note that this property is 496 -- preserved through package merge operations; that is, the capability to 497 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 498 -- the resulting RedefinableElement of a package merge operation where a 499 -- RedefinableElement with isLeaf=false is merged with a matching 500 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 501 -- will have isLeaf=false. Default value is false. 502 503 overriding procedure Set_Is_Leaf 504 (Self : not null access UML_Property_Proxy; 505 To : Boolean); 506 -- Setter of RedefinableElement::isLeaf. 507 -- 508 -- Indicates whether it is possible to further redefine a 509 -- RedefinableElement. If the value is true, then it is not possible to 510 -- further redefine the RedefinableElement. Note that this property is 511 -- preserved through package merge operations; that is, the capability to 512 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 513 -- the resulting RedefinableElement of a package merge operation where a 514 -- RedefinableElement with isLeaf=false is merged with a matching 515 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 516 -- will have isLeaf=false. Default value is false. 517 518 overriding function Get_Redefined_Element 519 (Self : not null access constant UML_Property_Proxy) 520 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 521 -- Getter of RedefinableElement::redefinedElement. 522 -- 523 -- The redefinable element that is being redefined by this element. 524 525 overriding function Get_Redefinition_Context 526 (Self : not null access constant UML_Property_Proxy) 527 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 528 -- Getter of RedefinableElement::redefinitionContext. 529 -- 530 -- References the contexts that this element may be redefined from. 531 532 overriding function Default 533 (Self : not null access constant UML_Property_Proxy) 534 return AMF.Optional_String; 535 -- Operation Property::default. 536 -- 537 -- Missing derivation for Property::/default : String 538 539 overriding function Is_Attribute 540 (Self : not null access constant UML_Property_Proxy; 541 P : AMF.UML.Properties.UML_Property_Access) 542 return Boolean; 543 -- Operation Property::isAttribute. 544 -- 545 -- The query isAttribute() is true if the Property is defined as an 546 -- attribute of some classifier. 547 548 overriding function Is_Compatible_With 549 (Self : not null access constant UML_Property_Proxy; 550 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 551 return Boolean; 552 -- Operation Property::isCompatibleWith. 553 -- 554 -- The query isCompatibleWith() determines if this parameterable element 555 -- is compatible with the specified parameterable element. By default 556 -- parameterable element P is compatible with parameterable element Q if 557 -- the kind of P is the same or a subtype as the kind of Q. In addition, 558 -- for properties, the type must be conformant with the type of the 559 -- specified parameterable element. 560 561 overriding function Is_Composite 562 (Self : not null access constant UML_Property_Proxy) 563 return Boolean; 564 -- Operation Property::isComposite. 565 -- 566 -- The value of isComposite is true only if aggregation is composite. 567 568 overriding function Is_Consistent_With 569 (Self : not null access constant UML_Property_Proxy; 570 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 571 return Boolean; 572 -- Operation Property::isConsistentWith. 573 -- 574 -- The query isConsistentWith() specifies, for any two Properties in a 575 -- context in which redefinition is possible, whether redefinition would 576 -- be logically consistent. A redefining property is consistent with a 577 -- redefined property if the type of the redefining property conforms to 578 -- the type of the redefined property, the multiplicity of the redefining 579 -- property (if specified) is contained in the multiplicity of the 580 -- redefined property. 581 -- The query isConsistentWith() specifies, for any two Properties in a 582 -- context in which redefinition is possible, whether redefinition would 583 -- be logically consistent. A redefining property is consistent with a 584 -- redefined property if the type of the redefining property conforms to 585 -- the type of the redefined property, and the multiplicity of the 586 -- redefining property (if specified) is contained in the multiplicity of 587 -- the redefined property. 588 589 overriding function Is_Navigable 590 (Self : not null access constant UML_Property_Proxy) 591 return Boolean; 592 -- Operation Property::isNavigable. 593 -- 594 -- The query isNavigable() indicates whether it is possible to navigate 595 -- across the property. 596 597 overriding function Opposite 598 (Self : not null access constant UML_Property_Proxy) 599 return AMF.UML.Properties.UML_Property_Access; 600 -- Operation Property::opposite. 601 -- 602 -- If this property is owned by a class, associated with a binary 603 -- association, and the other end of the association is also owned by a 604 -- class, then opposite gives the other end. 605 606 overriding function Subsetting_Context 607 (Self : not null access constant UML_Property_Proxy) 608 return AMF.UML.Types.Collections.Set_Of_UML_Type; 609 -- Operation Property::subsettingContext. 610 -- 611 -- The query subsettingContext() gives the context for subsetting a 612 -- property. It consists, in the case of an attribute, of the 613 -- corresponding classifier, and in the case of an association end, all of 614 -- the classifiers at the other ends. 615 616 overriding function Ends 617 (Self : not null access constant UML_Property_Proxy) 618 return AMF.UML.Connector_Ends.Collections.Set_Of_UML_Connector_End; 619 -- Operation ConnectableElement::end. 620 -- 621 -- Missing derivation for ConnectableElement::/end : ConnectorEnd 622 623 overriding function All_Owning_Packages 624 (Self : not null access constant UML_Property_Proxy) 625 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 626 -- Operation NamedElement::allOwningPackages. 627 -- 628 -- The query allOwningPackages() returns all the directly or indirectly 629 -- owning packages. 630 631 overriding function Is_Distinguishable_From 632 (Self : not null access constant UML_Property_Proxy; 633 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 634 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 635 return Boolean; 636 -- Operation NamedElement::isDistinguishableFrom. 637 -- 638 -- The query isDistinguishableFrom() determines whether two NamedElements 639 -- may logically co-exist within a Namespace. By default, two named 640 -- elements are distinguishable if (a) they have unrelated types or (b) 641 -- they have related types but different names. 642 643 overriding function Namespace 644 (Self : not null access constant UML_Property_Proxy) 645 return AMF.UML.Namespaces.UML_Namespace_Access; 646 -- Operation NamedElement::namespace. 647 -- 648 -- Missing derivation for NamedElement::/namespace : Namespace 649 650 overriding function Is_Template_Parameter 651 (Self : not null access constant UML_Property_Proxy) 652 return Boolean; 653 -- Operation ParameterableElement::isTemplateParameter. 654 -- 655 -- The query isTemplateParameter() determines if this parameterable 656 -- element is exposed as a formal template parameter. 657 658 overriding function Deployed_Element 659 (Self : not null access constant UML_Property_Proxy) 660 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 661 -- Operation DeploymentTarget::deployedElement. 662 -- 663 -- Missing derivation for DeploymentTarget::/deployedElement : 664 -- PackageableElement 665 666 overriding function Compatible_With 667 (Self : not null access constant UML_Property_Proxy; 668 Other : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access) 669 return Boolean; 670 -- Operation MultiplicityElement::compatibleWith. 671 -- 672 -- The operation compatibleWith takes another multiplicity as input. It 673 -- checks if one multiplicity is compatible with another. 674 675 overriding function Includes_Cardinality 676 (Self : not null access constant UML_Property_Proxy; 677 C : Integer) 678 return Boolean; 679 -- Operation MultiplicityElement::includesCardinality. 680 -- 681 -- The query includesCardinality() checks whether the specified 682 -- cardinality is valid for this multiplicity. 683 684 overriding function Includes_Multiplicity 685 (Self : not null access constant UML_Property_Proxy; 686 M : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access) 687 return Boolean; 688 -- Operation MultiplicityElement::includesMultiplicity. 689 -- 690 -- The query includesMultiplicity() checks whether this multiplicity 691 -- includes all the cardinalities allowed by the specified multiplicity. 692 693 overriding function Iss 694 (Self : not null access constant UML_Property_Proxy; 695 Lowerbound : Integer; 696 Upperbound : Integer) 697 return Boolean; 698 -- Operation MultiplicityElement::is. 699 -- 700 -- The operation is determines if the upper and lower bound of the ranges 701 -- are the ones given. 702 703 overriding function Is_Redefinition_Context_Valid 704 (Self : not null access constant UML_Property_Proxy; 705 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 706 return Boolean; 707 -- Operation RedefinableElement::isRedefinitionContextValid. 708 -- 709 -- The query isRedefinitionContextValid() specifies whether the 710 -- redefinition contexts of this RedefinableElement are properly related 711 -- to the redefinition contexts of the specified RedefinableElement to 712 -- allow this element to redefine the other. By default at least one of 713 -- the redefinition contexts of this element must be a specialization of 714 -- at least one of the redefinition contexts of the specified element. 715 716 overriding procedure Enter_Element 717 (Self : not null access constant UML_Property_Proxy; 718 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 719 Control : in out AMF.Visitors.Traverse_Control); 720 -- Dispatch call to corresponding subprogram of visitor interface. 721 722 overriding procedure Leave_Element 723 (Self : not null access constant UML_Property_Proxy; 724 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 725 Control : in out AMF.Visitors.Traverse_Control); 726 -- Dispatch call to corresponding subprogram of visitor interface. 727 728 overriding procedure Visit_Element 729 (Self : not null access constant UML_Property_Proxy; 730 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 731 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 732 Control : in out AMF.Visitors.Traverse_Control); 733 -- Dispatch call to corresponding subprogram of iterator interface. 734 735end AMF.Internals.UML_Properties; 736