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-- Operation specializes TemplateableElement in order to support 47-- specification of template operations and bound operations. Operation 48-- specializes ParameterableElement to specify that an operation can be 49-- exposed as a formal template parameter, and provided as an actual 50-- parameter in a binding of a template. 51-- 52-- An operation may invoke both the execution of method behaviors as well as 53-- other behavioral responses. 54-- 55-- An operation is a behavioral feature of a classifier that specifies the 56-- name, type, parameters, and constraints for invoking an associated 57-- behavior. 58------------------------------------------------------------------------------ 59with AMF.UML.Behavioral_Features; 60limited with AMF.UML.Classes; 61limited with AMF.UML.Constraints.Collections; 62limited with AMF.UML.Data_Types; 63limited with AMF.UML.Interfaces; 64limited with AMF.UML.Operation_Template_Parameters; 65limited with AMF.UML.Operations.Collections; 66with AMF.UML.Parameterable_Elements; 67limited with AMF.UML.Parameters.Collections; 68limited with AMF.UML.Redefinable_Elements; 69with AMF.UML.Templateable_Elements; 70limited with AMF.UML.Types.Collections; 71 72package AMF.UML.Operations is 73 74 pragma Preelaborate; 75 76 type UML_Operation is limited interface 77 and AMF.UML.Behavioral_Features.UML_Behavioral_Feature 78 and AMF.UML.Templateable_Elements.UML_Templateable_Element 79 and AMF.UML.Parameterable_Elements.UML_Parameterable_Element; 80 81 type UML_Operation_Access is 82 access all UML_Operation'Class; 83 for UML_Operation_Access'Storage_Size use 0; 84 85 not overriding function Get_Body_Condition 86 (Self : not null access constant UML_Operation) 87 return AMF.UML.Constraints.UML_Constraint_Access is abstract; 88 -- Getter of Operation::bodyCondition. 89 -- 90 -- An optional Constraint on the result values of an invocation of this 91 -- Operation. 92 93 not overriding procedure Set_Body_Condition 94 (Self : not null access UML_Operation; 95 To : AMF.UML.Constraints.UML_Constraint_Access) is abstract; 96 -- Setter of Operation::bodyCondition. 97 -- 98 -- An optional Constraint on the result values of an invocation of this 99 -- Operation. 100 101 not overriding function Get_Class 102 (Self : not null access constant UML_Operation) 103 return AMF.UML.Classes.UML_Class_Access is abstract; 104 -- Getter of Operation::class. 105 -- 106 -- The class that owns the operation. 107 108 not overriding procedure Set_Class 109 (Self : not null access UML_Operation; 110 To : AMF.UML.Classes.UML_Class_Access) is abstract; 111 -- Setter of Operation::class. 112 -- 113 -- The class that owns the operation. 114 115 not overriding function Get_Datatype 116 (Self : not null access constant UML_Operation) 117 return AMF.UML.Data_Types.UML_Data_Type_Access is abstract; 118 -- Getter of Operation::datatype. 119 -- 120 -- The DataType that owns this Operation. 121 122 not overriding procedure Set_Datatype 123 (Self : not null access UML_Operation; 124 To : AMF.UML.Data_Types.UML_Data_Type_Access) is abstract; 125 -- Setter of Operation::datatype. 126 -- 127 -- The DataType that owns this Operation. 128 129 not overriding function Get_Interface 130 (Self : not null access constant UML_Operation) 131 return AMF.UML.Interfaces.UML_Interface_Access is abstract; 132 -- Getter of Operation::interface. 133 -- 134 -- The Interface that owns this Operation. 135 136 not overriding procedure Set_Interface 137 (Self : not null access UML_Operation; 138 To : AMF.UML.Interfaces.UML_Interface_Access) is abstract; 139 -- Setter of Operation::interface. 140 -- 141 -- The Interface that owns this Operation. 142 143 not overriding function Get_Is_Ordered 144 (Self : not null access constant UML_Operation) 145 return Boolean is abstract; 146 -- Getter of Operation::isOrdered. 147 -- 148 -- This information is derived from the return result for this Operation. 149 -- Specifies whether the return parameter is ordered or not, if present. 150 151 not overriding function Get_Is_Query 152 (Self : not null access constant UML_Operation) 153 return Boolean is abstract; 154 -- Getter of Operation::isQuery. 155 -- 156 -- Specifies whether an execution of the BehavioralFeature leaves the 157 -- state of the system unchanged (isQuery=true) or whether side effects 158 -- may occur (isQuery=false). 159 160 not overriding procedure Set_Is_Query 161 (Self : not null access UML_Operation; 162 To : Boolean) is abstract; 163 -- Setter of Operation::isQuery. 164 -- 165 -- Specifies whether an execution of the BehavioralFeature leaves the 166 -- state of the system unchanged (isQuery=true) or whether side effects 167 -- may occur (isQuery=false). 168 169 not overriding function Get_Is_Unique 170 (Self : not null access constant UML_Operation) 171 return Boolean is abstract; 172 -- Getter of Operation::isUnique. 173 -- 174 -- This information is derived from the return result for this Operation. 175 -- Specifies whether the return parameter is unique or not, if present. 176 177 not overriding function Get_Lower 178 (Self : not null access constant UML_Operation) 179 return AMF.Optional_Integer is abstract; 180 -- Getter of Operation::lower. 181 -- 182 -- Specifies the lower multiplicity of the return parameter, if present. 183 -- This information is derived from the return result for this Operation. 184 185 overriding function Get_Owned_Parameter 186 (Self : not null access constant UML_Operation) 187 return AMF.UML.Parameters.Collections.Ordered_Set_Of_UML_Parameter is abstract; 188 -- Getter of Operation::ownedParameter. 189 -- 190 -- Specifies the ordered set of formal parameters of this 191 -- BehavioralFeature. 192 -- Specifies the parameters owned by this Operation. 193 194 not overriding function Get_Postcondition 195 (Self : not null access constant UML_Operation) 196 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint is abstract; 197 -- Getter of Operation::postcondition. 198 -- 199 -- An optional set of Constraints specifying the state of the system when 200 -- the Operation is completed. 201 202 not overriding function Get_Precondition 203 (Self : not null access constant UML_Operation) 204 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint is abstract; 205 -- Getter of Operation::precondition. 206 -- 207 -- An optional set of Constraints on the state of the system when the 208 -- Operation is invoked. 209 210 overriding function Get_Raised_Exception 211 (Self : not null access constant UML_Operation) 212 return AMF.UML.Types.Collections.Set_Of_UML_Type is abstract; 213 -- Getter of Operation::raisedException. 214 -- 215 -- References the Types representing exceptions that may be raised during 216 -- an invocation of this operation. 217 218 not overriding function Get_Redefined_Operation 219 (Self : not null access constant UML_Operation) 220 return AMF.UML.Operations.Collections.Set_Of_UML_Operation is abstract; 221 -- Getter of Operation::redefinedOperation. 222 -- 223 -- References the Operations that are redefined by this Operation. 224 225 not overriding function Get_Template_Parameter 226 (Self : not null access constant UML_Operation) 227 return AMF.UML.Operation_Template_Parameters.UML_Operation_Template_Parameter_Access is abstract; 228 -- Getter of Operation::templateParameter. 229 -- 230 -- The template parameter that exposes this element as a formal parameter. 231 232 not overriding procedure Set_Template_Parameter 233 (Self : not null access UML_Operation; 234 To : AMF.UML.Operation_Template_Parameters.UML_Operation_Template_Parameter_Access) is abstract; 235 -- Setter of Operation::templateParameter. 236 -- 237 -- The template parameter that exposes this element as a formal parameter. 238 239 not overriding function Get_Type 240 (Self : not null access constant UML_Operation) 241 return AMF.UML.Types.UML_Type_Access is abstract; 242 -- Getter of Operation::type. 243 -- 244 -- This information is derived from the return result for this Operation. 245 -- Specifies the return result of the operation, if present. 246 247 not overriding function Get_Upper 248 (Self : not null access constant UML_Operation) 249 return AMF.Optional_Unlimited_Natural is abstract; 250 -- Getter of Operation::upper. 251 -- 252 -- Specifies the upper multiplicity of the return parameter, if present. 253 -- This information is derived from the return result for this Operation. 254 255 overriding function Is_Consistent_With 256 (Self : not null access constant UML_Operation; 257 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 258 return Boolean is abstract; 259 -- Operation Operation::isConsistentWith. 260 -- 261 -- A redefining operation is consistent with a redefined operation if it 262 -- has the same number of owned parameters, and the type of each owned 263 -- parameter conforms to the type of the corresponding redefined parameter. 264 -- The query isConsistentWith() specifies, for any two Operations in a 265 -- context in which redefinition is possible, whether redefinition would 266 -- be consistent in the sense of maintaining type covariance. Other senses 267 -- of consistency may be required, for example to determine consistency in 268 -- the sense of contravariance. Users may define alternative queries under 269 -- names different from 'isConsistentWith()', as for example, users may 270 -- define a query named 'isContravariantWith()'. 271 272 not overriding function Is_Ordered 273 (Self : not null access constant UML_Operation) 274 return Boolean is abstract; 275 -- Operation Operation::isOrdered. 276 -- 277 -- If this operation has a return parameter, isOrdered equals the value of 278 -- isOrdered for that parameter. Otherwise isOrdered is false. 279 280 not overriding function Is_Unique 281 (Self : not null access constant UML_Operation) 282 return Boolean is abstract; 283 -- Operation Operation::isUnique. 284 -- 285 -- If this operation has a return parameter, isUnique equals the value of 286 -- isUnique for that parameter. Otherwise isUnique is true. 287 288 not overriding function Lower 289 (Self : not null access constant UML_Operation) 290 return Integer is abstract; 291 -- Operation Operation::lower. 292 -- 293 -- If this operation has a return parameter, lower equals the value of 294 -- lower for that parameter. Otherwise lower is not defined. 295 296 not overriding function Return_Result 297 (Self : not null access constant UML_Operation) 298 return AMF.UML.Parameters.Collections.Set_Of_UML_Parameter is abstract; 299 -- Operation Operation::returnResult. 300 -- 301 -- The query returnResult() returns the set containing the return 302 -- parameter of the Operation if one exists, otherwise, it returns an 303 -- empty set 304 305 not overriding function Types 306 (Self : not null access constant UML_Operation) 307 return AMF.UML.Types.UML_Type_Access is abstract; 308 -- Operation Operation::type. 309 -- 310 -- If this operation has a return parameter, type equals the value of type 311 -- for that parameter. Otherwise type is not defined. 312 313 not overriding function Upper 314 (Self : not null access constant UML_Operation) 315 return AMF.Unlimited_Natural is abstract; 316 -- Operation Operation::upper. 317 -- 318 -- If this operation has a return parameter, upper equals the value of 319 -- upper for that parameter. Otherwise upper is not defined. 320 321end AMF.UML.Operations; 322