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