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