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: 2802 $ $Date: 2012-04-06 21:45:28 +0400 (Fri, 06 Apr 2012) $ 43------------------------------------------------------------------------------ 44 45package AMF.UML is 46 47 pragma Preelaborate; 48 49 type UML_Aggregation_Kind is 50 (None, 51 Shared, 52 Composite); 53 54 type UML_Call_Concurrency_Kind is 55 (Sequential, 56 Guarded, 57 Concurrent); 58 59 type UML_Connector_Kind is 60 (Assembly, 61 Delegation); 62 63 type UML_Expansion_Kind is 64 (Parallel, 65 Iterative, 66 Stream); 67 68 type UML_Interaction_Operator_Kind is 69 (Alt_Operator, 70 Opt_Operator, 71 Break_Operator, 72 Par_Operator, 73 Loop_Operator, 74 Critical_Operator, 75 Neg_Operator, 76 Assert_Operator, 77 Strict_Operator, 78 Seq_Operator, 79 Ignore_Operator, 80 Consider_Operator); 81 82 type UML_Message_Kind is 83 (Complete, 84 Lost, 85 Found, 86 Unknown); 87 88 type UML_Message_Sort is 89 (Synch_Call, 90 Asynch_Call, 91 Asynch_Signal, 92 Create_Message, 93 Delete_Message, 94 Reply); 95 96 type UML_Object_Node_Ordering_Kind is 97 (Unordered, 98 Ordered, 99 LIFO, 100 FIFO); 101 102 type UML_Parameter_Direction_Kind is 103 (In_Parameter, 104 In_Out_Parameter, 105 Out_Parameter, 106 Return_Parameter); 107 108 type UML_Parameter_Effect_Kind is 109 (Create, 110 Read, 111 Update, 112 Delete); 113 114 type UML_Pseudostate_Kind is 115 (Initial_Pseudostate, 116 Deep_History_Pseudostate, 117 Shallow_History_Pseudostate, 118 Join_Pseudostate, 119 Fork_Pseudostate, 120 Junction_Pseudostate, 121 Choice_Pseudostate, 122 Entry_Point_Pseudostate, 123 Exit_Point_Pseudostate, 124 Terminate_Pseudostate); 125 126 type UML_Transition_Kind is 127 (External, 128 Internal, 129 Local); 130 131 type UML_Visibility_Kind is 132 (Public_Visibility, 133 Private_Visibility, 134 Protected_Visibility, 135 Package_Visibility); 136 137 type Optional_UML_Aggregation_Kind (Is_Empty : Boolean := True) is record 138 case Is_Empty is 139 when True => 140 null; 141 142 when False => 143 Value : UML_Aggregation_Kind; 144 end case; 145 end record; 146 147 type Optional_UML_Call_Concurrency_Kind (Is_Empty : Boolean := True) is record 148 case Is_Empty is 149 when True => 150 null; 151 152 when False => 153 Value : UML_Call_Concurrency_Kind; 154 end case; 155 end record; 156 157 type Optional_UML_Connector_Kind (Is_Empty : Boolean := True) is record 158 case Is_Empty is 159 when True => 160 null; 161 162 when False => 163 Value : UML_Connector_Kind; 164 end case; 165 end record; 166 167 type Optional_UML_Expansion_Kind (Is_Empty : Boolean := True) is record 168 case Is_Empty is 169 when True => 170 null; 171 172 when False => 173 Value : UML_Expansion_Kind; 174 end case; 175 end record; 176 177 type Optional_UML_Interaction_Operator_Kind (Is_Empty : Boolean := True) is record 178 case Is_Empty is 179 when True => 180 null; 181 182 when False => 183 Value : UML_Interaction_Operator_Kind; 184 end case; 185 end record; 186 187 type Optional_UML_Message_Kind (Is_Empty : Boolean := True) is record 188 case Is_Empty is 189 when True => 190 null; 191 192 when False => 193 Value : UML_Message_Kind; 194 end case; 195 end record; 196 197 type Optional_UML_Message_Sort (Is_Empty : Boolean := True) is record 198 case Is_Empty is 199 when True => 200 null; 201 202 when False => 203 Value : UML_Message_Sort; 204 end case; 205 end record; 206 207 type Optional_UML_Object_Node_Ordering_Kind (Is_Empty : Boolean := True) is record 208 case Is_Empty is 209 when True => 210 null; 211 212 when False => 213 Value : UML_Object_Node_Ordering_Kind; 214 end case; 215 end record; 216 217 type Optional_UML_Parameter_Direction_Kind (Is_Empty : Boolean := True) is record 218 case Is_Empty is 219 when True => 220 null; 221 222 when False => 223 Value : UML_Parameter_Direction_Kind; 224 end case; 225 end record; 226 227 type Optional_UML_Parameter_Effect_Kind (Is_Empty : Boolean := True) is record 228 case Is_Empty is 229 when True => 230 null; 231 232 when False => 233 Value : UML_Parameter_Effect_Kind; 234 end case; 235 end record; 236 237 type Optional_UML_Pseudostate_Kind (Is_Empty : Boolean := True) is record 238 case Is_Empty is 239 when True => 240 null; 241 242 when False => 243 Value : UML_Pseudostate_Kind; 244 end case; 245 end record; 246 247 type Optional_UML_Transition_Kind (Is_Empty : Boolean := True) is record 248 case Is_Empty is 249 when True => 250 null; 251 252 when False => 253 Value : UML_Transition_Kind; 254 end case; 255 end record; 256 257 type Optional_UML_Visibility_Kind (Is_Empty : Boolean := True) is record 258 case Is_Empty is 259 when True => 260 null; 261 262 when False => 263 Value : UML_Visibility_Kind; 264 end case; 265 end record; 266 267end AMF.UML; 268