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_Packageable_Elements; 45with AMF.UML.Dependencies.Collections; 46with AMF.UML.Elements.Collections; 47with AMF.UML.Interaction_Constraints; 48with AMF.UML.Named_Elements; 49with AMF.UML.Namespaces; 50with AMF.UML.Packages.Collections; 51with AMF.UML.Parameterable_Elements; 52with AMF.UML.String_Expressions; 53with AMF.UML.Template_Parameters; 54with AMF.UML.Value_Specifications; 55with AMF.Visitors; 56 57package AMF.Internals.UML_Interaction_Constraints is 58 59 type UML_Interaction_Constraint_Proxy is 60 limited new AMF.Internals.UML_Packageable_Elements.UML_Packageable_Element_Proxy 61 and AMF.UML.Interaction_Constraints.UML_Interaction_Constraint with null record; 62 63 overriding function Get_Maxint 64 (Self : not null access constant UML_Interaction_Constraint_Proxy) 65 return AMF.UML.Value_Specifications.UML_Value_Specification_Access; 66 -- Getter of InteractionConstraint::maxint. 67 -- 68 -- The maximum number of iterations of a loop 69 70 overriding procedure Set_Maxint 71 (Self : not null access UML_Interaction_Constraint_Proxy; 72 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access); 73 -- Setter of InteractionConstraint::maxint. 74 -- 75 -- The maximum number of iterations of a loop 76 77 overriding function Get_Minint 78 (Self : not null access constant UML_Interaction_Constraint_Proxy) 79 return AMF.UML.Value_Specifications.UML_Value_Specification_Access; 80 -- Getter of InteractionConstraint::minint. 81 -- 82 -- The minimum number of iterations of a loop 83 84 overriding procedure Set_Minint 85 (Self : not null access UML_Interaction_Constraint_Proxy; 86 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access); 87 -- Setter of InteractionConstraint::minint. 88 -- 89 -- The minimum number of iterations of a loop 90 91 overriding function Get_Constrained_Element 92 (Self : not null access constant UML_Interaction_Constraint_Proxy) 93 return AMF.UML.Elements.Collections.Ordered_Set_Of_UML_Element; 94 -- Getter of Constraint::constrainedElement. 95 -- 96 -- The ordered set of Elements referenced by this Constraint. 97 98 overriding function Get_Context 99 (Self : not null access constant UML_Interaction_Constraint_Proxy) 100 return AMF.UML.Namespaces.UML_Namespace_Access; 101 -- Getter of Constraint::context. 102 -- 103 -- Specifies the namespace that owns the NamedElement. 104 105 overriding procedure Set_Context 106 (Self : not null access UML_Interaction_Constraint_Proxy; 107 To : AMF.UML.Namespaces.UML_Namespace_Access); 108 -- Setter of Constraint::context. 109 -- 110 -- Specifies the namespace that owns the NamedElement. 111 112 overriding function Get_Specification 113 (Self : not null access constant UML_Interaction_Constraint_Proxy) 114 return AMF.UML.Value_Specifications.UML_Value_Specification_Access; 115 -- Getter of Constraint::specification. 116 -- 117 -- A condition that must be true when evaluated in order for the 118 -- constraint to be satisfied. 119 120 overriding procedure Set_Specification 121 (Self : not null access UML_Interaction_Constraint_Proxy; 122 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access); 123 -- Setter of Constraint::specification. 124 -- 125 -- A condition that must be true when evaluated in order for the 126 -- constraint to be satisfied. 127 128 overriding function Get_Client_Dependency 129 (Self : not null access constant UML_Interaction_Constraint_Proxy) 130 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 131 -- Getter of NamedElement::clientDependency. 132 -- 133 -- Indicates the dependencies that reference the client. 134 135 overriding function Get_Name_Expression 136 (Self : not null access constant UML_Interaction_Constraint_Proxy) 137 return AMF.UML.String_Expressions.UML_String_Expression_Access; 138 -- Getter of NamedElement::nameExpression. 139 -- 140 -- The string expression used to define the name of this named element. 141 142 overriding procedure Set_Name_Expression 143 (Self : not null access UML_Interaction_Constraint_Proxy; 144 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 145 -- Setter of NamedElement::nameExpression. 146 -- 147 -- The string expression used to define the name of this named element. 148 149 overriding function Get_Namespace 150 (Self : not null access constant UML_Interaction_Constraint_Proxy) 151 return AMF.UML.Namespaces.UML_Namespace_Access; 152 -- Getter of NamedElement::namespace. 153 -- 154 -- Specifies the namespace that owns the NamedElement. 155 156 overriding function Get_Qualified_Name 157 (Self : not null access constant UML_Interaction_Constraint_Proxy) 158 return AMF.Optional_String; 159 -- Getter of NamedElement::qualifiedName. 160 -- 161 -- A name which allows the NamedElement to be identified within a 162 -- hierarchy of nested Namespaces. It is constructed from the names of the 163 -- containing namespaces starting at the root of the hierarchy and ending 164 -- with the name of the NamedElement itself. 165 166 overriding function Get_Owning_Template_Parameter 167 (Self : not null access constant UML_Interaction_Constraint_Proxy) 168 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 169 -- Getter of ParameterableElement::owningTemplateParameter. 170 -- 171 -- The formal template parameter that owns this element. 172 173 overriding procedure Set_Owning_Template_Parameter 174 (Self : not null access UML_Interaction_Constraint_Proxy; 175 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 176 -- Setter of ParameterableElement::owningTemplateParameter. 177 -- 178 -- The formal template parameter that owns this element. 179 180 overriding function Get_Template_Parameter 181 (Self : not null access constant UML_Interaction_Constraint_Proxy) 182 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 183 -- Getter of ParameterableElement::templateParameter. 184 -- 185 -- The template parameter that exposes this element as a formal parameter. 186 187 overriding procedure Set_Template_Parameter 188 (Self : not null access UML_Interaction_Constraint_Proxy; 189 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 190 -- Setter of ParameterableElement::templateParameter. 191 -- 192 -- The template parameter that exposes this element as a formal parameter. 193 194 overriding function All_Owning_Packages 195 (Self : not null access constant UML_Interaction_Constraint_Proxy) 196 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 197 -- Operation NamedElement::allOwningPackages. 198 -- 199 -- The query allOwningPackages() returns all the directly or indirectly 200 -- owning packages. 201 202 overriding function Is_Distinguishable_From 203 (Self : not null access constant UML_Interaction_Constraint_Proxy; 204 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 205 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 206 return Boolean; 207 -- Operation NamedElement::isDistinguishableFrom. 208 -- 209 -- The query isDistinguishableFrom() determines whether two NamedElements 210 -- may logically co-exist within a Namespace. By default, two named 211 -- elements are distinguishable if (a) they have unrelated types or (b) 212 -- they have related types but different names. 213 214 overriding function Namespace 215 (Self : not null access constant UML_Interaction_Constraint_Proxy) 216 return AMF.UML.Namespaces.UML_Namespace_Access; 217 -- Operation NamedElement::namespace. 218 -- 219 -- Missing derivation for NamedElement::/namespace : Namespace 220 221 overriding function Is_Compatible_With 222 (Self : not null access constant UML_Interaction_Constraint_Proxy; 223 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 224 return Boolean; 225 -- Operation ParameterableElement::isCompatibleWith. 226 -- 227 -- The query isCompatibleWith() determines if this parameterable element 228 -- is compatible with the specified parameterable element. By default 229 -- parameterable element P is compatible with parameterable element Q if 230 -- the kind of P is the same or a subtype as the kind of Q. Subclasses 231 -- should override this operation to specify different compatibility 232 -- constraints. 233 234 overriding function Is_Template_Parameter 235 (Self : not null access constant UML_Interaction_Constraint_Proxy) 236 return Boolean; 237 -- Operation ParameterableElement::isTemplateParameter. 238 -- 239 -- The query isTemplateParameter() determines if this parameterable 240 -- element is exposed as a formal template parameter. 241 242 overriding procedure Enter_Element 243 (Self : not null access constant UML_Interaction_Constraint_Proxy; 244 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 245 Control : in out AMF.Visitors.Traverse_Control); 246 -- Dispatch call to corresponding subprogram of visitor interface. 247 248 overriding procedure Leave_Element 249 (Self : not null access constant UML_Interaction_Constraint_Proxy; 250 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 251 Control : in out AMF.Visitors.Traverse_Control); 252 -- Dispatch call to corresponding subprogram of visitor interface. 253 254 overriding procedure Visit_Element 255 (Self : not null access constant UML_Interaction_Constraint_Proxy; 256 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 257 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 258 Control : in out AMF.Visitors.Traverse_Control); 259 -- Dispatch call to corresponding subprogram of iterator interface. 260 261end AMF.Internals.UML_Interaction_Constraints; 262