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.Activities; 47with AMF.UML.Activity_Edges.Collections; 48with AMF.UML.Activity_Groups.Collections; 49with AMF.UML.Activity_Nodes.Collections; 50with AMF.UML.Activity_Partitions.Collections; 51with AMF.UML.Classifiers.Collections; 52with AMF.UML.Constraints.Collections; 53with AMF.UML.Dependencies.Collections; 54with AMF.UML.Element_Imports.Collections; 55with AMF.UML.Exception_Handlers.Collections; 56with AMF.UML.Expansion_Nodes.Collections; 57with AMF.UML.Expansion_Regions; 58with AMF.UML.Input_Pins.Collections; 59with AMF.UML.Interruptible_Activity_Regions.Collections; 60with AMF.UML.Named_Elements.Collections; 61with AMF.UML.Namespaces; 62with AMF.UML.Output_Pins.Collections; 63with AMF.UML.Package_Imports.Collections; 64with AMF.UML.Packageable_Elements.Collections; 65with AMF.UML.Packages.Collections; 66with AMF.UML.Redefinable_Elements.Collections; 67with AMF.UML.String_Expressions; 68with AMF.UML.Structured_Activity_Nodes; 69with AMF.UML.Variables.Collections; 70with AMF.Visitors; 71 72package AMF.Internals.UML_Expansion_Regions is 73 74 type UML_Expansion_Region_Proxy is 75 limited new AMF.Internals.UML_Named_Elements.UML_Named_Element_Proxy 76 and AMF.UML.Expansion_Regions.UML_Expansion_Region with null record; 77 78 overriding function Get_Input_Element 79 (Self : not null access constant UML_Expansion_Region_Proxy) 80 return AMF.UML.Expansion_Nodes.Collections.Set_Of_UML_Expansion_Node; 81 -- Getter of ExpansionRegion::inputElement. 82 -- 83 -- An object node that holds a separate element of the input collection 84 -- during each of the multiple executions of the region. 85 86 overriding function Get_Mode 87 (Self : not null access constant UML_Expansion_Region_Proxy) 88 return AMF.UML.UML_Expansion_Kind; 89 -- Getter of ExpansionRegion::mode. 90 -- 91 -- The way in which the executions interact: parallel: all interactions 92 -- are independent iterative: the interactions occur in order of the 93 -- elements stream: a stream of values flows into a single execution 94 95 overriding procedure Set_Mode 96 (Self : not null access UML_Expansion_Region_Proxy; 97 To : AMF.UML.UML_Expansion_Kind); 98 -- Setter of ExpansionRegion::mode. 99 -- 100 -- The way in which the executions interact: parallel: all interactions 101 -- are independent iterative: the interactions occur in order of the 102 -- elements stream: a stream of values flows into a single execution 103 104 overriding function Get_Output_Element 105 (Self : not null access constant UML_Expansion_Region_Proxy) 106 return AMF.UML.Expansion_Nodes.Collections.Set_Of_UML_Expansion_Node; 107 -- Getter of ExpansionRegion::outputElement. 108 -- 109 -- An object node that accepts a separate element of the output collection 110 -- during each of the multiple executions of the region. The values are 111 -- formed into a collection that is available when the execution of the 112 -- region is complete. 113 114 overriding function Get_Activity 115 (Self : not null access constant UML_Expansion_Region_Proxy) 116 return AMF.UML.Activities.UML_Activity_Access; 117 -- Getter of StructuredActivityNode::activity. 118 -- 119 -- Activity immediately containing the node. 120 121 overriding procedure Set_Activity 122 (Self : not null access UML_Expansion_Region_Proxy; 123 To : AMF.UML.Activities.UML_Activity_Access); 124 -- Setter of StructuredActivityNode::activity. 125 -- 126 -- Activity immediately containing the node. 127 128 overriding function Get_Edge 129 (Self : not null access constant UML_Expansion_Region_Proxy) 130 return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge; 131 -- Getter of StructuredActivityNode::edge. 132 -- 133 -- Edges immediately contained in the structured node. 134 135 overriding function Get_Must_Isolate 136 (Self : not null access constant UML_Expansion_Region_Proxy) 137 return Boolean; 138 -- Getter of StructuredActivityNode::mustIsolate. 139 -- 140 -- If true, then the actions in the node execute in isolation from actions 141 -- outside the node. 142 143 overriding procedure Set_Must_Isolate 144 (Self : not null access UML_Expansion_Region_Proxy; 145 To : Boolean); 146 -- Setter of StructuredActivityNode::mustIsolate. 147 -- 148 -- If true, then the actions in the node execute in isolation from actions 149 -- outside the node. 150 151 overriding function Get_Node 152 (Self : not null access constant UML_Expansion_Region_Proxy) 153 return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node; 154 -- Getter of StructuredActivityNode::node. 155 -- 156 -- Nodes immediately contained in the group. 157 158 overriding function Get_Structured_Node_Input 159 (Self : not null access constant UML_Expansion_Region_Proxy) 160 return AMF.UML.Input_Pins.Collections.Set_Of_UML_Input_Pin; 161 -- Getter of StructuredActivityNode::structuredNodeInput. 162 -- 163 164 overriding function Get_Structured_Node_Output 165 (Self : not null access constant UML_Expansion_Region_Proxy) 166 return AMF.UML.Output_Pins.Collections.Set_Of_UML_Output_Pin; 167 -- Getter of StructuredActivityNode::structuredNodeOutput. 168 -- 169 170 overriding function Get_Variable 171 (Self : not null access constant UML_Expansion_Region_Proxy) 172 return AMF.UML.Variables.Collections.Set_Of_UML_Variable; 173 -- Getter of StructuredActivityNode::variable. 174 -- 175 -- A variable defined in the scope of the structured activity node. It has 176 -- no value and may not be accessed 177 178 overriding function Get_Element_Import 179 (Self : not null access constant UML_Expansion_Region_Proxy) 180 return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import; 181 -- Getter of Namespace::elementImport. 182 -- 183 -- References the ElementImports owned by the Namespace. 184 185 overriding function Get_Imported_Member 186 (Self : not null access constant UML_Expansion_Region_Proxy) 187 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 188 -- Getter of Namespace::importedMember. 189 -- 190 -- References the PackageableElements that are members of this Namespace 191 -- as a result of either PackageImports or ElementImports. 192 193 overriding function Get_Member 194 (Self : not null access constant UML_Expansion_Region_Proxy) 195 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 196 -- Getter of Namespace::member. 197 -- 198 -- A collection of NamedElements identifiable within the Namespace, either 199 -- by being owned or by being introduced by importing or inheritance. 200 201 overriding function Get_Owned_Member 202 (Self : not null access constant UML_Expansion_Region_Proxy) 203 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 204 -- Getter of Namespace::ownedMember. 205 -- 206 -- A collection of NamedElements owned by the Namespace. 207 208 overriding function Get_Owned_Rule 209 (Self : not null access constant UML_Expansion_Region_Proxy) 210 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 211 -- Getter of Namespace::ownedRule. 212 -- 213 -- Specifies a set of Constraints owned by this Namespace. 214 215 overriding function Get_Package_Import 216 (Self : not null access constant UML_Expansion_Region_Proxy) 217 return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import; 218 -- Getter of Namespace::packageImport. 219 -- 220 -- References the PackageImports owned by the Namespace. 221 222 overriding function Get_Client_Dependency 223 (Self : not null access constant UML_Expansion_Region_Proxy) 224 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 225 -- Getter of NamedElement::clientDependency. 226 -- 227 -- Indicates the dependencies that reference the client. 228 229 overriding function Get_Name_Expression 230 (Self : not null access constant UML_Expansion_Region_Proxy) 231 return AMF.UML.String_Expressions.UML_String_Expression_Access; 232 -- Getter of NamedElement::nameExpression. 233 -- 234 -- The string expression used to define the name of this named element. 235 236 overriding procedure Set_Name_Expression 237 (Self : not null access UML_Expansion_Region_Proxy; 238 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 239 -- Setter of NamedElement::nameExpression. 240 -- 241 -- The string expression used to define the name of this named element. 242 243 overriding function Get_Namespace 244 (Self : not null access constant UML_Expansion_Region_Proxy) 245 return AMF.UML.Namespaces.UML_Namespace_Access; 246 -- Getter of NamedElement::namespace. 247 -- 248 -- Specifies the namespace that owns the NamedElement. 249 250 overriding function Get_Qualified_Name 251 (Self : not null access constant UML_Expansion_Region_Proxy) 252 return AMF.Optional_String; 253 -- Getter of NamedElement::qualifiedName. 254 -- 255 -- A name which allows the NamedElement to be identified within a 256 -- hierarchy of nested Namespaces. It is constructed from the names of the 257 -- containing namespaces starting at the root of the hierarchy and ending 258 -- with the name of the NamedElement itself. 259 260 overriding function Get_Contained_Edge 261 (Self : not null access constant UML_Expansion_Region_Proxy) 262 return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge; 263 -- Getter of ActivityGroup::containedEdge. 264 -- 265 -- Edges immediately contained in the group. 266 267 overriding function Get_Contained_Node 268 (Self : not null access constant UML_Expansion_Region_Proxy) 269 return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node; 270 -- Getter of ActivityGroup::containedNode. 271 -- 272 -- Nodes immediately contained in the group. 273 274 overriding function Get_In_Activity 275 (Self : not null access constant UML_Expansion_Region_Proxy) 276 return AMF.UML.Activities.UML_Activity_Access; 277 -- Getter of ActivityGroup::inActivity. 278 -- 279 -- Activity containing the group. 280 281 overriding procedure Set_In_Activity 282 (Self : not null access UML_Expansion_Region_Proxy; 283 To : AMF.UML.Activities.UML_Activity_Access); 284 -- Setter of ActivityGroup::inActivity. 285 -- 286 -- Activity containing the group. 287 288 overriding function Get_Subgroup 289 (Self : not null access constant UML_Expansion_Region_Proxy) 290 return AMF.UML.Activity_Groups.Collections.Set_Of_UML_Activity_Group; 291 -- Getter of ActivityGroup::subgroup. 292 -- 293 -- Groups immediately contained in the group. 294 295 overriding function Get_Super_Group 296 (Self : not null access constant UML_Expansion_Region_Proxy) 297 return AMF.UML.Activity_Groups.UML_Activity_Group_Access; 298 -- Getter of ActivityGroup::superGroup. 299 -- 300 -- Group immediately containing the group. 301 302 overriding function Get_Context 303 (Self : not null access constant UML_Expansion_Region_Proxy) 304 return AMF.UML.Classifiers.UML_Classifier_Access; 305 -- Getter of Action::context. 306 -- 307 -- The classifier that owns the behavior of which this action is a part. 308 309 overriding function Get_Input 310 (Self : not null access constant UML_Expansion_Region_Proxy) 311 return AMF.UML.Input_Pins.Collections.Ordered_Set_Of_UML_Input_Pin; 312 -- Getter of Action::input. 313 -- 314 -- The ordered set of input pins connected to the Action. These are among 315 -- the total set of inputs. 316 317 overriding function Get_Is_Locally_Reentrant 318 (Self : not null access constant UML_Expansion_Region_Proxy) 319 return Boolean; 320 -- Getter of Action::isLocallyReentrant. 321 -- 322 -- If true, the action can begin a new, concurrent execution, even if 323 -- there is already another execution of the action ongoing. If false, the 324 -- action cannot begin a new execution until any previous execution has 325 -- completed. 326 327 overriding procedure Set_Is_Locally_Reentrant 328 (Self : not null access UML_Expansion_Region_Proxy; 329 To : Boolean); 330 -- Setter of Action::isLocallyReentrant. 331 -- 332 -- If true, the action can begin a new, concurrent execution, even if 333 -- there is already another execution of the action ongoing. If false, the 334 -- action cannot begin a new execution until any previous execution has 335 -- completed. 336 337 overriding function Get_Local_Postcondition 338 (Self : not null access constant UML_Expansion_Region_Proxy) 339 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 340 -- Getter of Action::localPostcondition. 341 -- 342 -- Constraint that must be satisfied when executed is completed. 343 344 overriding function Get_Local_Precondition 345 (Self : not null access constant UML_Expansion_Region_Proxy) 346 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 347 -- Getter of Action::localPrecondition. 348 -- 349 -- Constraint that must be satisfied when execution is started. 350 351 overriding function Get_Output 352 (Self : not null access constant UML_Expansion_Region_Proxy) 353 return AMF.UML.Output_Pins.Collections.Ordered_Set_Of_UML_Output_Pin; 354 -- Getter of Action::output. 355 -- 356 -- The ordered set of output pins connected to the Action. The action 357 -- places its results onto pins in this set. 358 359 overriding function Get_Handler 360 (Self : not null access constant UML_Expansion_Region_Proxy) 361 return AMF.UML.Exception_Handlers.Collections.Set_Of_UML_Exception_Handler; 362 -- Getter of ExecutableNode::handler. 363 -- 364 -- A set of exception handlers that are examined if an uncaught exception 365 -- propagates to the outer level of the executable node. 366 367 overriding function Get_In_Group 368 (Self : not null access constant UML_Expansion_Region_Proxy) 369 return AMF.UML.Activity_Groups.Collections.Set_Of_UML_Activity_Group; 370 -- Getter of ActivityNode::inGroup. 371 -- 372 -- Groups containing the node. 373 374 overriding function Get_In_Interruptible_Region 375 (Self : not null access constant UML_Expansion_Region_Proxy) 376 return AMF.UML.Interruptible_Activity_Regions.Collections.Set_Of_UML_Interruptible_Activity_Region; 377 -- Getter of ActivityNode::inInterruptibleRegion. 378 -- 379 -- Interruptible regions containing the node. 380 381 overriding function Get_In_Partition 382 (Self : not null access constant UML_Expansion_Region_Proxy) 383 return AMF.UML.Activity_Partitions.Collections.Set_Of_UML_Activity_Partition; 384 -- Getter of ActivityNode::inPartition. 385 -- 386 -- Partitions containing the node. 387 388 overriding function Get_In_Structured_Node 389 (Self : not null access constant UML_Expansion_Region_Proxy) 390 return AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access; 391 -- Getter of ActivityNode::inStructuredNode. 392 -- 393 -- Structured activity node containing the node. 394 395 overriding procedure Set_In_Structured_Node 396 (Self : not null access UML_Expansion_Region_Proxy; 397 To : AMF.UML.Structured_Activity_Nodes.UML_Structured_Activity_Node_Access); 398 -- Setter of ActivityNode::inStructuredNode. 399 -- 400 -- Structured activity node containing the node. 401 402 overriding function Get_Incoming 403 (Self : not null access constant UML_Expansion_Region_Proxy) 404 return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge; 405 -- Getter of ActivityNode::incoming. 406 -- 407 -- Edges that have the node as target. 408 409 overriding function Get_Outgoing 410 (Self : not null access constant UML_Expansion_Region_Proxy) 411 return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge; 412 -- Getter of ActivityNode::outgoing. 413 -- 414 -- Edges that have the node as source. 415 416 overriding function Get_Redefined_Node 417 (Self : not null access constant UML_Expansion_Region_Proxy) 418 return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node; 419 -- Getter of ActivityNode::redefinedNode. 420 -- 421 -- Inherited nodes replaced by this node in a specialization of the 422 -- activity. 423 424 overriding function Get_Is_Leaf 425 (Self : not null access constant UML_Expansion_Region_Proxy) 426 return Boolean; 427 -- Getter of RedefinableElement::isLeaf. 428 -- 429 -- Indicates whether it is possible to further redefine a 430 -- RedefinableElement. If the value is true, then it is not possible to 431 -- further redefine the RedefinableElement. Note that this property is 432 -- preserved through package merge operations; that is, the capability to 433 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 434 -- the resulting RedefinableElement of a package merge operation where a 435 -- RedefinableElement with isLeaf=false is merged with a matching 436 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 437 -- will have isLeaf=false. Default value is false. 438 439 overriding procedure Set_Is_Leaf 440 (Self : not null access UML_Expansion_Region_Proxy; 441 To : Boolean); 442 -- Setter of RedefinableElement::isLeaf. 443 -- 444 -- Indicates whether it is possible to further redefine a 445 -- RedefinableElement. If the value is true, then it is not possible to 446 -- further redefine the RedefinableElement. Note that this property is 447 -- preserved through package merge operations; that is, the capability to 448 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 449 -- the resulting RedefinableElement of a package merge operation where a 450 -- RedefinableElement with isLeaf=false is merged with a matching 451 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 452 -- will have isLeaf=false. Default value is false. 453 454 overriding function Get_Redefined_Element 455 (Self : not null access constant UML_Expansion_Region_Proxy) 456 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 457 -- Getter of RedefinableElement::redefinedElement. 458 -- 459 -- The redefinable element that is being redefined by this element. 460 461 overriding function Get_Redefinition_Context 462 (Self : not null access constant UML_Expansion_Region_Proxy) 463 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 464 -- Getter of RedefinableElement::redefinitionContext. 465 -- 466 -- References the contexts that this element may be redefined from. 467 468 overriding function Exclude_Collisions 469 (Self : not null access constant UML_Expansion_Region_Proxy; 470 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 471 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 472 -- Operation Namespace::excludeCollisions. 473 -- 474 -- The query excludeCollisions() excludes from a set of 475 -- PackageableElements any that would not be distinguishable from each 476 -- other in this namespace. 477 478 overriding function Get_Names_Of_Member 479 (Self : not null access constant UML_Expansion_Region_Proxy; 480 Element : AMF.UML.Named_Elements.UML_Named_Element_Access) 481 return AMF.String_Collections.Set_Of_String; 482 -- Operation Namespace::getNamesOfMember. 483 -- 484 -- The query getNamesOfMember() takes importing into account. It gives 485 -- back the set of names that an element would have in an importing 486 -- namespace, either because it is owned, or if not owned then imported 487 -- individually, or if not individually then from a package. 488 -- The query getNamesOfMember() gives a set of all of the names that a 489 -- member would have in a Namespace. In general a member can have multiple 490 -- names in a Namespace if it is imported more than once with different 491 -- aliases. The query takes account of importing. It gives back the set of 492 -- names that an element would have in an importing namespace, either 493 -- because it is owned, or if not owned then imported individually, or if 494 -- not individually then from a package. 495 496 overriding function Import_Members 497 (Self : not null access constant UML_Expansion_Region_Proxy; 498 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 499 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 500 -- Operation Namespace::importMembers. 501 -- 502 -- The query importMembers() defines which of a set of PackageableElements 503 -- are actually imported into the namespace. This excludes hidden ones, 504 -- i.e., those which have names that conflict with names of owned members, 505 -- and also excludes elements which would have the same name when imported. 506 507 overriding function Imported_Member 508 (Self : not null access constant UML_Expansion_Region_Proxy) 509 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 510 -- Operation Namespace::importedMember. 511 -- 512 -- The importedMember property is derived from the ElementImports and the 513 -- PackageImports. References the PackageableElements that are members of 514 -- this Namespace as a result of either PackageImports or ElementImports. 515 516 overriding function Members_Are_Distinguishable 517 (Self : not null access constant UML_Expansion_Region_Proxy) 518 return Boolean; 519 -- Operation Namespace::membersAreDistinguishable. 520 -- 521 -- The Boolean query membersAreDistinguishable() determines whether all of 522 -- the namespace's members are distinguishable within it. 523 524 overriding function Owned_Member 525 (Self : not null access constant UML_Expansion_Region_Proxy) 526 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 527 -- Operation Namespace::ownedMember. 528 -- 529 -- Missing derivation for Namespace::/ownedMember : NamedElement 530 531 overriding function All_Owning_Packages 532 (Self : not null access constant UML_Expansion_Region_Proxy) 533 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 534 -- Operation NamedElement::allOwningPackages. 535 -- 536 -- The query allOwningPackages() returns all the directly or indirectly 537 -- owning packages. 538 539 overriding function Is_Distinguishable_From 540 (Self : not null access constant UML_Expansion_Region_Proxy; 541 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 542 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 543 return Boolean; 544 -- Operation NamedElement::isDistinguishableFrom. 545 -- 546 -- The query isDistinguishableFrom() determines whether two NamedElements 547 -- may logically co-exist within a Namespace. By default, two named 548 -- elements are distinguishable if (a) they have unrelated types or (b) 549 -- they have related types but different names. 550 551 overriding function Namespace 552 (Self : not null access constant UML_Expansion_Region_Proxy) 553 return AMF.UML.Namespaces.UML_Namespace_Access; 554 -- Operation NamedElement::namespace. 555 -- 556 -- Missing derivation for NamedElement::/namespace : Namespace 557 558 overriding function Context 559 (Self : not null access constant UML_Expansion_Region_Proxy) 560 return AMF.UML.Classifiers.UML_Classifier_Access; 561 -- Operation Action::context. 562 -- 563 -- Missing derivation for Action::/context : Classifier 564 565 overriding function Is_Consistent_With 566 (Self : not null access constant UML_Expansion_Region_Proxy; 567 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 568 return Boolean; 569 -- Operation RedefinableElement::isConsistentWith. 570 -- 571 -- The query isConsistentWith() specifies, for any two RedefinableElements 572 -- in a context in which redefinition is possible, whether redefinition 573 -- would be logically consistent. By default, this is false; this 574 -- operation must be overridden for subclasses of RedefinableElement to 575 -- define the consistency conditions. 576 577 overriding function Is_Redefinition_Context_Valid 578 (Self : not null access constant UML_Expansion_Region_Proxy; 579 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 580 return Boolean; 581 -- Operation RedefinableElement::isRedefinitionContextValid. 582 -- 583 -- The query isRedefinitionContextValid() specifies whether the 584 -- redefinition contexts of this RedefinableElement are properly related 585 -- to the redefinition contexts of the specified RedefinableElement to 586 -- allow this element to redefine the other. By default at least one of 587 -- the redefinition contexts of this element must be a specialization of 588 -- at least one of the redefinition contexts of the specified element. 589 590 overriding procedure Enter_Element 591 (Self : not null access constant UML_Expansion_Region_Proxy; 592 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 593 Control : in out AMF.Visitors.Traverse_Control); 594 -- Dispatch call to corresponding subprogram of visitor interface. 595 596 overriding procedure Leave_Element 597 (Self : not null access constant UML_Expansion_Region_Proxy; 598 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 599 Control : in out AMF.Visitors.Traverse_Control); 600 -- Dispatch call to corresponding subprogram of visitor interface. 601 602 overriding procedure Visit_Element 603 (Self : not null access constant UML_Expansion_Region_Proxy; 604 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 605 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 606 Control : in out AMF.Visitors.Traverse_Control); 607 -- Dispatch call to corresponding subprogram of iterator interface. 608 609end AMF.Internals.UML_Expansion_Regions; 610