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