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; 47with AMF.UML.Classifiers.Collections; 48with AMF.UML.Connection_Point_References.Collections; 49with AMF.UML.Constraints.Collections; 50with AMF.UML.Dependencies.Collections; 51with AMF.UML.Element_Imports.Collections; 52with AMF.UML.Named_Elements.Collections; 53with AMF.UML.Namespaces; 54with AMF.UML.Package_Imports.Collections; 55with AMF.UML.Packageable_Elements.Collections; 56with AMF.UML.Packages.Collections; 57with AMF.UML.Pseudostates.Collections; 58with AMF.UML.Redefinable_Elements.Collections; 59with AMF.UML.Regions.Collections; 60with AMF.UML.State_Machines; 61with AMF.UML.States; 62with AMF.UML.String_Expressions; 63with AMF.UML.Transitions.Collections; 64with AMF.UML.Triggers.Collections; 65with AMF.Visitors; 66 67package AMF.Internals.UML_States is 68 69 type UML_State_Proxy is 70 limited new AMF.Internals.UML_Named_Elements.UML_Named_Element_Proxy 71 and AMF.UML.States.UML_State with null record; 72 73 overriding function Get_Connection 74 (Self : not null access constant UML_State_Proxy) 75 return AMF.UML.Connection_Point_References.Collections.Set_Of_UML_Connection_Point_Reference; 76 -- Getter of State::connection. 77 -- 78 -- The entry and exit connection points used in conjunction with this 79 -- (submachine) state, i.e. as targets and sources, respectively, in the 80 -- region with the submachine state. A connection point reference 81 -- references the corresponding definition of a connection point 82 -- pseudostate in the statemachine referenced by the submachinestate. 83 84 overriding function Get_Connection_Point 85 (Self : not null access constant UML_State_Proxy) 86 return AMF.UML.Pseudostates.Collections.Set_Of_UML_Pseudostate; 87 -- Getter of State::connectionPoint. 88 -- 89 -- The entry and exit pseudostates of a composite state. These can only be 90 -- entry or exit Pseudostates, and they must have different names. They 91 -- can only be defined for composite states. 92 93 overriding function Get_Deferrable_Trigger 94 (Self : not null access constant UML_State_Proxy) 95 return AMF.UML.Triggers.Collections.Set_Of_UML_Trigger; 96 -- Getter of State::deferrableTrigger. 97 -- 98 -- A list of triggers that are candidates to be retained by the state 99 -- machine if they trigger no transitions out of the state (not consumed). 100 -- A deferred trigger is retained until the state machine reaches a state 101 -- configuration where it is no longer deferred. 102 103 overriding function Get_Do_Activity 104 (Self : not null access constant UML_State_Proxy) 105 return AMF.UML.Behaviors.UML_Behavior_Access; 106 -- Getter of State::doActivity. 107 -- 108 -- An optional behavior that is executed while being in the state. The 109 -- execution starts when this state is entered, and stops either by 110 -- itself, or when the state is exited, whichever comes first. 111 112 overriding procedure Set_Do_Activity 113 (Self : not null access UML_State_Proxy; 114 To : AMF.UML.Behaviors.UML_Behavior_Access); 115 -- Setter of State::doActivity. 116 -- 117 -- An optional behavior that is executed while being in the state. The 118 -- execution starts when this state is entered, and stops either by 119 -- itself, or when the state is exited, whichever comes first. 120 121 overriding function Get_Entry 122 (Self : not null access constant UML_State_Proxy) 123 return AMF.UML.Behaviors.UML_Behavior_Access; 124 -- Getter of State::entry. 125 -- 126 -- An optional behavior that is executed whenever this state is entered 127 -- regardless of the transition taken to reach the state. If defined, 128 -- entry actions are always executed to completion prior to any internal 129 -- behavior or transitions performed within the state. 130 131 overriding procedure Set_Entry 132 (Self : not null access UML_State_Proxy; 133 To : AMF.UML.Behaviors.UML_Behavior_Access); 134 -- Setter of State::entry. 135 -- 136 -- An optional behavior that is executed whenever this state is entered 137 -- regardless of the transition taken to reach the state. If defined, 138 -- entry actions are always executed to completion prior to any internal 139 -- behavior or transitions performed within the state. 140 141 overriding function Get_Exit 142 (Self : not null access constant UML_State_Proxy) 143 return AMF.UML.Behaviors.UML_Behavior_Access; 144 -- Getter of State::exit. 145 -- 146 -- An optional behavior that is executed whenever this state is exited 147 -- regardless of which transition was taken out of the state. If defined, 148 -- exit actions are always executed to completion only after all internal 149 -- activities and transition actions have completed execution. 150 151 overriding procedure Set_Exit 152 (Self : not null access UML_State_Proxy; 153 To : AMF.UML.Behaviors.UML_Behavior_Access); 154 -- Setter of State::exit. 155 -- 156 -- An optional behavior that is executed whenever this state is exited 157 -- regardless of which transition was taken out of the state. If defined, 158 -- exit actions are always executed to completion only after all internal 159 -- activities and transition actions have completed execution. 160 161 overriding function Get_Is_Composite 162 (Self : not null access constant UML_State_Proxy) 163 return Boolean; 164 -- Getter of State::isComposite. 165 -- 166 -- A state with isComposite=true is said to be a composite state. A 167 -- composite state is a state that contains at least one region. 168 169 overriding function Get_Is_Orthogonal 170 (Self : not null access constant UML_State_Proxy) 171 return Boolean; 172 -- Getter of State::isOrthogonal. 173 -- 174 -- A state with isOrthogonal=true is said to be an orthogonal composite 175 -- state. An orthogonal composite state contains two or more regions. 176 177 overriding function Get_Is_Simple 178 (Self : not null access constant UML_State_Proxy) 179 return Boolean; 180 -- Getter of State::isSimple. 181 -- 182 -- A state with isSimple=true is said to be a simple state. A simple state 183 -- does not have any regions and it does not refer to any submachine state 184 -- machine. 185 186 overriding function Get_Is_Submachine_State 187 (Self : not null access constant UML_State_Proxy) 188 return Boolean; 189 -- Getter of State::isSubmachineState. 190 -- 191 -- A state with isSubmachineState=true is said to be a submachine state. 192 -- Such a state refers to a state machine (submachine). 193 194 overriding function Get_Redefined_State 195 (Self : not null access constant UML_State_Proxy) 196 return AMF.UML.States.UML_State_Access; 197 -- Getter of State::redefinedState. 198 -- 199 -- The state of which this state is a redefinition. 200 201 overriding procedure Set_Redefined_State 202 (Self : not null access UML_State_Proxy; 203 To : AMF.UML.States.UML_State_Access); 204 -- Setter of State::redefinedState. 205 -- 206 -- The state of which this state is a redefinition. 207 208 overriding function Get_Redefinition_Context 209 (Self : not null access constant UML_State_Proxy) 210 return AMF.UML.Classifiers.UML_Classifier_Access; 211 -- Getter of State::redefinitionContext. 212 -- 213 -- References the classifier in which context this element may be 214 -- redefined. 215 216 overriding function Get_Region 217 (Self : not null access constant UML_State_Proxy) 218 return AMF.UML.Regions.Collections.Set_Of_UML_Region; 219 -- Getter of State::region. 220 -- 221 -- The regions owned directly by the state. 222 223 overriding function Get_State_Invariant 224 (Self : not null access constant UML_State_Proxy) 225 return AMF.UML.Constraints.UML_Constraint_Access; 226 -- Getter of State::stateInvariant. 227 -- 228 -- Specifies conditions that are always true when this state is the 229 -- current state. In protocol state machines, state invariants are 230 -- additional conditions to the preconditions of the outgoing transitions, 231 -- and to the postcondition of the incoming transitions. 232 233 overriding procedure Set_State_Invariant 234 (Self : not null access UML_State_Proxy; 235 To : AMF.UML.Constraints.UML_Constraint_Access); 236 -- Setter of State::stateInvariant. 237 -- 238 -- Specifies conditions that are always true when this state is the 239 -- current state. In protocol state machines, state invariants are 240 -- additional conditions to the preconditions of the outgoing transitions, 241 -- and to the postcondition of the incoming transitions. 242 243 overriding function Get_Submachine 244 (Self : not null access constant UML_State_Proxy) 245 return AMF.UML.State_Machines.UML_State_Machine_Access; 246 -- Getter of State::submachine. 247 -- 248 -- The state machine that is to be inserted in place of the (submachine) 249 -- state. 250 251 overriding procedure Set_Submachine 252 (Self : not null access UML_State_Proxy; 253 To : AMF.UML.State_Machines.UML_State_Machine_Access); 254 -- Setter of State::submachine. 255 -- 256 -- The state machine that is to be inserted in place of the (submachine) 257 -- state. 258 259 overriding function Get_Is_Leaf 260 (Self : not null access constant UML_State_Proxy) 261 return Boolean; 262 -- Getter of RedefinableElement::isLeaf. 263 -- 264 -- Indicates whether it is possible to further redefine a 265 -- RedefinableElement. If the value is true, then it is not possible to 266 -- further redefine the RedefinableElement. Note that this property is 267 -- preserved through package merge operations; that is, the capability to 268 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 269 -- the resulting RedefinableElement of a package merge operation where a 270 -- RedefinableElement with isLeaf=false is merged with a matching 271 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 272 -- will have isLeaf=false. Default value is false. 273 274 overriding procedure Set_Is_Leaf 275 (Self : not null access UML_State_Proxy; 276 To : Boolean); 277 -- Setter of RedefinableElement::isLeaf. 278 -- 279 -- Indicates whether it is possible to further redefine a 280 -- RedefinableElement. If the value is true, then it is not possible to 281 -- further redefine the RedefinableElement. Note that this property is 282 -- preserved through package merge operations; that is, the capability to 283 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 284 -- the resulting RedefinableElement of a package merge operation where a 285 -- RedefinableElement with isLeaf=false is merged with a matching 286 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 287 -- will have isLeaf=false. Default value is false. 288 289 overriding function Get_Redefined_Element 290 (Self : not null access constant UML_State_Proxy) 291 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 292 -- Getter of RedefinableElement::redefinedElement. 293 -- 294 -- The redefinable element that is being redefined by this element. 295 296 overriding function Get_Redefinition_Context 297 (Self : not null access constant UML_State_Proxy) 298 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 299 -- Getter of RedefinableElement::redefinitionContext. 300 -- 301 -- References the contexts that this element may be redefined from. 302 303 overriding function Get_Client_Dependency 304 (Self : not null access constant UML_State_Proxy) 305 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 306 -- Getter of NamedElement::clientDependency. 307 -- 308 -- Indicates the dependencies that reference the client. 309 310 overriding function Get_Name_Expression 311 (Self : not null access constant UML_State_Proxy) 312 return AMF.UML.String_Expressions.UML_String_Expression_Access; 313 -- Getter of NamedElement::nameExpression. 314 -- 315 -- The string expression used to define the name of this named element. 316 317 overriding procedure Set_Name_Expression 318 (Self : not null access UML_State_Proxy; 319 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 320 -- Setter of NamedElement::nameExpression. 321 -- 322 -- The string expression used to define the name of this named element. 323 324 overriding function Get_Namespace 325 (Self : not null access constant UML_State_Proxy) 326 return AMF.UML.Namespaces.UML_Namespace_Access; 327 -- Getter of NamedElement::namespace. 328 -- 329 -- Specifies the namespace that owns the NamedElement. 330 331 overriding function Get_Qualified_Name 332 (Self : not null access constant UML_State_Proxy) 333 return AMF.Optional_String; 334 -- Getter of NamedElement::qualifiedName. 335 -- 336 -- A name which allows the NamedElement to be identified within a 337 -- hierarchy of nested Namespaces. It is constructed from the names of the 338 -- containing namespaces starting at the root of the hierarchy and ending 339 -- with the name of the NamedElement itself. 340 341 overriding function Get_Element_Import 342 (Self : not null access constant UML_State_Proxy) 343 return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import; 344 -- Getter of Namespace::elementImport. 345 -- 346 -- References the ElementImports owned by the Namespace. 347 348 overriding function Get_Imported_Member 349 (Self : not null access constant UML_State_Proxy) 350 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 351 -- Getter of Namespace::importedMember. 352 -- 353 -- References the PackageableElements that are members of this Namespace 354 -- as a result of either PackageImports or ElementImports. 355 356 overriding function Get_Member 357 (Self : not null access constant UML_State_Proxy) 358 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 359 -- Getter of Namespace::member. 360 -- 361 -- A collection of NamedElements identifiable within the Namespace, either 362 -- by being owned or by being introduced by importing or inheritance. 363 364 overriding function Get_Owned_Member 365 (Self : not null access constant UML_State_Proxy) 366 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 367 -- Getter of Namespace::ownedMember. 368 -- 369 -- A collection of NamedElements owned by the Namespace. 370 371 overriding function Get_Owned_Rule 372 (Self : not null access constant UML_State_Proxy) 373 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 374 -- Getter of Namespace::ownedRule. 375 -- 376 -- Specifies a set of Constraints owned by this Namespace. 377 378 overriding function Get_Package_Import 379 (Self : not null access constant UML_State_Proxy) 380 return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import; 381 -- Getter of Namespace::packageImport. 382 -- 383 -- References the PackageImports owned by the Namespace. 384 385 overriding function Get_Container 386 (Self : not null access constant UML_State_Proxy) 387 return AMF.UML.Regions.UML_Region_Access; 388 -- Getter of Vertex::container. 389 -- 390 -- The region that contains this vertex. 391 392 overriding procedure Set_Container 393 (Self : not null access UML_State_Proxy; 394 To : AMF.UML.Regions.UML_Region_Access); 395 -- Setter of Vertex::container. 396 -- 397 -- The region that contains this vertex. 398 399 overriding function Get_Incoming 400 (Self : not null access constant UML_State_Proxy) 401 return AMF.UML.Transitions.Collections.Set_Of_UML_Transition; 402 -- Getter of Vertex::incoming. 403 -- 404 -- Specifies the transitions entering this vertex. 405 406 overriding function Get_Outgoing 407 (Self : not null access constant UML_State_Proxy) 408 return AMF.UML.Transitions.Collections.Set_Of_UML_Transition; 409 -- Getter of Vertex::outgoing. 410 -- 411 -- Specifies the transitions departing from this vertex. 412 413 overriding function Containing_State_Machine 414 (Self : not null access constant UML_State_Proxy) 415 return AMF.UML.State_Machines.UML_State_Machine_Access; 416 -- Operation State::containingStateMachine. 417 -- 418 -- The query containingStateMachine() returns the state machine that 419 -- contains the state either directly or transitively. 420 421 overriding function Is_Composite 422 (Self : not null access constant UML_State_Proxy) 423 return Boolean; 424 -- Operation State::isComposite. 425 -- 426 -- A composite state is a state with at least one region. 427 428 overriding function Is_Consistent_With 429 (Self : not null access constant UML_State_Proxy; 430 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 431 return Boolean; 432 -- Operation State::isConsistentWith. 433 -- 434 -- The query isConsistentWith() specifies that a redefining state is 435 -- consistent with a redefined state provided that the redefining state is 436 -- an extension of the redefined state: A simple state can be redefined 437 -- (extended) to become a composite state (by adding a region) and a 438 -- composite state can be redefined (extended) by adding regions and by 439 -- adding vertices, states, and transitions to inherited regions. All 440 -- states may add or replace entry, exit, and 'doActivity' actions. 441 442 overriding function Is_Orthogonal 443 (Self : not null access constant UML_State_Proxy) 444 return Boolean; 445 -- Operation State::isOrthogonal. 446 -- 447 -- An orthogonal state is a composite state with at least 2 regions 448 449 overriding function Is_Redefinition_Context_Valid 450 (Self : not null access constant UML_State_Proxy; 451 Redefined : AMF.UML.States.UML_State_Access) 452 return Boolean; 453 -- Operation State::isRedefinitionContextValid. 454 -- 455 -- The query isRedefinitionContextValid() specifies whether the 456 -- redefinition contexts of a state are properly related to the 457 -- redefinition contexts of the specified state to allow this element to 458 -- redefine the other. The containing region of a redefining state must 459 -- redefine the containing region of the redefined state. 460 461 overriding function Is_Simple 462 (Self : not null access constant UML_State_Proxy) 463 return Boolean; 464 -- Operation State::isSimple. 465 -- 466 -- A simple state is a state without any regions. 467 468 overriding function Is_Submachine_State 469 (Self : not null access constant UML_State_Proxy) 470 return Boolean; 471 -- Operation State::isSubmachineState. 472 -- 473 -- Only submachine states can have a reference statemachine. 474 475 overriding function Redefinition_Context 476 (Self : not null access constant UML_State_Proxy) 477 return AMF.UML.Classifiers.UML_Classifier_Access; 478 -- Operation State::redefinitionContext. 479 -- 480 -- The redefinition context of a state is the nearest containing 481 -- statemachine. 482 483 overriding function Is_Redefinition_Context_Valid 484 (Self : not null access constant UML_State_Proxy; 485 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 486 return Boolean; 487 -- Operation RedefinableElement::isRedefinitionContextValid. 488 -- 489 -- The query isRedefinitionContextValid() specifies whether the 490 -- redefinition contexts of this RedefinableElement are properly related 491 -- to the redefinition contexts of the specified RedefinableElement to 492 -- allow this element to redefine the other. By default at least one of 493 -- the redefinition contexts of this element must be a specialization of 494 -- at least one of the redefinition contexts of the specified element. 495 496 overriding function All_Owning_Packages 497 (Self : not null access constant UML_State_Proxy) 498 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 499 -- Operation NamedElement::allOwningPackages. 500 -- 501 -- The query allOwningPackages() returns all the directly or indirectly 502 -- owning packages. 503 504 overriding function Is_Distinguishable_From 505 (Self : not null access constant UML_State_Proxy; 506 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 507 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 508 return Boolean; 509 -- Operation NamedElement::isDistinguishableFrom. 510 -- 511 -- The query isDistinguishableFrom() determines whether two NamedElements 512 -- may logically co-exist within a Namespace. By default, two named 513 -- elements are distinguishable if (a) they have unrelated types or (b) 514 -- they have related types but different names. 515 516 overriding function Namespace 517 (Self : not null access constant UML_State_Proxy) 518 return AMF.UML.Namespaces.UML_Namespace_Access; 519 -- Operation NamedElement::namespace. 520 -- 521 -- Missing derivation for NamedElement::/namespace : Namespace 522 523 overriding function Exclude_Collisions 524 (Self : not null access constant UML_State_Proxy; 525 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 526 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 527 -- Operation Namespace::excludeCollisions. 528 -- 529 -- The query excludeCollisions() excludes from a set of 530 -- PackageableElements any that would not be distinguishable from each 531 -- other in this namespace. 532 533 overriding function Get_Names_Of_Member 534 (Self : not null access constant UML_State_Proxy; 535 Element : AMF.UML.Named_Elements.UML_Named_Element_Access) 536 return AMF.String_Collections.Set_Of_String; 537 -- Operation Namespace::getNamesOfMember. 538 -- 539 -- The query getNamesOfMember() takes importing into account. It gives 540 -- back the set of names that an element would have in an importing 541 -- namespace, either because it is owned, or if not owned then imported 542 -- individually, or if not individually then from a package. 543 -- The query getNamesOfMember() gives a set of all of the names that a 544 -- member would have in a Namespace. In general a member can have multiple 545 -- names in a Namespace if it is imported more than once with different 546 -- aliases. The query takes account of importing. It gives back the set of 547 -- names that an element would have in an importing namespace, either 548 -- because it is owned, or if not owned then imported individually, or if 549 -- not individually then from a package. 550 551 overriding function Import_Members 552 (Self : not null access constant UML_State_Proxy; 553 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 554 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 555 -- Operation Namespace::importMembers. 556 -- 557 -- The query importMembers() defines which of a set of PackageableElements 558 -- are actually imported into the namespace. This excludes hidden ones, 559 -- i.e., those which have names that conflict with names of owned members, 560 -- and also excludes elements which would have the same name when imported. 561 562 overriding function Imported_Member 563 (Self : not null access constant UML_State_Proxy) 564 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 565 -- Operation Namespace::importedMember. 566 -- 567 -- The importedMember property is derived from the ElementImports and the 568 -- PackageImports. References the PackageableElements that are members of 569 -- this Namespace as a result of either PackageImports or ElementImports. 570 571 overriding function Members_Are_Distinguishable 572 (Self : not null access constant UML_State_Proxy) 573 return Boolean; 574 -- Operation Namespace::membersAreDistinguishable. 575 -- 576 -- The Boolean query membersAreDistinguishable() determines whether all of 577 -- the namespace's members are distinguishable within it. 578 579 overriding function Owned_Member 580 (Self : not null access constant UML_State_Proxy) 581 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 582 -- Operation Namespace::ownedMember. 583 -- 584 -- Missing derivation for Namespace::/ownedMember : NamedElement 585 586 overriding function Incoming 587 (Self : not null access constant UML_State_Proxy) 588 return AMF.UML.Transitions.Collections.Set_Of_UML_Transition; 589 -- Operation Vertex::incoming. 590 -- 591 -- Missing derivation for Vertex::/incoming : Transition 592 593 overriding function Outgoing 594 (Self : not null access constant UML_State_Proxy) 595 return AMF.UML.Transitions.Collections.Set_Of_UML_Transition; 596 -- Operation Vertex::outgoing. 597 -- 598 -- Missing derivation for Vertex::/outgoing : Transition 599 600 overriding procedure Enter_Element 601 (Self : not null access constant UML_State_Proxy; 602 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 603 Control : in out AMF.Visitors.Traverse_Control); 604 -- Dispatch call to corresponding subprogram of visitor interface. 605 606 overriding procedure Leave_Element 607 (Self : not null access constant UML_State_Proxy; 608 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 609 Control : in out AMF.Visitors.Traverse_Control); 610 -- Dispatch call to corresponding subprogram of visitor interface. 611 612 overriding procedure Visit_Element 613 (Self : not null access constant UML_State_Proxy; 614 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 615 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 616 Control : in out AMF.Visitors.Traverse_Control); 617 -- Dispatch call to corresponding subprogram of iterator interface. 618 619end AMF.Internals.UML_States; 620