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: 2937 $ $Date: 2012-05-01 21:07:27 +0400 (Tue, 01 May 2012) $ 43------------------------------------------------------------------------------ 44with AMF.Internals.UML_Classifiers; 45with AMF.String_Collections; 46with AMF.UML.Association_Classes; 47with AMF.UML.Behaviors.Collections; 48with AMF.UML.Classes.Collections; 49with AMF.UML.Classifier_Template_Parameters; 50with AMF.UML.Classifiers.Collections; 51with AMF.UML.Collaboration_Uses.Collections; 52with AMF.UML.Connectable_Elements.Collections; 53with AMF.UML.Connectors.Collections; 54with AMF.UML.Constraints.Collections; 55with AMF.UML.Dependencies.Collections; 56with AMF.UML.Element_Imports.Collections; 57with AMF.UML.Elements.Collections; 58with AMF.UML.Extensions.Collections; 59with AMF.UML.Features.Collections; 60with AMF.UML.Generalization_Sets.Collections; 61with AMF.UML.Generalizations.Collections; 62with AMF.UML.Interface_Realizations.Collections; 63with AMF.UML.Named_Elements.Collections; 64with AMF.UML.Namespaces; 65with AMF.UML.Operations.Collections; 66with AMF.UML.Package_Imports.Collections; 67with AMF.UML.Packageable_Elements.Collections; 68with AMF.UML.Packages.Collections; 69with AMF.UML.Parameterable_Elements.Collections; 70with AMF.UML.Ports.Collections; 71with AMF.UML.Properties.Collections; 72with AMF.UML.Receptions.Collections; 73with AMF.UML.Redefinable_Elements.Collections; 74with AMF.UML.Redefinable_Template_Signatures; 75with AMF.UML.String_Expressions; 76with AMF.UML.Substitutions.Collections; 77with AMF.UML.Template_Bindings.Collections; 78with AMF.UML.Template_Parameters; 79with AMF.UML.Template_Signatures; 80with AMF.UML.Types.Collections; 81with AMF.UML.Use_Cases.Collections; 82with AMF.Visitors; 83 84package AMF.Internals.UML_Association_Classes is 85 86 type UML_Association_Class_Proxy is 87 limited new AMF.Internals.UML_Classifiers.UML_Classifier_Proxy 88 and AMF.UML.Association_Classes.UML_Association_Class with null record; 89 90 overriding function Get_End_Type 91 (Self : not null access constant UML_Association_Class_Proxy) 92 return AMF.UML.Types.Collections.Ordered_Set_Of_UML_Type; 93 -- Getter of Association::endType. 94 -- 95 -- References the classifiers that are used as types of the ends of the 96 -- association. 97 98 overriding function Get_Is_Derived 99 (Self : not null access constant UML_Association_Class_Proxy) 100 return Boolean; 101 -- Getter of Association::isDerived. 102 -- 103 -- Specifies whether the association is derived from other model elements 104 -- such as other associations or constraints. 105 106 overriding procedure Set_Is_Derived 107 (Self : not null access UML_Association_Class_Proxy; 108 To : Boolean); 109 -- Setter of Association::isDerived. 110 -- 111 -- Specifies whether the association is derived from other model elements 112 -- such as other associations or constraints. 113 114 overriding function Get_Member_End 115 (Self : not null access constant UML_Association_Class_Proxy) 116 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property; 117 -- Getter of Association::memberEnd. 118 -- 119 -- Each end represents participation of instances of the classifier 120 -- connected to the end in links of the association. 121 122 overriding function Get_Navigable_Owned_End 123 (Self : not null access constant UML_Association_Class_Proxy) 124 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 125 -- Getter of Association::navigableOwnedEnd. 126 -- 127 -- The navigable ends that are owned by the association itself. 128 129 overriding function Get_Owned_End 130 (Self : not null access constant UML_Association_Class_Proxy) 131 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property; 132 -- Getter of Association::ownedEnd. 133 -- 134 -- The ends that are owned by the association itself. 135 136 overriding function Get_Related_Element 137 (Self : not null access constant UML_Association_Class_Proxy) 138 return AMF.UML.Elements.Collections.Set_Of_UML_Element; 139 -- Getter of Relationship::relatedElement. 140 -- 141 -- Specifies the elements related by the Relationship. 142 143 overriding function Get_Attribute 144 (Self : not null access constant UML_Association_Class_Proxy) 145 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 146 -- Getter of Classifier::attribute. 147 -- 148 -- Refers to all of the Properties that are direct (i.e. not inherited or 149 -- imported) attributes of the classifier. 150 151 overriding function Get_Collaboration_Use 152 (Self : not null access constant UML_Association_Class_Proxy) 153 return AMF.UML.Collaboration_Uses.Collections.Set_Of_UML_Collaboration_Use; 154 -- Getter of Classifier::collaborationUse. 155 -- 156 -- References the collaboration uses owned by the classifier. 157 158 overriding function Get_Feature 159 (Self : not null access constant UML_Association_Class_Proxy) 160 return AMF.UML.Features.Collections.Set_Of_UML_Feature; 161 -- Getter of Classifier::feature. 162 -- 163 -- Specifies each feature defined in the classifier. 164 -- Note that there may be members of the Classifier that are of the type 165 -- Feature but are not included in this association, e.g. inherited 166 -- features. 167 168 overriding function Get_General 169 (Self : not null access constant UML_Association_Class_Proxy) 170 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 171 -- Getter of Classifier::general. 172 -- 173 -- Specifies the general Classifiers for this Classifier. 174 -- References the general classifier in the Generalization relationship. 175 176 overriding function Get_Generalization 177 (Self : not null access constant UML_Association_Class_Proxy) 178 return AMF.UML.Generalizations.Collections.Set_Of_UML_Generalization; 179 -- Getter of Classifier::generalization. 180 -- 181 -- Specifies the Generalization relationships for this Classifier. These 182 -- Generalizations navigaten to more general classifiers in the 183 -- generalization hierarchy. 184 185 overriding function Get_Inherited_Member 186 (Self : not null access constant UML_Association_Class_Proxy) 187 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 188 -- Getter of Classifier::inheritedMember. 189 -- 190 -- Specifies all elements inherited by this classifier from the general 191 -- classifiers. 192 193 overriding function Get_Is_Abstract 194 (Self : not null access constant UML_Association_Class_Proxy) 195 return Boolean; 196 -- Getter of Classifier::isAbstract. 197 -- 198 -- If true, the Classifier does not provide a complete declaration and can 199 -- typically not be instantiated. An abstract classifier is intended to be 200 -- used by other classifiers e.g. as the target of general 201 -- metarelationships or generalization relationships. 202 203 overriding function Get_Is_Final_Specialization 204 (Self : not null access constant UML_Association_Class_Proxy) 205 return Boolean; 206 -- Getter of Classifier::isFinalSpecialization. 207 -- 208 -- If true, the Classifier cannot be specialized by generalization. Note 209 -- that this property is preserved through package merge operations; that 210 -- is, the capability to specialize a Classifier (i.e., 211 -- isFinalSpecialization =false) must be preserved in the resulting 212 -- Classifier of a package merge operation where a Classifier with 213 -- isFinalSpecialization =false is merged with a matching Classifier with 214 -- isFinalSpecialization =true: the resulting Classifier will have 215 -- isFinalSpecialization =false. 216 217 overriding procedure Set_Is_Final_Specialization 218 (Self : not null access UML_Association_Class_Proxy; 219 To : Boolean); 220 -- Setter of Classifier::isFinalSpecialization. 221 -- 222 -- If true, the Classifier cannot be specialized by generalization. Note 223 -- that this property is preserved through package merge operations; that 224 -- is, the capability to specialize a Classifier (i.e., 225 -- isFinalSpecialization =false) must be preserved in the resulting 226 -- Classifier of a package merge operation where a Classifier with 227 -- isFinalSpecialization =false is merged with a matching Classifier with 228 -- isFinalSpecialization =true: the resulting Classifier will have 229 -- isFinalSpecialization =false. 230 231 overriding function Get_Owned_Template_Signature 232 (Self : not null access constant UML_Association_Class_Proxy) 233 return AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access; 234 -- Getter of Classifier::ownedTemplateSignature. 235 -- 236 -- The optional template signature specifying the formal template 237 -- parameters. 238 239 overriding procedure Set_Owned_Template_Signature 240 (Self : not null access UML_Association_Class_Proxy; 241 To : AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access); 242 -- Setter of Classifier::ownedTemplateSignature. 243 -- 244 -- The optional template signature specifying the formal template 245 -- parameters. 246 247 overriding function Get_Owned_Use_Case 248 (Self : not null access constant UML_Association_Class_Proxy) 249 return AMF.UML.Use_Cases.Collections.Set_Of_UML_Use_Case; 250 -- Getter of Classifier::ownedUseCase. 251 -- 252 -- References the use cases owned by this classifier. 253 254 overriding function Get_Powertype_Extent 255 (Self : not null access constant UML_Association_Class_Proxy) 256 return AMF.UML.Generalization_Sets.Collections.Set_Of_UML_Generalization_Set; 257 -- Getter of Classifier::powertypeExtent. 258 -- 259 -- Designates the GeneralizationSet of which the associated Classifier is 260 -- a power type. 261 262 overriding function Get_Redefined_Classifier 263 (Self : not null access constant UML_Association_Class_Proxy) 264 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 265 -- Getter of Classifier::redefinedClassifier. 266 -- 267 -- References the Classifiers that are redefined by this Classifier. 268 269 overriding function Get_Representation 270 (Self : not null access constant UML_Association_Class_Proxy) 271 return AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access; 272 -- Getter of Classifier::representation. 273 -- 274 -- References a collaboration use which indicates the collaboration that 275 -- represents this classifier. 276 277 overriding procedure Set_Representation 278 (Self : not null access UML_Association_Class_Proxy; 279 To : AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access); 280 -- Setter of Classifier::representation. 281 -- 282 -- References a collaboration use which indicates the collaboration that 283 -- represents this classifier. 284 285 overriding function Get_Substitution 286 (Self : not null access constant UML_Association_Class_Proxy) 287 return AMF.UML.Substitutions.Collections.Set_Of_UML_Substitution; 288 -- Getter of Classifier::substitution. 289 -- 290 -- References the substitutions that are owned by this Classifier. 291 292 overriding function Get_Template_Parameter 293 (Self : not null access constant UML_Association_Class_Proxy) 294 return AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access; 295 -- Getter of Classifier::templateParameter. 296 -- 297 -- The template parameter that exposes this element as a formal parameter. 298 299 overriding procedure Set_Template_Parameter 300 (Self : not null access UML_Association_Class_Proxy; 301 To : AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access); 302 -- Setter of Classifier::templateParameter. 303 -- 304 -- The template parameter that exposes this element as a formal parameter. 305 306 overriding function Get_Use_Case 307 (Self : not null access constant UML_Association_Class_Proxy) 308 return AMF.UML.Use_Cases.Collections.Set_Of_UML_Use_Case; 309 -- Getter of Classifier::useCase. 310 -- 311 -- The set of use cases for which this Classifier is the subject. 312 313 overriding function Get_Element_Import 314 (Self : not null access constant UML_Association_Class_Proxy) 315 return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import; 316 -- Getter of Namespace::elementImport. 317 -- 318 -- References the ElementImports owned by the Namespace. 319 320 overriding function Get_Imported_Member 321 (Self : not null access constant UML_Association_Class_Proxy) 322 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 323 -- Getter of Namespace::importedMember. 324 -- 325 -- References the PackageableElements that are members of this Namespace 326 -- as a result of either PackageImports or ElementImports. 327 328 overriding function Get_Member 329 (Self : not null access constant UML_Association_Class_Proxy) 330 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 331 -- Getter of Namespace::member. 332 -- 333 -- A collection of NamedElements identifiable within the Namespace, either 334 -- by being owned or by being introduced by importing or inheritance. 335 336 overriding function Get_Owned_Member 337 (Self : not null access constant UML_Association_Class_Proxy) 338 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 339 -- Getter of Namespace::ownedMember. 340 -- 341 -- A collection of NamedElements owned by the Namespace. 342 343 overriding function Get_Owned_Rule 344 (Self : not null access constant UML_Association_Class_Proxy) 345 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 346 -- Getter of Namespace::ownedRule. 347 -- 348 -- Specifies a set of Constraints owned by this Namespace. 349 350 overriding function Get_Package_Import 351 (Self : not null access constant UML_Association_Class_Proxy) 352 return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import; 353 -- Getter of Namespace::packageImport. 354 -- 355 -- References the PackageImports owned by the Namespace. 356 357 overriding function Get_Client_Dependency 358 (Self : not null access constant UML_Association_Class_Proxy) 359 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 360 -- Getter of NamedElement::clientDependency. 361 -- 362 -- Indicates the dependencies that reference the client. 363 364 overriding function Get_Name_Expression 365 (Self : not null access constant UML_Association_Class_Proxy) 366 return AMF.UML.String_Expressions.UML_String_Expression_Access; 367 -- Getter of NamedElement::nameExpression. 368 -- 369 -- The string expression used to define the name of this named element. 370 371 overriding procedure Set_Name_Expression 372 (Self : not null access UML_Association_Class_Proxy; 373 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 374 -- Setter of NamedElement::nameExpression. 375 -- 376 -- The string expression used to define the name of this named element. 377 378 overriding function Get_Namespace 379 (Self : not null access constant UML_Association_Class_Proxy) 380 return AMF.UML.Namespaces.UML_Namespace_Access; 381 -- Getter of NamedElement::namespace. 382 -- 383 -- Specifies the namespace that owns the NamedElement. 384 385 overriding function Get_Qualified_Name 386 (Self : not null access constant UML_Association_Class_Proxy) 387 return AMF.Optional_String; 388 -- Getter of NamedElement::qualifiedName. 389 -- 390 -- A name which allows the NamedElement to be identified within a 391 -- hierarchy of nested Namespaces. It is constructed from the names of the 392 -- containing namespaces starting at the root of the hierarchy and ending 393 -- with the name of the NamedElement itself. 394 395 overriding function Get_Package 396 (Self : not null access constant UML_Association_Class_Proxy) 397 return AMF.UML.Packages.UML_Package_Access; 398 -- Getter of Type::package. 399 -- 400 -- Specifies the owning package of this classifier, if any. 401 402 overriding procedure Set_Package 403 (Self : not null access UML_Association_Class_Proxy; 404 To : AMF.UML.Packages.UML_Package_Access); 405 -- Setter of Type::package. 406 -- 407 -- Specifies the owning package of this classifier, if any. 408 409 overriding function Get_Owning_Template_Parameter 410 (Self : not null access constant UML_Association_Class_Proxy) 411 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 412 -- Getter of ParameterableElement::owningTemplateParameter. 413 -- 414 -- The formal template parameter that owns this element. 415 416 overriding procedure Set_Owning_Template_Parameter 417 (Self : not null access UML_Association_Class_Proxy; 418 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 419 -- Setter of ParameterableElement::owningTemplateParameter. 420 -- 421 -- The formal template parameter that owns this element. 422 423 overriding function Get_Template_Parameter 424 (Self : not null access constant UML_Association_Class_Proxy) 425 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 426 -- Getter of ParameterableElement::templateParameter. 427 -- 428 -- The template parameter that exposes this element as a formal parameter. 429 430 overriding procedure Set_Template_Parameter 431 (Self : not null access UML_Association_Class_Proxy; 432 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 433 -- Setter of ParameterableElement::templateParameter. 434 -- 435 -- The template parameter that exposes this element as a formal parameter. 436 437 overriding function Get_Owned_Template_Signature 438 (Self : not null access constant UML_Association_Class_Proxy) 439 return AMF.UML.Template_Signatures.UML_Template_Signature_Access; 440 -- Getter of TemplateableElement::ownedTemplateSignature. 441 -- 442 -- The optional template signature specifying the formal template 443 -- parameters. 444 445 overriding procedure Set_Owned_Template_Signature 446 (Self : not null access UML_Association_Class_Proxy; 447 To : AMF.UML.Template_Signatures.UML_Template_Signature_Access); 448 -- Setter of TemplateableElement::ownedTemplateSignature. 449 -- 450 -- The optional template signature specifying the formal template 451 -- parameters. 452 453 overriding function Get_Template_Binding 454 (Self : not null access constant UML_Association_Class_Proxy) 455 return AMF.UML.Template_Bindings.Collections.Set_Of_UML_Template_Binding; 456 -- Getter of TemplateableElement::templateBinding. 457 -- 458 -- The optional bindings from this element to templates. 459 460 overriding function Get_Is_Leaf 461 (Self : not null access constant UML_Association_Class_Proxy) 462 return Boolean; 463 -- Getter of RedefinableElement::isLeaf. 464 -- 465 -- Indicates whether it is possible to further redefine a 466 -- RedefinableElement. If the value is true, then it is not possible to 467 -- further redefine the RedefinableElement. Note that this property is 468 -- preserved through package merge operations; that is, the capability to 469 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 470 -- the resulting RedefinableElement of a package merge operation where a 471 -- RedefinableElement with isLeaf=false is merged with a matching 472 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 473 -- will have isLeaf=false. Default value is false. 474 475 overriding procedure Set_Is_Leaf 476 (Self : not null access UML_Association_Class_Proxy; 477 To : Boolean); 478 -- Setter of RedefinableElement::isLeaf. 479 -- 480 -- Indicates whether it is possible to further redefine a 481 -- RedefinableElement. If the value is true, then it is not possible to 482 -- further redefine the RedefinableElement. Note that this property is 483 -- preserved through package merge operations; that is, the capability to 484 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 485 -- the resulting RedefinableElement of a package merge operation where a 486 -- RedefinableElement with isLeaf=false is merged with a matching 487 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 488 -- will have isLeaf=false. Default value is false. 489 490 overriding function Get_Redefined_Element 491 (Self : not null access constant UML_Association_Class_Proxy) 492 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 493 -- Getter of RedefinableElement::redefinedElement. 494 -- 495 -- The redefinable element that is being redefined by this element. 496 497 overriding function Get_Redefinition_Context 498 (Self : not null access constant UML_Association_Class_Proxy) 499 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 500 -- Getter of RedefinableElement::redefinitionContext. 501 -- 502 -- References the contexts that this element may be redefined from. 503 504 overriding function Get_Extension 505 (Self : not null access constant UML_Association_Class_Proxy) 506 return AMF.UML.Extensions.Collections.Set_Of_UML_Extension; 507 -- Getter of Class::extension. 508 -- 509 -- References the Extensions that specify additional properties of the 510 -- metaclass. The property is derived from the extensions whose memberEnds 511 -- are typed by the Class. 512 513 overriding function Get_Is_Active 514 (Self : not null access constant UML_Association_Class_Proxy) 515 return Boolean; 516 -- Getter of Class::isActive. 517 -- 518 -- Determines whether an object specified by this class is active or not. 519 -- If true, then the owning class is referred to as an active class. If 520 -- false, then such a class is referred to as a passive class. 521 522 overriding procedure Set_Is_Active 523 (Self : not null access UML_Association_Class_Proxy; 524 To : Boolean); 525 -- Setter of Class::isActive. 526 -- 527 -- Determines whether an object specified by this class is active or not. 528 -- If true, then the owning class is referred to as an active class. If 529 -- false, then such a class is referred to as a passive class. 530 531 overriding function Get_Nested_Classifier 532 (Self : not null access constant UML_Association_Class_Proxy) 533 return AMF.UML.Classifiers.Collections.Ordered_Set_Of_UML_Classifier; 534 -- Getter of Class::nestedClassifier. 535 -- 536 -- References all the Classifiers that are defined (nested) within the 537 -- Class. 538 539 overriding function Get_Owned_Attribute 540 (Self : not null access constant UML_Association_Class_Proxy) 541 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property; 542 -- Getter of Class::ownedAttribute. 543 -- 544 -- The attributes (i.e. the properties) owned by the class. 545 546 overriding function Get_Owned_Operation 547 (Self : not null access constant UML_Association_Class_Proxy) 548 return AMF.UML.Operations.Collections.Ordered_Set_Of_UML_Operation; 549 -- Getter of Class::ownedOperation. 550 -- 551 -- The operations owned by the class. 552 553 overriding function Get_Owned_Reception 554 (Self : not null access constant UML_Association_Class_Proxy) 555 return AMF.UML.Receptions.Collections.Set_Of_UML_Reception; 556 -- Getter of Class::ownedReception. 557 -- 558 -- Receptions that objects of this class are willing to accept. 559 560 overriding function Get_Super_Class 561 (Self : not null access constant UML_Association_Class_Proxy) 562 return AMF.UML.Classes.Collections.Set_Of_UML_Class; 563 -- Getter of Class::superClass. 564 -- 565 -- This gives the superclasses of a class. 566 567 overriding function Get_Classifier_Behavior 568 (Self : not null access constant UML_Association_Class_Proxy) 569 return AMF.UML.Behaviors.UML_Behavior_Access; 570 -- Getter of BehavioredClassifier::classifierBehavior. 571 -- 572 -- A behavior specification that specifies the behavior of the classifier 573 -- itself. 574 575 overriding procedure Set_Classifier_Behavior 576 (Self : not null access UML_Association_Class_Proxy; 577 To : AMF.UML.Behaviors.UML_Behavior_Access); 578 -- Setter of BehavioredClassifier::classifierBehavior. 579 -- 580 -- A behavior specification that specifies the behavior of the classifier 581 -- itself. 582 583 overriding function Get_Interface_Realization 584 (Self : not null access constant UML_Association_Class_Proxy) 585 return AMF.UML.Interface_Realizations.Collections.Set_Of_UML_Interface_Realization; 586 -- Getter of BehavioredClassifier::interfaceRealization. 587 -- 588 -- The set of InterfaceRealizations owned by the BehavioredClassifier. 589 -- Interface realizations reference the Interfaces of which the 590 -- BehavioredClassifier is an implementation. 591 592 overriding function Get_Owned_Behavior 593 (Self : not null access constant UML_Association_Class_Proxy) 594 return AMF.UML.Behaviors.Collections.Set_Of_UML_Behavior; 595 -- Getter of BehavioredClassifier::ownedBehavior. 596 -- 597 -- References behavior specifications owned by a classifier. 598 599 overriding function Get_Owned_Port 600 (Self : not null access constant UML_Association_Class_Proxy) 601 return AMF.UML.Ports.Collections.Set_Of_UML_Port; 602 -- Getter of EncapsulatedClassifier::ownedPort. 603 -- 604 -- References a set of ports that an encapsulated classifier owns. 605 606 overriding function Get_Owned_Connector 607 (Self : not null access constant UML_Association_Class_Proxy) 608 return AMF.UML.Connectors.Collections.Set_Of_UML_Connector; 609 -- Getter of StructuredClassifier::ownedConnector. 610 -- 611 -- References the connectors owned by the classifier. 612 613 overriding function Get_Part 614 (Self : not null access constant UML_Association_Class_Proxy) 615 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 616 -- Getter of StructuredClassifier::part. 617 -- 618 -- References the properties specifying instances that the classifier owns 619 -- by composition. This association is derived, selecting those owned 620 -- properties where isComposite is true. 621 622 overriding function Get_Role 623 (Self : not null access constant UML_Association_Class_Proxy) 624 return AMF.UML.Connectable_Elements.Collections.Set_Of_UML_Connectable_Element; 625 -- Getter of StructuredClassifier::role. 626 -- 627 -- References the roles that instances may play in this classifier. 628 629 overriding function End_Type 630 (Self : not null access constant UML_Association_Class_Proxy) 631 return AMF.UML.Types.Collections.Ordered_Set_Of_UML_Type; 632 -- Operation Association::endType. 633 -- 634 -- endType is derived from the types of the member ends. 635 636 overriding function All_Features 637 (Self : not null access constant UML_Association_Class_Proxy) 638 return AMF.UML.Features.Collections.Set_Of_UML_Feature; 639 -- Operation Classifier::allFeatures. 640 -- 641 -- The query allFeatures() gives all of the features in the namespace of 642 -- the classifier. In general, through mechanisms such as inheritance, 643 -- this will be a larger set than feature. 644 645 overriding function Conforms_To 646 (Self : not null access constant UML_Association_Class_Proxy; 647 Other : AMF.UML.Classifiers.UML_Classifier_Access) 648 return Boolean; 649 -- Operation Classifier::conformsTo. 650 -- 651 -- The query conformsTo() gives true for a classifier that defines a type 652 -- that conforms to another. This is used, for example, in the 653 -- specification of signature conformance for operations. 654 655 overriding function General 656 (Self : not null access constant UML_Association_Class_Proxy) 657 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 658 -- Operation Classifier::general. 659 -- 660 -- The general classifiers are the classifiers referenced by the 661 -- generalization relationships. 662 663 overriding function Has_Visibility_Of 664 (Self : not null access constant UML_Association_Class_Proxy; 665 N : AMF.UML.Named_Elements.UML_Named_Element_Access) 666 return Boolean; 667 -- Operation Classifier::hasVisibilityOf. 668 -- 669 -- The query hasVisibilityOf() determines whether a named element is 670 -- visible in the classifier. By default all are visible. It is only 671 -- called when the argument is something owned by a parent. 672 673 overriding function Inherit 674 (Self : not null access constant UML_Association_Class_Proxy; 675 Inhs : AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element) 676 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 677 -- Operation Classifier::inherit. 678 -- 679 -- The query inherit() defines how to inherit a set of elements. Here the 680 -- operation is defined to inherit them all. It is intended to be 681 -- redefined in circumstances where inheritance is affected by 682 -- redefinition. 683 -- The inherit operation is overridden to exclude redefined properties. 684 685 overriding function Inheritable_Members 686 (Self : not null access constant UML_Association_Class_Proxy; 687 C : AMF.UML.Classifiers.UML_Classifier_Access) 688 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 689 -- Operation Classifier::inheritableMembers. 690 -- 691 -- The query inheritableMembers() gives all of the members of a classifier 692 -- that may be inherited in one of its descendants, subject to whatever 693 -- visibility restrictions apply. 694 695 overriding function Inherited_Member 696 (Self : not null access constant UML_Association_Class_Proxy) 697 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 698 -- Operation Classifier::inheritedMember. 699 -- 700 -- The inheritedMember association is derived by inheriting the 701 -- inheritable members of the parents. 702 -- The inheritedMember association is derived by inheriting the 703 -- inheritable members of the parents. 704 705 overriding function Is_Template 706 (Self : not null access constant UML_Association_Class_Proxy) 707 return Boolean; 708 -- Operation Classifier::isTemplate. 709 -- 710 -- The query isTemplate() returns whether this templateable element is 711 -- actually a template. 712 713 overriding function May_Specialize_Type 714 (Self : not null access constant UML_Association_Class_Proxy; 715 C : AMF.UML.Classifiers.UML_Classifier_Access) 716 return Boolean; 717 -- Operation Classifier::maySpecializeType. 718 -- 719 -- The query maySpecializeType() determines whether this classifier may 720 -- have a generalization relationship to classifiers of the specified 721 -- type. By default a classifier may specialize classifiers of the same or 722 -- a more general type. It is intended to be redefined by classifiers that 723 -- have different specialization constraints. 724 725 overriding function Exclude_Collisions 726 (Self : not null access constant UML_Association_Class_Proxy; 727 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 728 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 729 -- Operation Namespace::excludeCollisions. 730 -- 731 -- The query excludeCollisions() excludes from a set of 732 -- PackageableElements any that would not be distinguishable from each 733 -- other in this namespace. 734 735 overriding function Get_Names_Of_Member 736 (Self : not null access constant UML_Association_Class_Proxy; 737 Element : AMF.UML.Named_Elements.UML_Named_Element_Access) 738 return AMF.String_Collections.Set_Of_String; 739 -- Operation Namespace::getNamesOfMember. 740 -- 741 -- The query getNamesOfMember() takes importing into account. It gives 742 -- back the set of names that an element would have in an importing 743 -- namespace, either because it is owned, or if not owned then imported 744 -- individually, or if not individually then from a package. 745 -- The query getNamesOfMember() gives a set of all of the names that a 746 -- member would have in a Namespace. In general a member can have multiple 747 -- names in a Namespace if it is imported more than once with different 748 -- aliases. The query takes account of importing. It gives back the set of 749 -- names that an element would have in an importing namespace, either 750 -- because it is owned, or if not owned then imported individually, or if 751 -- not individually then from a package. 752 753 overriding function Import_Members 754 (Self : not null access constant UML_Association_Class_Proxy; 755 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 756 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 757 -- Operation Namespace::importMembers. 758 -- 759 -- The query importMembers() defines which of a set of PackageableElements 760 -- are actually imported into the namespace. This excludes hidden ones, 761 -- i.e., those which have names that conflict with names of owned members, 762 -- and also excludes elements which would have the same name when imported. 763 764 overriding function Imported_Member 765 (Self : not null access constant UML_Association_Class_Proxy) 766 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 767 -- Operation Namespace::importedMember. 768 -- 769 -- The importedMember property is derived from the ElementImports and the 770 -- PackageImports. References the PackageableElements that are members of 771 -- this Namespace as a result of either PackageImports or ElementImports. 772 773 overriding function Members_Are_Distinguishable 774 (Self : not null access constant UML_Association_Class_Proxy) 775 return Boolean; 776 -- Operation Namespace::membersAreDistinguishable. 777 -- 778 -- The Boolean query membersAreDistinguishable() determines whether all of 779 -- the namespace's members are distinguishable within it. 780 781 overriding function Owned_Member 782 (Self : not null access constant UML_Association_Class_Proxy) 783 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 784 -- Operation Namespace::ownedMember. 785 -- 786 -- Missing derivation for Namespace::/ownedMember : NamedElement 787 788 overriding function All_Owning_Packages 789 (Self : not null access constant UML_Association_Class_Proxy) 790 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 791 -- Operation NamedElement::allOwningPackages. 792 -- 793 -- The query allOwningPackages() returns all the directly or indirectly 794 -- owning packages. 795 796 overriding function Is_Distinguishable_From 797 (Self : not null access constant UML_Association_Class_Proxy; 798 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 799 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 800 return Boolean; 801 -- Operation NamedElement::isDistinguishableFrom. 802 -- 803 -- The query isDistinguishableFrom() determines whether two NamedElements 804 -- may logically co-exist within a Namespace. By default, two named 805 -- elements are distinguishable if (a) they have unrelated types or (b) 806 -- they have related types but different names. 807 808 overriding function Namespace 809 (Self : not null access constant UML_Association_Class_Proxy) 810 return AMF.UML.Namespaces.UML_Namespace_Access; 811 -- Operation NamedElement::namespace. 812 -- 813 -- Missing derivation for NamedElement::/namespace : Namespace 814 815 overriding function Conforms_To 816 (Self : not null access constant UML_Association_Class_Proxy; 817 Other : AMF.UML.Types.UML_Type_Access) 818 return Boolean; 819 -- Operation Type::conformsTo. 820 -- 821 -- The query conformsTo() gives true for a type that conforms to another. 822 -- By default, two types do not conform to each other. This query is 823 -- intended to be redefined for specific conformance situations. 824 825 overriding function Is_Compatible_With 826 (Self : not null access constant UML_Association_Class_Proxy; 827 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 828 return Boolean; 829 -- Operation ParameterableElement::isCompatibleWith. 830 -- 831 -- The query isCompatibleWith() determines if this parameterable element 832 -- is compatible with the specified parameterable element. By default 833 -- parameterable element P is compatible with parameterable element Q if 834 -- the kind of P is the same or a subtype as the kind of Q. Subclasses 835 -- should override this operation to specify different compatibility 836 -- constraints. 837 838 overriding function Is_Template_Parameter 839 (Self : not null access constant UML_Association_Class_Proxy) 840 return Boolean; 841 -- Operation ParameterableElement::isTemplateParameter. 842 -- 843 -- The query isTemplateParameter() determines if this parameterable 844 -- element is exposed as a formal template parameter. 845 846 overriding function Parameterable_Elements 847 (Self : not null access constant UML_Association_Class_Proxy) 848 return AMF.UML.Parameterable_Elements.Collections.Set_Of_UML_Parameterable_Element; 849 -- Operation TemplateableElement::parameterableElements. 850 -- 851 -- The query parameterableElements() returns the set of elements that may 852 -- be used as the parametered elements for a template parameter of this 853 -- templateable element. By default, this set includes all the owned 854 -- elements. Subclasses may override this operation if they choose to 855 -- restrict the set of parameterable elements. 856 857 overriding function Is_Consistent_With 858 (Self : not null access constant UML_Association_Class_Proxy; 859 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 860 return Boolean; 861 -- Operation RedefinableElement::isConsistentWith. 862 -- 863 -- The query isConsistentWith() specifies, for any two RedefinableElements 864 -- in a context in which redefinition is possible, whether redefinition 865 -- would be logically consistent. By default, this is false; this 866 -- operation must be overridden for subclasses of RedefinableElement to 867 -- define the consistency conditions. 868 869 overriding function Is_Redefinition_Context_Valid 870 (Self : not null access constant UML_Association_Class_Proxy; 871 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 872 return Boolean; 873 -- Operation RedefinableElement::isRedefinitionContextValid. 874 -- 875 -- The query isRedefinitionContextValid() specifies whether the 876 -- redefinition contexts of this RedefinableElement are properly related 877 -- to the redefinition contexts of the specified RedefinableElement to 878 -- allow this element to redefine the other. By default at least one of 879 -- the redefinition contexts of this element must be a specialization of 880 -- at least one of the redefinition contexts of the specified element. 881 882 overriding function Extension 883 (Self : not null access constant UML_Association_Class_Proxy) 884 return AMF.UML.Extensions.Collections.Set_Of_UML_Extension; 885 -- Operation Class::extension. 886 -- 887 -- Missing derivation for Class::/extension : Extension 888 889 overriding function Super_Class 890 (Self : not null access constant UML_Association_Class_Proxy) 891 return AMF.UML.Classes.Collections.Set_Of_UML_Class; 892 -- Operation Class::superClass. 893 -- 894 -- Missing derivation for Class::/superClass : Class 895 896 overriding function Owned_Port 897 (Self : not null access constant UML_Association_Class_Proxy) 898 return AMF.UML.Ports.Collections.Set_Of_UML_Port; 899 -- Operation EncapsulatedClassifier::ownedPort. 900 -- 901 -- Missing derivation for EncapsulatedClassifier::/ownedPort : Port 902 903 overriding function Part 904 (Self : not null access constant UML_Association_Class_Proxy) 905 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 906 -- Operation StructuredClassifier::part. 907 -- 908 -- Missing derivation for StructuredClassifier::/part : Property 909 910 overriding procedure Enter_Element 911 (Self : not null access constant UML_Association_Class_Proxy; 912 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 913 Control : in out AMF.Visitors.Traverse_Control); 914 -- Dispatch call to corresponding subprogram of visitor interface. 915 916 overriding procedure Leave_Element 917 (Self : not null access constant UML_Association_Class_Proxy; 918 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 919 Control : in out AMF.Visitors.Traverse_Control); 920 -- Dispatch call to corresponding subprogram of visitor interface. 921 922 overriding procedure Visit_Element 923 (Self : not null access constant UML_Association_Class_Proxy; 924 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 925 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 926 Control : in out AMF.Visitors.Traverse_Control); 927 -- Dispatch call to corresponding subprogram of iterator interface. 928 929end AMF.Internals.UML_Association_Classes; 930