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: 2714 $ $Date: 2012-03-24 10:29:08 +0400 (Sat, 24 Mar 2012) $ 43------------------------------------------------------------------------------ 44-- This file is generated, don't edit it. 45------------------------------------------------------------------------------ 46-- Because of the concurrent nature of the execution of actions within and 47-- across activities, it can be difficult to guarantee the consistent access 48-- and modification of object memory. In order to avoid race conditions or 49-- other concurrency-related problems, it is sometimes necessary to isolate 50-- the effects of a group of actions from the effects of actions outside the 51-- group. This may be indicated by setting the mustIsolate attribute to true 52-- on a structured activity node. If a structured activity node is 53-- 'isolated,' then any object used by an action within the node cannot be 54-- accessed by any action outside the node until the structured activity node 55-- as a whole completes. Any concurrent actions that would result in 56-- accessing such objects are required to have their execution deferred until 57-- the completion of the node. 58-- 59-- A structured activity node is an executable activity node that may have an 60-- expansion into subordinate nodes as an activity group. The subordinate 61-- nodes must belong to only one structured activity node, although they may 62-- be nested. 63------------------------------------------------------------------------------ 64with AMF.UML.Actions; 65limited with AMF.UML.Activities; 66limited with AMF.UML.Activity_Edges.Collections; 67with AMF.UML.Activity_Groups; 68limited with AMF.UML.Activity_Nodes.Collections; 69limited with AMF.UML.Input_Pins.Collections; 70with AMF.UML.Namespaces; 71limited with AMF.UML.Output_Pins.Collections; 72limited with AMF.UML.Variables.Collections; 73 74package AMF.UML.Structured_Activity_Nodes is 75 76 pragma Preelaborate; 77 78 type UML_Structured_Activity_Node is limited interface 79 and AMF.UML.Namespaces.UML_Namespace 80 and AMF.UML.Activity_Groups.UML_Activity_Group 81 and AMF.UML.Actions.UML_Action; 82 83 type UML_Structured_Activity_Node_Access is 84 access all UML_Structured_Activity_Node'Class; 85 for UML_Structured_Activity_Node_Access'Storage_Size use 0; 86 87 overriding function Get_Activity 88 (Self : not null access constant UML_Structured_Activity_Node) 89 return AMF.UML.Activities.UML_Activity_Access is abstract; 90 -- Getter of StructuredActivityNode::activity. 91 -- 92 -- Activity immediately containing the node. 93 94 overriding procedure Set_Activity 95 (Self : not null access UML_Structured_Activity_Node; 96 To : AMF.UML.Activities.UML_Activity_Access) is abstract; 97 -- Setter of StructuredActivityNode::activity. 98 -- 99 -- Activity immediately containing the node. 100 101 not overriding function Get_Edge 102 (Self : not null access constant UML_Structured_Activity_Node) 103 return AMF.UML.Activity_Edges.Collections.Set_Of_UML_Activity_Edge is abstract; 104 -- Getter of StructuredActivityNode::edge. 105 -- 106 -- Edges immediately contained in the structured node. 107 108 not overriding function Get_Must_Isolate 109 (Self : not null access constant UML_Structured_Activity_Node) 110 return Boolean is abstract; 111 -- Getter of StructuredActivityNode::mustIsolate. 112 -- 113 -- If true, then the actions in the node execute in isolation from actions 114 -- outside the node. 115 116 not overriding procedure Set_Must_Isolate 117 (Self : not null access UML_Structured_Activity_Node; 118 To : Boolean) is abstract; 119 -- Setter of StructuredActivityNode::mustIsolate. 120 -- 121 -- If true, then the actions in the node execute in isolation from actions 122 -- outside the node. 123 124 not overriding function Get_Node 125 (Self : not null access constant UML_Structured_Activity_Node) 126 return AMF.UML.Activity_Nodes.Collections.Set_Of_UML_Activity_Node is abstract; 127 -- Getter of StructuredActivityNode::node. 128 -- 129 -- Nodes immediately contained in the group. 130 131 not overriding function Get_Structured_Node_Input 132 (Self : not null access constant UML_Structured_Activity_Node) 133 return AMF.UML.Input_Pins.Collections.Set_Of_UML_Input_Pin is abstract; 134 -- Getter of StructuredActivityNode::structuredNodeInput. 135 -- 136 137 not overriding function Get_Structured_Node_Output 138 (Self : not null access constant UML_Structured_Activity_Node) 139 return AMF.UML.Output_Pins.Collections.Set_Of_UML_Output_Pin is abstract; 140 -- Getter of StructuredActivityNode::structuredNodeOutput. 141 -- 142 143 not overriding function Get_Variable 144 (Self : not null access constant UML_Structured_Activity_Node) 145 return AMF.UML.Variables.Collections.Set_Of_UML_Variable is abstract; 146 -- Getter of StructuredActivityNode::variable. 147 -- 148 -- A variable defined in the scope of the structured activity node. It has 149 -- no value and may not be accessed 150 151end AMF.UML.Structured_Activity_Nodes; 152