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