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_Classifiers; 45with AMF.String_Collections; 46with AMF.UML.Classifier_Template_Parameters; 47with AMF.UML.Classifiers.Collections; 48with AMF.UML.Collaboration_Uses.Collections; 49with AMF.UML.Constraints.Collections; 50with AMF.UML.Dependencies.Collections; 51with AMF.UML.Element_Imports.Collections; 52with AMF.UML.Features.Collections; 53with AMF.UML.Generalization_Sets.Collections; 54with AMF.UML.Generalizations.Collections; 55with AMF.UML.Named_Elements.Collections; 56with AMF.UML.Namespaces; 57with AMF.UML.Package_Imports.Collections; 58with AMF.UML.Packageable_Elements.Collections; 59with AMF.UML.Packages.Collections; 60with AMF.UML.Parameterable_Elements.Collections; 61with AMF.UML.Properties.Collections; 62with AMF.UML.Redefinable_Elements.Collections; 63with AMF.UML.Redefinable_Template_Signatures; 64with AMF.UML.Signals; 65with AMF.UML.String_Expressions; 66with AMF.UML.Substitutions.Collections; 67with AMF.UML.Template_Bindings.Collections; 68with AMF.UML.Template_Parameters; 69with AMF.UML.Template_Signatures; 70with AMF.UML.Types; 71with AMF.UML.Use_Cases.Collections; 72with AMF.Visitors; 73 74package AMF.Internals.UML_Signals is 75 76 type UML_Signal_Proxy is 77 limited new AMF.Internals.UML_Classifiers.UML_Classifier_Proxy 78 and AMF.UML.Signals.UML_Signal with null record; 79 80 overriding function Get_Owned_Attribute 81 (Self : not null access constant UML_Signal_Proxy) 82 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property; 83 -- Getter of Signal::ownedAttribute. 84 -- 85 -- The attributes owned by the signal. 86 87 overriding function Get_Attribute 88 (Self : not null access constant UML_Signal_Proxy) 89 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 90 -- Getter of Classifier::attribute. 91 -- 92 -- Refers to all of the Properties that are direct (i.e. not inherited or 93 -- imported) attributes of the classifier. 94 95 overriding function Get_Collaboration_Use 96 (Self : not null access constant UML_Signal_Proxy) 97 return AMF.UML.Collaboration_Uses.Collections.Set_Of_UML_Collaboration_Use; 98 -- Getter of Classifier::collaborationUse. 99 -- 100 -- References the collaboration uses owned by the classifier. 101 102 overriding function Get_Feature 103 (Self : not null access constant UML_Signal_Proxy) 104 return AMF.UML.Features.Collections.Set_Of_UML_Feature; 105 -- Getter of Classifier::feature. 106 -- 107 -- Specifies each feature defined in the classifier. 108 -- Note that there may be members of the Classifier that are of the type 109 -- Feature but are not included in this association, e.g. inherited 110 -- features. 111 112 overriding function Get_General 113 (Self : not null access constant UML_Signal_Proxy) 114 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 115 -- Getter of Classifier::general. 116 -- 117 -- Specifies the general Classifiers for this Classifier. 118 -- References the general classifier in the Generalization relationship. 119 120 overriding function Get_Generalization 121 (Self : not null access constant UML_Signal_Proxy) 122 return AMF.UML.Generalizations.Collections.Set_Of_UML_Generalization; 123 -- Getter of Classifier::generalization. 124 -- 125 -- Specifies the Generalization relationships for this Classifier. These 126 -- Generalizations navigaten to more general classifiers in the 127 -- generalization hierarchy. 128 129 overriding function Get_Inherited_Member 130 (Self : not null access constant UML_Signal_Proxy) 131 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 132 -- Getter of Classifier::inheritedMember. 133 -- 134 -- Specifies all elements inherited by this classifier from the general 135 -- classifiers. 136 137 overriding function Get_Is_Abstract 138 (Self : not null access constant UML_Signal_Proxy) 139 return Boolean; 140 -- Getter of Classifier::isAbstract. 141 -- 142 -- If true, the Classifier does not provide a complete declaration and can 143 -- typically not be instantiated. An abstract classifier is intended to be 144 -- used by other classifiers e.g. as the target of general 145 -- metarelationships or generalization relationships. 146 147 overriding function Get_Is_Final_Specialization 148 (Self : not null access constant UML_Signal_Proxy) 149 return Boolean; 150 -- Getter of Classifier::isFinalSpecialization. 151 -- 152 -- If true, the Classifier cannot be specialized by generalization. Note 153 -- that this property is preserved through package merge operations; that 154 -- is, the capability to specialize a Classifier (i.e., 155 -- isFinalSpecialization =false) must be preserved in the resulting 156 -- Classifier of a package merge operation where a Classifier with 157 -- isFinalSpecialization =false is merged with a matching Classifier with 158 -- isFinalSpecialization =true: the resulting Classifier will have 159 -- isFinalSpecialization =false. 160 161 overriding procedure Set_Is_Final_Specialization 162 (Self : not null access UML_Signal_Proxy; 163 To : Boolean); 164 -- Setter of Classifier::isFinalSpecialization. 165 -- 166 -- If true, the Classifier cannot be specialized by generalization. Note 167 -- that this property is preserved through package merge operations; that 168 -- is, the capability to specialize a Classifier (i.e., 169 -- isFinalSpecialization =false) must be preserved in the resulting 170 -- Classifier of a package merge operation where a Classifier with 171 -- isFinalSpecialization =false is merged with a matching Classifier with 172 -- isFinalSpecialization =true: the resulting Classifier will have 173 -- isFinalSpecialization =false. 174 175 overriding function Get_Owned_Template_Signature 176 (Self : not null access constant UML_Signal_Proxy) 177 return AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access; 178 -- Getter of Classifier::ownedTemplateSignature. 179 -- 180 -- The optional template signature specifying the formal template 181 -- parameters. 182 183 overriding procedure Set_Owned_Template_Signature 184 (Self : not null access UML_Signal_Proxy; 185 To : AMF.UML.Redefinable_Template_Signatures.UML_Redefinable_Template_Signature_Access); 186 -- Setter of Classifier::ownedTemplateSignature. 187 -- 188 -- The optional template signature specifying the formal template 189 -- parameters. 190 191 overriding function Get_Owned_Use_Case 192 (Self : not null access constant UML_Signal_Proxy) 193 return AMF.UML.Use_Cases.Collections.Set_Of_UML_Use_Case; 194 -- Getter of Classifier::ownedUseCase. 195 -- 196 -- References the use cases owned by this classifier. 197 198 overriding function Get_Powertype_Extent 199 (Self : not null access constant UML_Signal_Proxy) 200 return AMF.UML.Generalization_Sets.Collections.Set_Of_UML_Generalization_Set; 201 -- Getter of Classifier::powertypeExtent. 202 -- 203 -- Designates the GeneralizationSet of which the associated Classifier is 204 -- a power type. 205 206 overriding function Get_Redefined_Classifier 207 (Self : not null access constant UML_Signal_Proxy) 208 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 209 -- Getter of Classifier::redefinedClassifier. 210 -- 211 -- References the Classifiers that are redefined by this Classifier. 212 213 overriding function Get_Representation 214 (Self : not null access constant UML_Signal_Proxy) 215 return AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access; 216 -- Getter of Classifier::representation. 217 -- 218 -- References a collaboration use which indicates the collaboration that 219 -- represents this classifier. 220 221 overriding procedure Set_Representation 222 (Self : not null access UML_Signal_Proxy; 223 To : AMF.UML.Collaboration_Uses.UML_Collaboration_Use_Access); 224 -- Setter of Classifier::representation. 225 -- 226 -- References a collaboration use which indicates the collaboration that 227 -- represents this classifier. 228 229 overriding function Get_Substitution 230 (Self : not null access constant UML_Signal_Proxy) 231 return AMF.UML.Substitutions.Collections.Set_Of_UML_Substitution; 232 -- Getter of Classifier::substitution. 233 -- 234 -- References the substitutions that are owned by this Classifier. 235 236 overriding function Get_Template_Parameter 237 (Self : not null access constant UML_Signal_Proxy) 238 return AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access; 239 -- Getter of Classifier::templateParameter. 240 -- 241 -- The template parameter that exposes this element as a formal parameter. 242 243 overriding procedure Set_Template_Parameter 244 (Self : not null access UML_Signal_Proxy; 245 To : AMF.UML.Classifier_Template_Parameters.UML_Classifier_Template_Parameter_Access); 246 -- Setter of Classifier::templateParameter. 247 -- 248 -- The template parameter that exposes this element as a formal parameter. 249 250 overriding function Get_Use_Case 251 (Self : not null access constant UML_Signal_Proxy) 252 return AMF.UML.Use_Cases.Collections.Set_Of_UML_Use_Case; 253 -- Getter of Classifier::useCase. 254 -- 255 -- The set of use cases for which this Classifier is the subject. 256 257 overriding function Get_Element_Import 258 (Self : not null access constant UML_Signal_Proxy) 259 return AMF.UML.Element_Imports.Collections.Set_Of_UML_Element_Import; 260 -- Getter of Namespace::elementImport. 261 -- 262 -- References the ElementImports owned by the Namespace. 263 264 overriding function Get_Imported_Member 265 (Self : not null access constant UML_Signal_Proxy) 266 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 267 -- Getter of Namespace::importedMember. 268 -- 269 -- References the PackageableElements that are members of this Namespace 270 -- as a result of either PackageImports or ElementImports. 271 272 overriding function Get_Member 273 (Self : not null access constant UML_Signal_Proxy) 274 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 275 -- Getter of Namespace::member. 276 -- 277 -- A collection of NamedElements identifiable within the Namespace, either 278 -- by being owned or by being introduced by importing or inheritance. 279 280 overriding function Get_Owned_Member 281 (Self : not null access constant UML_Signal_Proxy) 282 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 283 -- Getter of Namespace::ownedMember. 284 -- 285 -- A collection of NamedElements owned by the Namespace. 286 287 overriding function Get_Owned_Rule 288 (Self : not null access constant UML_Signal_Proxy) 289 return AMF.UML.Constraints.Collections.Set_Of_UML_Constraint; 290 -- Getter of Namespace::ownedRule. 291 -- 292 -- Specifies a set of Constraints owned by this Namespace. 293 294 overriding function Get_Package_Import 295 (Self : not null access constant UML_Signal_Proxy) 296 return AMF.UML.Package_Imports.Collections.Set_Of_UML_Package_Import; 297 -- Getter of Namespace::packageImport. 298 -- 299 -- References the PackageImports owned by the Namespace. 300 301 overriding function Get_Client_Dependency 302 (Self : not null access constant UML_Signal_Proxy) 303 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 304 -- Getter of NamedElement::clientDependency. 305 -- 306 -- Indicates the dependencies that reference the client. 307 308 overriding function Get_Name_Expression 309 (Self : not null access constant UML_Signal_Proxy) 310 return AMF.UML.String_Expressions.UML_String_Expression_Access; 311 -- Getter of NamedElement::nameExpression. 312 -- 313 -- The string expression used to define the name of this named element. 314 315 overriding procedure Set_Name_Expression 316 (Self : not null access UML_Signal_Proxy; 317 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 318 -- Setter of NamedElement::nameExpression. 319 -- 320 -- The string expression used to define the name of this named element. 321 322 overriding function Get_Namespace 323 (Self : not null access constant UML_Signal_Proxy) 324 return AMF.UML.Namespaces.UML_Namespace_Access; 325 -- Getter of NamedElement::namespace. 326 -- 327 -- Specifies the namespace that owns the NamedElement. 328 329 overriding function Get_Qualified_Name 330 (Self : not null access constant UML_Signal_Proxy) 331 return AMF.Optional_String; 332 -- Getter of NamedElement::qualifiedName. 333 -- 334 -- A name which allows the NamedElement to be identified within a 335 -- hierarchy of nested Namespaces. It is constructed from the names of the 336 -- containing namespaces starting at the root of the hierarchy and ending 337 -- with the name of the NamedElement itself. 338 339 overriding function Get_Package 340 (Self : not null access constant UML_Signal_Proxy) 341 return AMF.UML.Packages.UML_Package_Access; 342 -- Getter of Type::package. 343 -- 344 -- Specifies the owning package of this classifier, if any. 345 346 overriding procedure Set_Package 347 (Self : not null access UML_Signal_Proxy; 348 To : AMF.UML.Packages.UML_Package_Access); 349 -- Setter of Type::package. 350 -- 351 -- Specifies the owning package of this classifier, if any. 352 353 overriding function Get_Owning_Template_Parameter 354 (Self : not null access constant UML_Signal_Proxy) 355 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 356 -- Getter of ParameterableElement::owningTemplateParameter. 357 -- 358 -- The formal template parameter that owns this element. 359 360 overriding procedure Set_Owning_Template_Parameter 361 (Self : not null access UML_Signal_Proxy; 362 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 363 -- Setter of ParameterableElement::owningTemplateParameter. 364 -- 365 -- The formal template parameter that owns this element. 366 367 overriding function Get_Template_Parameter 368 (Self : not null access constant UML_Signal_Proxy) 369 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 370 -- Getter of ParameterableElement::templateParameter. 371 -- 372 -- The template parameter that exposes this element as a formal parameter. 373 374 overriding procedure Set_Template_Parameter 375 (Self : not null access UML_Signal_Proxy; 376 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 377 -- Setter of ParameterableElement::templateParameter. 378 -- 379 -- The template parameter that exposes this element as a formal parameter. 380 381 overriding function Get_Owned_Template_Signature 382 (Self : not null access constant UML_Signal_Proxy) 383 return AMF.UML.Template_Signatures.UML_Template_Signature_Access; 384 -- Getter of TemplateableElement::ownedTemplateSignature. 385 -- 386 -- The optional template signature specifying the formal template 387 -- parameters. 388 389 overriding procedure Set_Owned_Template_Signature 390 (Self : not null access UML_Signal_Proxy; 391 To : AMF.UML.Template_Signatures.UML_Template_Signature_Access); 392 -- Setter of TemplateableElement::ownedTemplateSignature. 393 -- 394 -- The optional template signature specifying the formal template 395 -- parameters. 396 397 overriding function Get_Template_Binding 398 (Self : not null access constant UML_Signal_Proxy) 399 return AMF.UML.Template_Bindings.Collections.Set_Of_UML_Template_Binding; 400 -- Getter of TemplateableElement::templateBinding. 401 -- 402 -- The optional bindings from this element to templates. 403 404 overriding function Get_Is_Leaf 405 (Self : not null access constant UML_Signal_Proxy) 406 return Boolean; 407 -- Getter of RedefinableElement::isLeaf. 408 -- 409 -- Indicates whether it is possible to further redefine a 410 -- RedefinableElement. If the value is true, then it is not possible to 411 -- further redefine the RedefinableElement. Note that this property is 412 -- preserved through package merge operations; that is, the capability to 413 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 414 -- the resulting RedefinableElement of a package merge operation where a 415 -- RedefinableElement with isLeaf=false is merged with a matching 416 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 417 -- will have isLeaf=false. Default value is false. 418 419 overriding procedure Set_Is_Leaf 420 (Self : not null access UML_Signal_Proxy; 421 To : Boolean); 422 -- Setter of RedefinableElement::isLeaf. 423 -- 424 -- Indicates whether it is possible to further redefine a 425 -- RedefinableElement. If the value is true, then it is not possible to 426 -- further redefine the RedefinableElement. Note that this property is 427 -- preserved through package merge operations; that is, the capability to 428 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 429 -- the resulting RedefinableElement of a package merge operation where a 430 -- RedefinableElement with isLeaf=false is merged with a matching 431 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 432 -- will have isLeaf=false. Default value is false. 433 434 overriding function Get_Redefined_Element 435 (Self : not null access constant UML_Signal_Proxy) 436 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 437 -- Getter of RedefinableElement::redefinedElement. 438 -- 439 -- The redefinable element that is being redefined by this element. 440 441 overriding function Get_Redefinition_Context 442 (Self : not null access constant UML_Signal_Proxy) 443 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 444 -- Getter of RedefinableElement::redefinitionContext. 445 -- 446 -- References the contexts that this element may be redefined from. 447 448 overriding function All_Features 449 (Self : not null access constant UML_Signal_Proxy) 450 return AMF.UML.Features.Collections.Set_Of_UML_Feature; 451 -- Operation Classifier::allFeatures. 452 -- 453 -- The query allFeatures() gives all of the features in the namespace of 454 -- the classifier. In general, through mechanisms such as inheritance, 455 -- this will be a larger set than feature. 456 457 overriding function Conforms_To 458 (Self : not null access constant UML_Signal_Proxy; 459 Other : AMF.UML.Classifiers.UML_Classifier_Access) 460 return Boolean; 461 -- Operation Classifier::conformsTo. 462 -- 463 -- The query conformsTo() gives true for a classifier that defines a type 464 -- that conforms to another. This is used, for example, in the 465 -- specification of signature conformance for operations. 466 467 overriding function General 468 (Self : not null access constant UML_Signal_Proxy) 469 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 470 -- Operation Classifier::general. 471 -- 472 -- The general classifiers are the classifiers referenced by the 473 -- generalization relationships. 474 475 overriding function Has_Visibility_Of 476 (Self : not null access constant UML_Signal_Proxy; 477 N : AMF.UML.Named_Elements.UML_Named_Element_Access) 478 return Boolean; 479 -- Operation Classifier::hasVisibilityOf. 480 -- 481 -- The query hasVisibilityOf() determines whether a named element is 482 -- visible in the classifier. By default all are visible. It is only 483 -- called when the argument is something owned by a parent. 484 485 overriding function Inherit 486 (Self : not null access constant UML_Signal_Proxy; 487 Inhs : AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element) 488 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 489 -- Operation Classifier::inherit. 490 -- 491 -- The query inherit() defines how to inherit a set of elements. Here the 492 -- operation is defined to inherit them all. It is intended to be 493 -- redefined in circumstances where inheritance is affected by 494 -- redefinition. 495 -- The inherit operation is overridden to exclude redefined properties. 496 497 overriding function Inheritable_Members 498 (Self : not null access constant UML_Signal_Proxy; 499 C : AMF.UML.Classifiers.UML_Classifier_Access) 500 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 501 -- Operation Classifier::inheritableMembers. 502 -- 503 -- The query inheritableMembers() gives all of the members of a classifier 504 -- that may be inherited in one of its descendants, subject to whatever 505 -- visibility restrictions apply. 506 507 overriding function Inherited_Member 508 (Self : not null access constant UML_Signal_Proxy) 509 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 510 -- Operation Classifier::inheritedMember. 511 -- 512 -- The inheritedMember association is derived by inheriting the 513 -- inheritable members of the parents. 514 -- The inheritedMember association is derived by inheriting the 515 -- inheritable members of the parents. 516 517 overriding function Is_Template 518 (Self : not null access constant UML_Signal_Proxy) 519 return Boolean; 520 -- Operation Classifier::isTemplate. 521 -- 522 -- The query isTemplate() returns whether this templateable element is 523 -- actually a template. 524 525 overriding function May_Specialize_Type 526 (Self : not null access constant UML_Signal_Proxy; 527 C : AMF.UML.Classifiers.UML_Classifier_Access) 528 return Boolean; 529 -- Operation Classifier::maySpecializeType. 530 -- 531 -- The query maySpecializeType() determines whether this classifier may 532 -- have a generalization relationship to classifiers of the specified 533 -- type. By default a classifier may specialize classifiers of the same or 534 -- a more general type. It is intended to be redefined by classifiers that 535 -- have different specialization constraints. 536 537 overriding function Exclude_Collisions 538 (Self : not null access constant UML_Signal_Proxy; 539 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 540 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 541 -- Operation Namespace::excludeCollisions. 542 -- 543 -- The query excludeCollisions() excludes from a set of 544 -- PackageableElements any that would not be distinguishable from each 545 -- other in this namespace. 546 547 overriding function Get_Names_Of_Member 548 (Self : not null access constant UML_Signal_Proxy; 549 Element : AMF.UML.Named_Elements.UML_Named_Element_Access) 550 return AMF.String_Collections.Set_Of_String; 551 -- Operation Namespace::getNamesOfMember. 552 -- 553 -- The query getNamesOfMember() takes importing into account. It gives 554 -- back the set of names that an element would have in an importing 555 -- namespace, either because it is owned, or if not owned then imported 556 -- individually, or if not individually then from a package. 557 -- The query getNamesOfMember() gives a set of all of the names that a 558 -- member would have in a Namespace. In general a member can have multiple 559 -- names in a Namespace if it is imported more than once with different 560 -- aliases. The query takes account of importing. It gives back the set of 561 -- names that an element would have in an importing namespace, either 562 -- because it is owned, or if not owned then imported individually, or if 563 -- not individually then from a package. 564 565 overriding function Import_Members 566 (Self : not null access constant UML_Signal_Proxy; 567 Imps : AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element) 568 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 569 -- Operation Namespace::importMembers. 570 -- 571 -- The query importMembers() defines which of a set of PackageableElements 572 -- are actually imported into the namespace. This excludes hidden ones, 573 -- i.e., those which have names that conflict with names of owned members, 574 -- and also excludes elements which would have the same name when imported. 575 576 overriding function Imported_Member 577 (Self : not null access constant UML_Signal_Proxy) 578 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 579 -- Operation Namespace::importedMember. 580 -- 581 -- The importedMember property is derived from the ElementImports and the 582 -- PackageImports. References the PackageableElements that are members of 583 -- this Namespace as a result of either PackageImports or ElementImports. 584 585 overriding function Members_Are_Distinguishable 586 (Self : not null access constant UML_Signal_Proxy) 587 return Boolean; 588 -- Operation Namespace::membersAreDistinguishable. 589 -- 590 -- The Boolean query membersAreDistinguishable() determines whether all of 591 -- the namespace's members are distinguishable within it. 592 593 overriding function Owned_Member 594 (Self : not null access constant UML_Signal_Proxy) 595 return AMF.UML.Named_Elements.Collections.Set_Of_UML_Named_Element; 596 -- Operation Namespace::ownedMember. 597 -- 598 -- Missing derivation for Namespace::/ownedMember : NamedElement 599 600 overriding function All_Owning_Packages 601 (Self : not null access constant UML_Signal_Proxy) 602 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 603 -- Operation NamedElement::allOwningPackages. 604 -- 605 -- The query allOwningPackages() returns all the directly or indirectly 606 -- owning packages. 607 608 overriding function Is_Distinguishable_From 609 (Self : not null access constant UML_Signal_Proxy; 610 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 611 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 612 return Boolean; 613 -- Operation NamedElement::isDistinguishableFrom. 614 -- 615 -- The query isDistinguishableFrom() determines whether two NamedElements 616 -- may logically co-exist within a Namespace. By default, two named 617 -- elements are distinguishable if (a) they have unrelated types or (b) 618 -- they have related types but different names. 619 620 overriding function Namespace 621 (Self : not null access constant UML_Signal_Proxy) 622 return AMF.UML.Namespaces.UML_Namespace_Access; 623 -- Operation NamedElement::namespace. 624 -- 625 -- Missing derivation for NamedElement::/namespace : Namespace 626 627 overriding function Conforms_To 628 (Self : not null access constant UML_Signal_Proxy; 629 Other : AMF.UML.Types.UML_Type_Access) 630 return Boolean; 631 -- Operation Type::conformsTo. 632 -- 633 -- The query conformsTo() gives true for a type that conforms to another. 634 -- By default, two types do not conform to each other. This query is 635 -- intended to be redefined for specific conformance situations. 636 637 overriding function Is_Compatible_With 638 (Self : not null access constant UML_Signal_Proxy; 639 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 640 return Boolean; 641 -- Operation ParameterableElement::isCompatibleWith. 642 -- 643 -- The query isCompatibleWith() determines if this parameterable element 644 -- is compatible with the specified parameterable element. By default 645 -- parameterable element P is compatible with parameterable element Q if 646 -- the kind of P is the same or a subtype as the kind of Q. Subclasses 647 -- should override this operation to specify different compatibility 648 -- constraints. 649 650 overriding function Is_Template_Parameter 651 (Self : not null access constant UML_Signal_Proxy) 652 return Boolean; 653 -- Operation ParameterableElement::isTemplateParameter. 654 -- 655 -- The query isTemplateParameter() determines if this parameterable 656 -- element is exposed as a formal template parameter. 657 658 overriding function Parameterable_Elements 659 (Self : not null access constant UML_Signal_Proxy) 660 return AMF.UML.Parameterable_Elements.Collections.Set_Of_UML_Parameterable_Element; 661 -- Operation TemplateableElement::parameterableElements. 662 -- 663 -- The query parameterableElements() returns the set of elements that may 664 -- be used as the parametered elements for a template parameter of this 665 -- templateable element. By default, this set includes all the owned 666 -- elements. Subclasses may override this operation if they choose to 667 -- restrict the set of parameterable elements. 668 669 overriding function Is_Consistent_With 670 (Self : not null access constant UML_Signal_Proxy; 671 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 672 return Boolean; 673 -- Operation RedefinableElement::isConsistentWith. 674 -- 675 -- The query isConsistentWith() specifies, for any two RedefinableElements 676 -- in a context in which redefinition is possible, whether redefinition 677 -- would be logically consistent. By default, this is false; this 678 -- operation must be overridden for subclasses of RedefinableElement to 679 -- define the consistency conditions. 680 681 overriding function Is_Redefinition_Context_Valid 682 (Self : not null access constant UML_Signal_Proxy; 683 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 684 return Boolean; 685 -- Operation RedefinableElement::isRedefinitionContextValid. 686 -- 687 -- The query isRedefinitionContextValid() specifies whether the 688 -- redefinition contexts of this RedefinableElement are properly related 689 -- to the redefinition contexts of the specified RedefinableElement to 690 -- allow this element to redefine the other. By default at least one of 691 -- the redefinition contexts of this element must be a specialization of 692 -- at least one of the redefinition contexts of the specified element. 693 694 overriding procedure Enter_Element 695 (Self : not null access constant UML_Signal_Proxy; 696 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 697 Control : in out AMF.Visitors.Traverse_Control); 698 -- Dispatch call to corresponding subprogram of visitor interface. 699 700 overriding procedure Leave_Element 701 (Self : not null access constant UML_Signal_Proxy; 702 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 703 Control : in out AMF.Visitors.Traverse_Control); 704 -- Dispatch call to corresponding subprogram of visitor interface. 705 706 overriding procedure Visit_Element 707 (Self : not null access constant UML_Signal_Proxy; 708 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 709 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 710 Control : in out AMF.Visitors.Traverse_Control); 711 -- Dispatch call to corresponding subprogram of iterator interface. 712 713end AMF.Internals.UML_Signals; 714