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