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_Named_Elements; 45with AMF.String_Collections; 46with AMF.UML.Behaviors.Collections; 47with AMF.UML.Classes; 48with AMF.UML.Classifiers.Collections; 49with AMF.UML.Constraints.Collections; 50with AMF.UML.Data_Types; 51with AMF.UML.Dependencies.Collections; 52with AMF.UML.Element_Imports.Collections; 53with AMF.UML.Interfaces; 54with AMF.UML.Named_Elements.Collections; 55with AMF.UML.Namespaces; 56with AMF.UML.Operation_Template_Parameters; 57with AMF.UML.Operations.Collections; 58with AMF.UML.Package_Imports.Collections; 59with AMF.UML.Packageable_Elements.Collections; 60with AMF.UML.Packages.Collections; 61with AMF.UML.Parameter_Sets.Collections; 62with AMF.UML.Parameterable_Elements.Collections; 63with AMF.UML.Parameters.Collections; 64with AMF.UML.Redefinable_Elements.Collections; 65with AMF.UML.String_Expressions; 66with AMF.UML.Template_Bindings.Collections; 67with AMF.UML.Template_Parameters; 68with AMF.UML.Template_Signatures; 69with AMF.UML.Types.Collections; 70with AMF.Visitors; 71 72package AMF.Internals.UML_Operations is 73 74 type UML_Operation_Proxy is 75 limited new AMF.Internals.UML_Named_Elements.UML_Named_Element_Proxy 76 and AMF.UML.Operations.UML_Operation with null record; 77 78 overriding function Get_Body_Condition 79 (Self : not null access constant UML_Operation_Proxy) 80 return AMF.UML.Constraints.UML_Constraint_Access; 81 -- Getter of Operation::bodyCondition. 82 -- 83 -- An optional Constraint on the result values of an invocation of this 84 -- Operation. 85 86 overriding procedure Set_Body_Condition 87 (Self : not null access UML_Operation_Proxy; 88 To : AMF.UML.Constraints.UML_Constraint_Access); 89 -- Setter of Operation::bodyCondition. 90 -- 91 -- An optional Constraint on the result values of an invocation of this 92 -- Operation. 93 94 overriding function Get_Class 95 (Self : not null access constant UML_Operation_Proxy) 96 return AMF.UML.Classes.UML_Class_Access; 97 -- Getter of Operation::class. 98 -- 99 -- The class that owns the operation. 100 101 overriding procedure Set_Class 102 (Self : not null access UML_Operation_Proxy; 103 To : AMF.UML.Classes.UML_Class_Access); 104 -- Setter of Operation::class. 105 -- 106 -- The class that owns the operation. 107 108 overriding function Get_Datatype 109 (Self : not null access constant UML_Operation_Proxy) 110 return AMF.UML.Data_Types.UML_Data_Type_Access; 111 -- Getter of Operation::datatype. 112 -- 113 -- The DataType that owns this Operation. 114 115 overriding procedure Set_Datatype 116 (Self : not null access UML_Operation_Proxy; 117 To : AMF.UML.Data_Types.UML_Data_Type_Access); 118 -- Setter of Operation::datatype. 119 -- 120 -- The DataType that owns this Operation. 121 122 overriding function Get_Interface 123 (Self : not null access constant UML_Operation_Proxy) 124 return AMF.UML.Interfaces.UML_Interface_Access; 125 -- Getter of Operation::interface. 126 -- 127 -- The Interface that owns this Operation. 128 129 overriding procedure Set_Interface 130 (Self : not null access UML_Operation_Proxy; 131 To : AMF.UML.Interfaces.UML_Interface_Access); 132 -- Setter of Operation::interface. 133 -- 134 -- The Interface that owns this Operation. 135 136 overriding function Get_Is_Ordered 137 (Self : not null access constant UML_Operation_Proxy) 138 return Boolean; 139 -- Getter of Operation::isOrdered. 140 -- 141 -- This information is derived from the return result for this Operation. 142 -- Specifies whether the return parameter is ordered or not, if present. 143 144 overriding function Get_Is_Query 145 (Self : not null access constant UML_Operation_Proxy) 146 return Boolean; 147 -- Getter of Operation::isQuery. 148 -- 149 -- Specifies whether an execution of the BehavioralFeature leaves the 150 -- state of the system unchanged (isQuery=true) or whether side effects 151 -- may occur (isQuery=false). 152 153 overriding procedure Set_Is_Query 154 (Self : not null access UML_Operation_Proxy; 155 To : Boolean); 156 -- Setter of Operation::isQuery. 157 -- 158 -- Specifies whether an execution of the BehavioralFeature leaves the 159 -- state of the system unchanged (isQuery=true) or whether side effects 160 -- may occur (isQuery=false). 161 162 overriding function Get_Is_Unique 163 (Self : not null access constant UML_Operation_Proxy) 164 return Boolean; 165 -- Getter of Operation::isUnique. 166 -- 167 -- This information is derived from the return result for this Operation. 168 -- Specifies whether the return parameter is unique or not, if present. 169 170 overriding function Get_Lower 171 (Self : not null access constant UML_Operation_Proxy) 172 return AMF.Optional_Integer; 173 -- Getter of Operation::lower. 174 -- 175 -- Specifies the lower multiplicity of the return parameter, if present. 176 -- This information is derived from the return result for this Operation. 177 178 overriding function Get_Owned_Parameter 179 (Self : not null access constant UML_Operation_Proxy) 180 return AMF.UML.Parameters.Collections.Ordered_Set_Of_UML_Parameter; 181 -- Getter of Operation::ownedParameter. 182 -- 183 -- Specifies the ordered set of formal parameters of this 184 -- BehavioralFeature. 185 -- Specifies the parameters owned by this Operation. 186 187 overriding function Get_Postcondition 188 (Self : not null access constant UML_Operation_Proxy) 189 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 190 -- Getter of Operation::postcondition. 191 -- 192 -- An optional set of Constraints specifying the state of the system when 193 -- the Operation is completed. 194 195 overriding function Get_Precondition 196 (Self : not null access constant UML_Operation_Proxy) 197 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 198 -- Getter of Operation::precondition. 199 -- 200 -- An optional set of Constraints on the state of the system when the 201 -- Operation is invoked. 202 203 overriding function Get_Raised_Exception 204 (Self : not null access constant UML_Operation_Proxy) 205 return AMF.UML.Types.Collections.Set_Of_UML_Type; 206 -- Getter of Operation::raisedException. 207 -- 208 -- References the Types representing exceptions that may be raised during 209 -- an invocation of this operation. 210 211 overriding function Get_Redefined_Operation 212 (Self : not null access constant UML_Operation_Proxy) 213 return AMF.UML.Operations.Collections.Set_Of_UML_Operation; 214 -- Getter of Operation::redefinedOperation. 215 -- 216 -- References the Operations that are redefined by this Operation. 217 218 overriding function Get_Template_Parameter 219 (Self : not null access constant UML_Operation_Proxy) 220 return AMF.UML.Operation_Template_Parameters.UML_Operation_Template_Parameter_Access; 221 -- Getter of Operation::templateParameter. 222 -- 223 -- The template parameter that exposes this element as a formal parameter. 224 225 overriding procedure Set_Template_Parameter 226 (Self : not null access UML_Operation_Proxy; 227 To : AMF.UML.Operation_Template_Parameters.UML_Operation_Template_Parameter_Access); 228 -- Setter of Operation::templateParameter. 229 -- 230 -- The template parameter that exposes this element as a formal parameter. 231 232 overriding function Get_Type 233 (Self : not null access constant UML_Operation_Proxy) 234 return AMF.UML.Types.UML_Type_Access; 235 -- Getter of Operation::type. 236 -- 237 -- This information is derived from the return result for this Operation. 238 -- Specifies the return result of the operation, if present. 239 240 overriding function Get_Upper 241 (Self : not null access constant UML_Operation_Proxy) 242 return AMF.Optional_Unlimited_Natural; 243 -- Getter of Operation::upper. 244 -- 245 -- Specifies the upper multiplicity of the return parameter, if present. 246 -- This information is derived from the return result for this Operation. 247 248 overriding function Get_Concurrency 249 (Self : not null access constant UML_Operation_Proxy) 250 return AMF.UML.UML_Call_Concurrency_Kind; 251 -- Getter of BehavioralFeature::concurrency. 252 -- 253 -- Specifies the semantics of concurrent calls to the same passive 254 -- instance (i.e., an instance originating from a class with isActive 255 -- being false). Active instances control access to their own behavioral 256 -- features. 257 258 overriding procedure Set_Concurrency 259 (Self : not null access UML_Operation_Proxy; 260 To : AMF.UML.UML_Call_Concurrency_Kind); 261 -- Setter of BehavioralFeature::concurrency. 262 -- 263 -- Specifies the semantics of concurrent calls to the same passive 264 -- instance (i.e., an instance originating from a class with isActive 265 -- being false). Active instances control access to their own behavioral 266 -- features. 267 268 overriding function Get_Is_Abstract 269 (Self : not null access constant UML_Operation_Proxy) 270 return Boolean; 271 -- Getter of BehavioralFeature::isAbstract. 272 -- 273 -- If true, then the behavioral feature does not have an implementation, 274 -- and one must be supplied by a more specific element. If false, the 275 -- behavioral feature must have an implementation in the classifier or one 276 -- must be inherited from a more general element. 277 278 overriding procedure Set_Is_Abstract 279 (Self : not null access UML_Operation_Proxy; 280 To : Boolean); 281 -- Setter of BehavioralFeature::isAbstract. 282 -- 283 -- If true, then the behavioral feature does not have an implementation, 284 -- and one must be supplied by a more specific element. If false, the 285 -- behavioral feature must have an implementation in the classifier or one 286 -- must be inherited from a more general element. 287 288 overriding function Get_Method 289 (Self : not null access constant UML_Operation_Proxy) 290 return AMF.UML.Behaviors.Collections.Set_Of_UML_Behavior; 291 -- Getter of BehavioralFeature::method. 292 -- 293 -- A behavioral description that implements the behavioral feature. There 294 -- may be at most one behavior for a particular pairing of a classifier 295 -- (as owner of the behavior) and a behavioral feature (as specification 296 -- of the behavior). 297 298 overriding function Get_Owned_Parameter_Set 299 (Self : not null access constant UML_Operation_Proxy) 300 return AMF.UML.Parameter_Sets.Collections.Set_Of_UML_Parameter_Set; 301 -- Getter of BehavioralFeature::ownedParameterSet. 302 -- 303 -- The ParameterSets owned by this BehavioralFeature. 304 305 overriding function Get_Featuring_Classifier 306 (Self : not null access constant UML_Operation_Proxy) 307 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 308 -- Getter of Feature::featuringClassifier. 309 -- 310 -- The Classifiers that have this Feature as a feature. 311 312 overriding function Get_Is_Static 313 (Self : not null access constant UML_Operation_Proxy) 314 return Boolean; 315 -- Getter of Feature::isStatic. 316 -- 317 -- Specifies whether this feature characterizes individual instances 318 -- classified by the classifier (false) or the classifier itself (true). 319 320 overriding procedure Set_Is_Static 321 (Self : not null access UML_Operation_Proxy; 322 To : Boolean); 323 -- Setter of Feature::isStatic. 324 -- 325 -- Specifies whether this feature characterizes individual instances 326 -- classified by the classifier (false) or the classifier itself (true). 327 328 overriding function Get_Is_Leaf 329 (Self : not null access constant UML_Operation_Proxy) 330 return Boolean; 331 -- Getter of RedefinableElement::isLeaf. 332 -- 333 -- Indicates whether it is possible to further redefine a 334 -- RedefinableElement. If the value is true, then it is not possible to 335 -- further redefine the RedefinableElement. Note that this property is 336 -- preserved through package merge operations; that is, the capability to 337 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 338 -- the resulting RedefinableElement of a package merge operation where a 339 -- RedefinableElement with isLeaf=false is merged with a matching 340 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 341 -- will have isLeaf=false. Default value is false. 342 343 overriding procedure Set_Is_Leaf 344 (Self : not null access UML_Operation_Proxy; 345 To : Boolean); 346 -- Setter of RedefinableElement::isLeaf. 347 -- 348 -- Indicates whether it is possible to further redefine a 349 -- RedefinableElement. If the value is true, then it is not possible to 350 -- further redefine the RedefinableElement. Note that this property is 351 -- preserved through package merge operations; that is, the capability to 352 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 353 -- the resulting RedefinableElement of a package merge operation where a 354 -- RedefinableElement with isLeaf=false is merged with a matching 355 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 356 -- will have isLeaf=false. Default value is false. 357 358 overriding function Get_Redefined_Element 359 (Self : not null access constant UML_Operation_Proxy) 360 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 361 -- Getter of RedefinableElement::redefinedElement. 362 -- 363 -- The redefinable element that is being redefined by this element. 364 365 overriding function Get_Redefinition_Context 366 (Self : not null access constant UML_Operation_Proxy) 367 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 368 -- Getter of RedefinableElement::redefinitionContext. 369 -- 370 -- References the contexts that this element may be redefined from. 371 372 overriding function Get_Client_Dependency 373 (Self : not null access constant UML_Operation_Proxy) 374 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 375 -- Getter of NamedElement::clientDependency. 376 -- 377 -- Indicates the dependencies that reference the client. 378 379 overriding function Get_Name_Expression 380 (Self : not null access constant UML_Operation_Proxy) 381 return AMF.UML.String_Expressions.UML_String_Expression_Access; 382 -- Getter of NamedElement::nameExpression. 383 -- 384 -- The string expression used to define the name of this named element. 385 386 overriding procedure Set_Name_Expression 387 (Self : not null access UML_Operation_Proxy; 388 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 389 -- Setter of NamedElement::nameExpression. 390 -- 391 -- The string expression used to define the name of this named element. 392 393 overriding function Get_Namespace 394 (Self : not null access constant UML_Operation_Proxy) 395 return AMF.UML.Namespaces.UML_Namespace_Access; 396 -- Getter of NamedElement::namespace. 397 -- 398 -- Specifies the namespace that owns the NamedElement. 399 400 overriding function Get_Qualified_Name 401 (Self : not null access constant UML_Operation_Proxy) 402 return AMF.Optional_String; 403 -- Getter of NamedElement::qualifiedName. 404 -- 405 -- A name which allows the NamedElement to be identified within a 406 -- hierarchy of nested Namespaces. It is constructed from the names of the 407 -- containing namespaces starting at the root of the hierarchy and ending 408 -- with the name of the NamedElement itself. 409 410 overriding function Get_Element_Import 411 (Self : not null access constant UML_Operation_Proxy) 412 return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import; 413 -- Getter of Namespace::elementImport. 414 -- 415 -- References the ElementImports owned by the Namespace. 416 417 overriding function Get_Imported_Member 418 (Self : not null access constant UML_Operation_Proxy) 419 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 420 -- Getter of Namespace::importedMember. 421 -- 422 -- References the PackageableElements that are members of this Namespace 423 -- as a result of either PackageImports or ElementImports. 424 425 overriding function Get_Member 426 (Self : not null access constant UML_Operation_Proxy) 427 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 428 -- Getter of Namespace::member. 429 -- 430 -- A collection of NamedElements identifiable within the Namespace, either 431 -- by being owned or by being introduced by importing or inheritance. 432 433 overriding function Get_Owned_Member 434 (Self : not null access constant UML_Operation_Proxy) 435 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 436 -- Getter of Namespace::ownedMember. 437 -- 438 -- A collection of NamedElements owned by the Namespace. 439 440 overriding function Get_Owned_Rule 441 (Self : not null access constant UML_Operation_Proxy) 442 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 443 -- Getter of Namespace::ownedRule. 444 -- 445 -- Specifies a set of Constraints owned by this Namespace. 446 447 overriding function Get_Package_Import 448 (Self : not null access constant UML_Operation_Proxy) 449 return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import; 450 -- Getter of Namespace::packageImport. 451 -- 452 -- References the PackageImports owned by the Namespace. 453 454 overriding function Get_Owned_Template_Signature 455 (Self : not null access constant UML_Operation_Proxy) 456 return AMF.UML.Template_Signatures.UML_Template_Signature_Access; 457 -- Getter of TemplateableElement::ownedTemplateSignature. 458 -- 459 -- The optional template signature specifying the formal template 460 -- parameters. 461 462 overriding procedure Set_Owned_Template_Signature 463 (Self : not null access UML_Operation_Proxy; 464 To : AMF.UML.Template_Signatures.UML_Template_Signature_Access); 465 -- Setter of TemplateableElement::ownedTemplateSignature. 466 -- 467 -- The optional template signature specifying the formal template 468 -- parameters. 469 470 overriding function Get_Template_Binding 471 (Self : not null access constant UML_Operation_Proxy) 472 return AMF.UML.Template_Bindings.Collections.Set_Of_UML_Template_Binding; 473 -- Getter of TemplateableElement::templateBinding. 474 -- 475 -- The optional bindings from this element to templates. 476 477 overriding function Get_Owning_Template_Parameter 478 (Self : not null access constant UML_Operation_Proxy) 479 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 480 -- Getter of ParameterableElement::owningTemplateParameter. 481 -- 482 -- The formal template parameter that owns this element. 483 484 overriding procedure Set_Owning_Template_Parameter 485 (Self : not null access UML_Operation_Proxy; 486 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 487 -- Setter of ParameterableElement::owningTemplateParameter. 488 -- 489 -- The formal template parameter that owns this element. 490 491 overriding function Get_Template_Parameter 492 (Self : not null access constant UML_Operation_Proxy) 493 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 494 -- Getter of ParameterableElement::templateParameter. 495 -- 496 -- The template parameter that exposes this element as a formal parameter. 497 498 overriding procedure Set_Template_Parameter 499 (Self : not null access UML_Operation_Proxy; 500 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 501 -- Setter of ParameterableElement::templateParameter. 502 -- 503 -- The template parameter that exposes this element as a formal parameter. 504 505 overriding function Is_Consistent_With 506 (Self : not null access constant UML_Operation_Proxy; 507 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 508 return Boolean; 509 -- Operation Operation::isConsistentWith. 510 -- 511 -- A redefining operation is consistent with a redefined operation if it 512 -- has the same number of owned parameters, and the type of each owned 513 -- parameter conforms to the type of the corresponding redefined parameter. 514 -- The query isConsistentWith() specifies, for any two Operations in a 515 -- context in which redefinition is possible, whether redefinition would 516 -- be consistent in the sense of maintaining type covariance. Other senses 517 -- of consistency may be required, for example to determine consistency in 518 -- the sense of contravariance. Users may define alternative queries under 519 -- names different from 'isConsistentWith()', as for example, users may 520 -- define a query named 'isContravariantWith()'. 521 522 overriding function Is_Ordered 523 (Self : not null access constant UML_Operation_Proxy) 524 return Boolean; 525 -- Operation Operation::isOrdered. 526 -- 527 -- If this operation has a return parameter, isOrdered equals the value of 528 -- isOrdered for that parameter. Otherwise isOrdered is false. 529 530 overriding function Is_Unique 531 (Self : not null access constant UML_Operation_Proxy) 532 return Boolean; 533 -- Operation Operation::isUnique. 534 -- 535 -- If this operation has a return parameter, isUnique equals the value of 536 -- isUnique for that parameter. Otherwise isUnique is true. 537 538 overriding function Lower 539 (Self : not null access constant UML_Operation_Proxy) 540 return Integer; 541 -- Operation Operation::lower. 542 -- 543 -- If this operation has a return parameter, lower equals the value of 544 -- lower for that parameter. Otherwise lower is not defined. 545 546 overriding function Return_Result 547 (Self : not null access constant UML_Operation_Proxy) 548 return AMF.UML.Parameters.Collections.Set_Of_UML_Parameter; 549 -- Operation Operation::returnResult. 550 -- 551 -- The query returnResult() returns the set containing the return 552 -- parameter of the Operation if one exists, otherwise, it returns an 553 -- empty set 554 555 overriding function Types 556 (Self : not null access constant UML_Operation_Proxy) 557 return AMF.UML.Types.UML_Type_Access; 558 -- Operation Operation::type. 559 -- 560 -- If this operation has a return parameter, type equals the value of type 561 -- for that parameter. Otherwise type is not defined. 562 563 overriding function Upper 564 (Self : not null access constant UML_Operation_Proxy) 565 return AMF.Unlimited_Natural; 566 -- Operation Operation::upper. 567 -- 568 -- If this operation has a return parameter, upper equals the value of 569 -- upper for that parameter. Otherwise upper is not defined. 570 571 overriding function Is_Distinguishable_From 572 (Self : not null access constant UML_Operation_Proxy; 573 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 574 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 575 return Boolean; 576 -- Operation BehavioralFeature::isDistinguishableFrom. 577 -- 578 -- The query isDistinguishableFrom() determines whether two 579 -- BehavioralFeatures may coexist in the same Namespace. It specifies that 580 -- they have to have different signatures. 581 582 overriding function Is_Redefinition_Context_Valid 583 (Self : not null access constant UML_Operation_Proxy; 584 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 585 return Boolean; 586 -- Operation RedefinableElement::isRedefinitionContextValid. 587 -- 588 -- The query isRedefinitionContextValid() specifies whether the 589 -- redefinition contexts of this RedefinableElement are properly related 590 -- to the redefinition contexts of the specified RedefinableElement to 591 -- allow this element to redefine the other. By default at least one of 592 -- the redefinition contexts of this element must be a specialization of 593 -- at least one of the redefinition contexts of the specified element. 594 595 overriding function All_Owning_Packages 596 (Self : not null access constant UML_Operation_Proxy) 597 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 598 -- Operation NamedElement::allOwningPackages. 599 -- 600 -- The query allOwningPackages() returns all the directly or indirectly 601 -- owning packages. 602 603 overriding function Namespace 604 (Self : not null access constant UML_Operation_Proxy) 605 return AMF.UML.Namespaces.UML_Namespace_Access; 606 -- Operation NamedElement::namespace. 607 -- 608 -- Missing derivation for NamedElement::/namespace : Namespace 609 610 overriding function Exclude_Collisions 611 (Self : not null access constant UML_Operation_Proxy; 612 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 613 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 614 -- Operation Namespace::excludeCollisions. 615 -- 616 -- The query excludeCollisions() excludes from a set of 617 -- PackageableElements any that would not be distinguishable from each 618 -- other in this namespace. 619 620 overriding function Get_Names_Of_Member 621 (Self : not null access constant UML_Operation_Proxy; 622 Element : AMF.UML.Named_Elements.UML_Named_Element_Access) 623 return AMF.String_Collections.Set_Of_String; 624 -- Operation Namespace::getNamesOfMember. 625 -- 626 -- The query getNamesOfMember() takes importing into account. It gives 627 -- back the set of names that an element would have in an importing 628 -- namespace, either because it is owned, or if not owned then imported 629 -- individually, or if not individually then from a package. 630 -- The query getNamesOfMember() gives a set of all of the names that a 631 -- member would have in a Namespace. In general a member can have multiple 632 -- names in a Namespace if it is imported more than once with different 633 -- aliases. The query takes account of importing. It gives back the set of 634 -- names that an element would have in an importing namespace, either 635 -- because it is owned, or if not owned then imported individually, or if 636 -- not individually then from a package. 637 638 overriding function Import_Members 639 (Self : not null access constant UML_Operation_Proxy; 640 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 641 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 642 -- Operation Namespace::importMembers. 643 -- 644 -- The query importMembers() defines which of a set of PackageableElements 645 -- are actually imported into the namespace. This excludes hidden ones, 646 -- i.e., those which have names that conflict with names of owned members, 647 -- and also excludes elements which would have the same name when imported. 648 649 overriding function Imported_Member 650 (Self : not null access constant UML_Operation_Proxy) 651 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 652 -- Operation Namespace::importedMember. 653 -- 654 -- The importedMember property is derived from the ElementImports and the 655 -- PackageImports. References the PackageableElements that are members of 656 -- this Namespace as a result of either PackageImports or ElementImports. 657 658 overriding function Members_Are_Distinguishable 659 (Self : not null access constant UML_Operation_Proxy) 660 return Boolean; 661 -- Operation Namespace::membersAreDistinguishable. 662 -- 663 -- The Boolean query membersAreDistinguishable() determines whether all of 664 -- the namespace's members are distinguishable within it. 665 666 overriding function Owned_Member 667 (Self : not null access constant UML_Operation_Proxy) 668 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 669 -- Operation Namespace::ownedMember. 670 -- 671 -- Missing derivation for Namespace::/ownedMember : NamedElement 672 673 overriding function Is_Template 674 (Self : not null access constant UML_Operation_Proxy) 675 return Boolean; 676 -- Operation TemplateableElement::isTemplate. 677 -- 678 -- The query isTemplate() returns whether this templateable element is 679 -- actually a template. 680 681 overriding function Parameterable_Elements 682 (Self : not null access constant UML_Operation_Proxy) 683 return AMF.UML.Parameterable_Elements.Collections.Set_Of_UML_Parameterable_Element; 684 -- Operation TemplateableElement::parameterableElements. 685 -- 686 -- The query parameterableElements() returns the set of elements that may 687 -- be used as the parametered elements for a template parameter of this 688 -- templateable element. By default, this set includes all the owned 689 -- elements. Subclasses may override this operation if they choose to 690 -- restrict the set of parameterable elements. 691 692 overriding function Is_Compatible_With 693 (Self : not null access constant UML_Operation_Proxy; 694 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 695 return Boolean; 696 -- Operation ParameterableElement::isCompatibleWith. 697 -- 698 -- The query isCompatibleWith() determines if this parameterable element 699 -- is compatible with the specified parameterable element. By default 700 -- parameterable element P is compatible with parameterable element Q if 701 -- the kind of P is the same or a subtype as the kind of Q. Subclasses 702 -- should override this operation to specify different compatibility 703 -- constraints. 704 705 overriding function Is_Template_Parameter 706 (Self : not null access constant UML_Operation_Proxy) 707 return Boolean; 708 -- Operation ParameterableElement::isTemplateParameter. 709 -- 710 -- The query isTemplateParameter() determines if this parameterable 711 -- element is exposed as a formal template parameter. 712 713 overriding procedure Enter_Element 714 (Self : not null access constant UML_Operation_Proxy; 715 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 716 Control : in out AMF.Visitors.Traverse_Control); 717 -- Dispatch call to corresponding subprogram of visitor interface. 718 719 overriding procedure Leave_Element 720 (Self : not null access constant UML_Operation_Proxy; 721 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 722 Control : in out AMF.Visitors.Traverse_Control); 723 -- Dispatch call to corresponding subprogram of visitor interface. 724 725 overriding procedure Visit_Element 726 (Self : not null access constant UML_Operation_Proxy; 727 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 728 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 729 Control : in out AMF.Visitors.Traverse_Control); 730 -- Dispatch call to corresponding subprogram of iterator interface. 731 732end AMF.Internals.UML_Operations; 733