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