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