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