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: 2981 $ $Date: 2012-05-15 20:56:15 +0400 (Tue, 15 May 2012) $ 43------------------------------------------------------------------------------ 44with AMF.Internals.UML_Properties; 45with AMF.UML.Associations; 46with AMF.UML.Classes; 47with AMF.UML.Classifiers.Collections; 48with AMF.UML.Connectable_Element_Template_Parameters; 49with AMF.UML.Connector_Ends.Collections; 50with AMF.UML.Data_Types; 51with AMF.UML.Dependencies.Collections; 52with AMF.UML.Deployments.Collections; 53with AMF.UML.Interfaces.Collections; 54with AMF.UML.Multiplicity_Elements; 55with AMF.UML.Named_Elements; 56with AMF.UML.Namespaces; 57with AMF.UML.Packageable_Elements.Collections; 58with AMF.UML.Packages.Collections; 59with AMF.UML.Parameterable_Elements; 60with AMF.UML.Ports.Collections; 61with AMF.UML.Properties.Collections; 62with AMF.UML.Protocol_State_Machines; 63with AMF.UML.Redefinable_Elements.Collections; 64with AMF.UML.String_Expressions; 65with AMF.UML.Template_Parameters; 66with AMF.UML.Types.Collections; 67with AMF.UML.Value_Specifications; 68with AMF.Visitors; 69 70package AMF.Internals.UML_Ports is 71 72 type UML_Port_Proxy is 73 limited new AMF.Internals.UML_Properties.UML_Property_Proxy 74 and AMF.UML.Ports.UML_Port with null record; 75 76 overriding function Get_Is_Behavior 77 (Self : not null access constant UML_Port_Proxy) 78 return Boolean; 79 -- Getter of Port::isBehavior. 80 -- 81 -- Specifies whether requests arriving at this port are sent to the 82 -- classifier behavior of this classifier. Such ports are referred to as 83 -- behavior port. Any invocation of a behavioral feature targeted at a 84 -- behavior port will be handled by the instance of the owning classifier 85 -- itself, rather than by any instances that this classifier may contain. 86 87 overriding procedure Set_Is_Behavior 88 (Self : not null access UML_Port_Proxy; 89 To : Boolean); 90 -- Setter of Port::isBehavior. 91 -- 92 -- Specifies whether requests arriving at this port are sent to the 93 -- classifier behavior of this classifier. Such ports are referred to as 94 -- behavior port. Any invocation of a behavioral feature targeted at a 95 -- behavior port will be handled by the instance of the owning classifier 96 -- itself, rather than by any instances that this classifier may contain. 97 98 overriding function Get_Is_Conjugated 99 (Self : not null access constant UML_Port_Proxy) 100 return Boolean; 101 -- Getter of Port::isConjugated. 102 -- 103 -- Specifies the way that the provided and required interfaces are derived 104 -- from the Port’s Type. The default value is false. 105 106 overriding procedure Set_Is_Conjugated 107 (Self : not null access UML_Port_Proxy; 108 To : Boolean); 109 -- Setter of Port::isConjugated. 110 -- 111 -- Specifies the way that the provided and required interfaces are derived 112 -- from the Port’s Type. The default value is false. 113 114 overriding function Get_Is_Service 115 (Self : not null access constant UML_Port_Proxy) 116 return Boolean; 117 -- Getter of Port::isService. 118 -- 119 -- If true indicates that this port is used to provide the published 120 -- functionality of a classifier; if false, this port is used to implement 121 -- the classifier but is not part of the essential externally-visible 122 -- functionality of the classifier and can, therefore, be altered or 123 -- deleted along with the internal implementation of the classifier and 124 -- other properties that are considered part of its implementation. 125 126 overriding procedure Set_Is_Service 127 (Self : not null access UML_Port_Proxy; 128 To : Boolean); 129 -- Setter of Port::isService. 130 -- 131 -- If true indicates that this port is used to provide the published 132 -- functionality of a classifier; if false, this port is used to implement 133 -- the classifier but is not part of the essential externally-visible 134 -- functionality of the classifier and can, therefore, be altered or 135 -- deleted along with the internal implementation of the classifier and 136 -- other properties that are considered part of its implementation. 137 138 overriding function Get_Protocol 139 (Self : not null access constant UML_Port_Proxy) 140 return AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access; 141 -- Getter of Port::protocol. 142 -- 143 -- References an optional protocol state machine which describes valid 144 -- interactions at this interaction point. 145 146 overriding procedure Set_Protocol 147 (Self : not null access UML_Port_Proxy; 148 To : AMF.UML.Protocol_State_Machines.UML_Protocol_State_Machine_Access); 149 -- Setter of Port::protocol. 150 -- 151 -- References an optional protocol state machine which describes valid 152 -- interactions at this interaction point. 153 154 overriding function Get_Provided 155 (Self : not null access constant UML_Port_Proxy) 156 return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface; 157 -- Getter of Port::provided. 158 -- 159 -- References the interfaces specifying the set of operations and 160 -- receptions that the classifier offers to its environment via this port, 161 -- and which it will handle either directly or by forwarding it to a part 162 -- of its internal structure. This association is derived according to the 163 -- value of isConjugated. If isConjugated is false, provided is derived as 164 -- the union of the sets of interfaces realized by the type of the port 165 -- and its supertypes, or directly from the type of the port if the port 166 -- is typed by an interface. If isConjugated is true, it is derived as the 167 -- union of the sets of interfaces used by the type of the port and its 168 -- supertypes. 169 170 overriding function Get_Redefined_Port 171 (Self : not null access constant UML_Port_Proxy) 172 return AMF.UML.Ports.Collections.Set_Of_UML_Port; 173 -- Getter of Port::redefinedPort. 174 -- 175 -- A port may be redefined when its containing classifier is specialized. 176 -- The redefining port may have additional interfaces to those that are 177 -- associated with the redefined port or it may replace an interface by 178 -- one of its subtypes. 179 180 overriding function Get_Required 181 (Self : not null access constant UML_Port_Proxy) 182 return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface; 183 -- Getter of Port::required. 184 -- 185 -- References the interfaces specifying the set of operations and 186 -- receptions that the classifier expects its environment to handle via 187 -- this port. This association is derived according to the value of 188 -- isConjugated. If isConjugated is false, required is derived as the 189 -- union of the sets of interfaces used by the type of the port and its 190 -- supertypes. If isConjugated is true, it is derived as the union of the 191 -- sets of interfaces realized by the type of the port and its supertypes, 192 -- or directly from the type of the port if the port is typed by an 193 -- interface. 194 195 overriding function Get_Aggregation 196 (Self : not null access constant UML_Port_Proxy) 197 return AMF.UML.UML_Aggregation_Kind; 198 -- Getter of Property::aggregation. 199 -- 200 -- Specifies the kind of aggregation that applies to the Property. 201 202 overriding procedure Set_Aggregation 203 (Self : not null access UML_Port_Proxy; 204 To : AMF.UML.UML_Aggregation_Kind); 205 -- Setter of Property::aggregation. 206 -- 207 -- Specifies the kind of aggregation that applies to the Property. 208 209 overriding function Get_Association 210 (Self : not null access constant UML_Port_Proxy) 211 return AMF.UML.Associations.UML_Association_Access; 212 -- Getter of Property::association. 213 -- 214 -- References the association of which this property is a member, if any. 215 216 overriding procedure Set_Association 217 (Self : not null access UML_Port_Proxy; 218 To : AMF.UML.Associations.UML_Association_Access); 219 -- Setter of Property::association. 220 -- 221 -- References the association of which this property is a member, if any. 222 223 overriding function Get_Association_End 224 (Self : not null access constant UML_Port_Proxy) 225 return AMF.UML.Properties.UML_Property_Access; 226 -- Getter of Property::associationEnd. 227 -- 228 -- Designates the optional association end that owns a qualifier attribute. 229 230 overriding procedure Set_Association_End 231 (Self : not null access UML_Port_Proxy; 232 To : AMF.UML.Properties.UML_Property_Access); 233 -- Setter of Property::associationEnd. 234 -- 235 -- Designates the optional association end that owns a qualifier attribute. 236 237 overriding function Get_Class 238 (Self : not null access constant UML_Port_Proxy) 239 return AMF.UML.Classes.UML_Class_Access; 240 -- Getter of Property::class. 241 -- 242 -- References the Class that owns the Property. 243 -- References the Class that owns the Property. 244 245 overriding procedure Set_Class 246 (Self : not null access UML_Port_Proxy; 247 To : AMF.UML.Classes.UML_Class_Access); 248 -- Setter of Property::class. 249 -- 250 -- References the Class that owns the Property. 251 -- References the Class that owns the Property. 252 253 overriding function Get_Datatype 254 (Self : not null access constant UML_Port_Proxy) 255 return AMF.UML.Data_Types.UML_Data_Type_Access; 256 -- Getter of Property::datatype. 257 -- 258 -- The DataType that owns this Property. 259 260 overriding procedure Set_Datatype 261 (Self : not null access UML_Port_Proxy; 262 To : AMF.UML.Data_Types.UML_Data_Type_Access); 263 -- Setter of Property::datatype. 264 -- 265 -- The DataType that owns this Property. 266 267 overriding function Get_Default 268 (Self : not null access constant UML_Port_Proxy) 269 return AMF.Optional_String; 270 -- Getter of Property::default. 271 -- 272 -- A String that is evaluated to give a default value for the Property 273 -- when an object of the owning Classifier is instantiated. 274 -- Specifies a String that represents a value to be used when no argument 275 -- is supplied for the Property. 276 277 overriding procedure Set_Default 278 (Self : not null access UML_Port_Proxy; 279 To : AMF.Optional_String); 280 -- Setter of Property::default. 281 -- 282 -- A String that is evaluated to give a default value for the Property 283 -- when an object of the owning Classifier is instantiated. 284 -- Specifies a String that represents a value to be used when no argument 285 -- is supplied for the Property. 286 287 overriding function Get_Default_Value 288 (Self : not null access constant UML_Port_Proxy) 289 return AMF.UML.Value_Specifications.UML_Value_Specification_Access; 290 -- Getter of Property::defaultValue. 291 -- 292 -- A ValueSpecification that is evaluated to give a default value for the 293 -- Property when an object of the owning Classifier is instantiated. 294 295 overriding procedure Set_Default_Value 296 (Self : not null access UML_Port_Proxy; 297 To : AMF.UML.Value_Specifications.UML_Value_Specification_Access); 298 -- Setter of Property::defaultValue. 299 -- 300 -- A ValueSpecification that is evaluated to give a default value for the 301 -- Property when an object of the owning Classifier is instantiated. 302 303 overriding function Get_Interface 304 (Self : not null access constant UML_Port_Proxy) 305 return AMF.UML.Interfaces.UML_Interface_Access; 306 -- Getter of Property::interface. 307 -- 308 -- References the Interface that owns the Property 309 310 overriding procedure Set_Interface 311 (Self : not null access UML_Port_Proxy; 312 To : AMF.UML.Interfaces.UML_Interface_Access); 313 -- Setter of Property::interface. 314 -- 315 -- References the Interface that owns the Property 316 317 overriding function Get_Is_Derived 318 (Self : not null access constant UML_Port_Proxy) 319 return Boolean; 320 -- Getter of Property::isDerived. 321 -- 322 -- Specifies whether the Property is derived, i.e., whether its value or 323 -- values can be computed from other information. 324 -- If isDerived is true, the value of the attribute is derived from 325 -- information elsewhere. 326 327 overriding procedure Set_Is_Derived 328 (Self : not null access UML_Port_Proxy; 329 To : Boolean); 330 -- Setter of Property::isDerived. 331 -- 332 -- Specifies whether the Property is derived, i.e., whether its value or 333 -- values can be computed from other information. 334 -- If isDerived is true, the value of the attribute is derived from 335 -- information elsewhere. 336 337 overriding function Get_Is_Derived_Union 338 (Self : not null access constant UML_Port_Proxy) 339 return Boolean; 340 -- Getter of Property::isDerivedUnion. 341 -- 342 -- Specifies whether the property is derived as the union of all of the 343 -- properties that are constrained to subset it. 344 345 overriding procedure Set_Is_Derived_Union 346 (Self : not null access UML_Port_Proxy; 347 To : Boolean); 348 -- Setter of Property::isDerivedUnion. 349 -- 350 -- Specifies whether the property is derived as the union of all of the 351 -- properties that are constrained to subset it. 352 353 overriding function Get_Is_ID 354 (Self : not null access constant UML_Port_Proxy) 355 return Boolean; 356 -- Getter of Property::isID. 357 -- 358 -- True indicates this property can be used to uniquely identify an 359 -- instance of the containing Class. 360 361 overriding procedure Set_Is_ID 362 (Self : not null access UML_Port_Proxy; 363 To : Boolean); 364 -- Setter of Property::isID. 365 -- 366 -- True indicates this property can be used to uniquely identify an 367 -- instance of the containing Class. 368 369 overriding function Get_Is_Read_Only 370 (Self : not null access constant UML_Port_Proxy) 371 return Boolean; 372 -- Getter of Property::isReadOnly. 373 -- 374 -- If isReadOnly is true, the attribute may not be written to after 375 -- initialization. 376 -- If true, the attribute may only be read, and not written. 377 378 overriding procedure Set_Is_Read_Only 379 (Self : not null access UML_Port_Proxy; 380 To : Boolean); 381 -- Setter of Property::isReadOnly. 382 -- 383 -- If isReadOnly is true, the attribute may not be written to after 384 -- initialization. 385 -- If true, the attribute may only be read, and not written. 386 387 overriding function Get_Opposite 388 (Self : not null access constant UML_Port_Proxy) 389 return AMF.UML.Properties.UML_Property_Access; 390 -- Getter of Property::opposite. 391 -- 392 -- In the case where the property is one navigable end of a binary 393 -- association with both ends navigable, this gives the other end. 394 395 overriding procedure Set_Opposite 396 (Self : not null access UML_Port_Proxy; 397 To : AMF.UML.Properties.UML_Property_Access); 398 -- Setter of Property::opposite. 399 -- 400 -- In the case where the property is one navigable end of a binary 401 -- association with both ends navigable, this gives the other end. 402 403 overriding function Get_Owning_Association 404 (Self : not null access constant UML_Port_Proxy) 405 return AMF.UML.Associations.UML_Association_Access; 406 -- Getter of Property::owningAssociation. 407 -- 408 -- References the owning association of this property, if any. 409 410 overriding procedure Set_Owning_Association 411 (Self : not null access UML_Port_Proxy; 412 To : AMF.UML.Associations.UML_Association_Access); 413 -- Setter of Property::owningAssociation. 414 -- 415 -- References the owning association of this property, if any. 416 417 overriding function Get_Qualifier 418 (Self : not null access constant UML_Port_Proxy) 419 return AMF.UML.Properties.Collections.Ordered_Set_Of_UML_Property; 420 -- Getter of Property::qualifier. 421 -- 422 -- An optional list of ordered qualifier attributes for the end. If the 423 -- list is empty, then the Association is not qualified. 424 425 overriding function Get_Redefined_Property 426 (Self : not null access constant UML_Port_Proxy) 427 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 428 -- Getter of Property::redefinedProperty. 429 -- 430 -- References the properties that are redefined by this property. 431 432 overriding function Get_Subsetted_Property 433 (Self : not null access constant UML_Port_Proxy) 434 return AMF.UML.Properties.Collections.Set_Of_UML_Property; 435 -- Getter of Property::subsettedProperty. 436 -- 437 -- References the properties of which this property is constrained to be a 438 -- subset. 439 440 overriding function Get_End 441 (Self : not null access constant UML_Port_Proxy) 442 return AMF.UML.Connector_Ends.Collections.Ordered_Set_Of_UML_Connector_End; 443 -- Getter of ConnectableElement::end. 444 -- 445 -- Denotes a set of connector ends that attaches to this connectable 446 -- element. 447 448 overriding function Get_Template_Parameter 449 (Self : not null access constant UML_Port_Proxy) 450 return AMF.UML.Connectable_Element_Template_Parameters.UML_Connectable_Element_Template_Parameter_Access; 451 -- Getter of ConnectableElement::templateParameter. 452 -- 453 -- The ConnectableElementTemplateParameter for this ConnectableElement 454 -- parameter. 455 456 overriding procedure Set_Template_Parameter 457 (Self : not null access UML_Port_Proxy; 458 To : AMF.UML.Connectable_Element_Template_Parameters.UML_Connectable_Element_Template_Parameter_Access); 459 -- Setter of ConnectableElement::templateParameter. 460 -- 461 -- The ConnectableElementTemplateParameter for this ConnectableElement 462 -- parameter. 463 464 overriding function Get_Type 465 (Self : not null access constant UML_Port_Proxy) 466 return AMF.UML.Types.UML_Type_Access; 467 -- Getter of TypedElement::type. 468 -- 469 -- The type of the TypedElement. 470 -- This information is derived from the return result for this Operation. 471 472 overriding procedure Set_Type 473 (Self : not null access UML_Port_Proxy; 474 To : AMF.UML.Types.UML_Type_Access); 475 -- Setter of TypedElement::type. 476 -- 477 -- The type of the TypedElement. 478 -- This information is derived from the return result for this Operation. 479 480 overriding function Get_Client_Dependency 481 (Self : not null access constant UML_Port_Proxy) 482 return AMF.UML.Dependencies.Collections.Set_Of_UML_Dependency; 483 -- Getter of NamedElement::clientDependency. 484 -- 485 -- Indicates the dependencies that reference the client. 486 487 overriding function Get_Name_Expression 488 (Self : not null access constant UML_Port_Proxy) 489 return AMF.UML.String_Expressions.UML_String_Expression_Access; 490 -- Getter of NamedElement::nameExpression. 491 -- 492 -- The string expression used to define the name of this named element. 493 494 overriding procedure Set_Name_Expression 495 (Self : not null access UML_Port_Proxy; 496 To : AMF.UML.String_Expressions.UML_String_Expression_Access); 497 -- Setter of NamedElement::nameExpression. 498 -- 499 -- The string expression used to define the name of this named element. 500 501 overriding function Get_Namespace 502 (Self : not null access constant UML_Port_Proxy) 503 return AMF.UML.Namespaces.UML_Namespace_Access; 504 -- Getter of NamedElement::namespace. 505 -- 506 -- Specifies the namespace that owns the NamedElement. 507 508 overriding function Get_Qualified_Name 509 (Self : not null access constant UML_Port_Proxy) 510 return AMF.Optional_String; 511 -- Getter of NamedElement::qualifiedName. 512 -- 513 -- A name which allows the NamedElement to be identified within a 514 -- hierarchy of nested Namespaces. It is constructed from the names of the 515 -- containing namespaces starting at the root of the hierarchy and ending 516 -- with the name of the NamedElement itself. 517 518 overriding function Get_Owning_Template_Parameter 519 (Self : not null access constant UML_Port_Proxy) 520 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 521 -- Getter of ParameterableElement::owningTemplateParameter. 522 -- 523 -- The formal template parameter that owns this element. 524 525 overriding procedure Set_Owning_Template_Parameter 526 (Self : not null access UML_Port_Proxy; 527 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 528 -- Setter of ParameterableElement::owningTemplateParameter. 529 -- 530 -- The formal template parameter that owns this element. 531 532 overriding function Get_Template_Parameter 533 (Self : not null access constant UML_Port_Proxy) 534 return AMF.UML.Template_Parameters.UML_Template_Parameter_Access; 535 -- Getter of ParameterableElement::templateParameter. 536 -- 537 -- The template parameter that exposes this element as a formal parameter. 538 539 overriding procedure Set_Template_Parameter 540 (Self : not null access UML_Port_Proxy; 541 To : AMF.UML.Template_Parameters.UML_Template_Parameter_Access); 542 -- Setter of ParameterableElement::templateParameter. 543 -- 544 -- The template parameter that exposes this element as a formal parameter. 545 546 overriding function Get_Deployed_Element 547 (Self : not null access constant UML_Port_Proxy) 548 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 549 -- Getter of DeploymentTarget::deployedElement. 550 -- 551 -- The set of elements that are manifested in an Artifact that is involved 552 -- in Deployment to a DeploymentTarget. 553 554 overriding function Get_Deployment 555 (Self : not null access constant UML_Port_Proxy) 556 return AMF.UML.Deployments.Collections.Set_Of_UML_Deployment; 557 -- Getter of DeploymentTarget::deployment. 558 -- 559 -- The set of Deployments for a DeploymentTarget. 560 561 overriding function Get_Featuring_Classifier 562 (Self : not null access constant UML_Port_Proxy) 563 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 564 -- Getter of Feature::featuringClassifier. 565 -- 566 -- The Classifiers that have this Feature as a feature. 567 568 overriding function Get_Is_Static 569 (Self : not null access constant UML_Port_Proxy) 570 return Boolean; 571 -- Getter of Feature::isStatic. 572 -- 573 -- Specifies whether this feature characterizes individual instances 574 -- classified by the classifier (false) or the classifier itself (true). 575 576 overriding procedure Set_Is_Static 577 (Self : not null access UML_Port_Proxy; 578 To : Boolean); 579 -- Setter of Feature::isStatic. 580 -- 581 -- Specifies whether this feature characterizes individual instances 582 -- classified by the classifier (false) or the classifier itself (true). 583 584 overriding function Get_Is_Leaf 585 (Self : not null access constant UML_Port_Proxy) 586 return Boolean; 587 -- Getter of RedefinableElement::isLeaf. 588 -- 589 -- Indicates whether it is possible to further redefine a 590 -- RedefinableElement. If the value is true, then it is not possible to 591 -- further redefine the RedefinableElement. Note that this property is 592 -- preserved through package merge operations; that is, the capability to 593 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 594 -- the resulting RedefinableElement of a package merge operation where a 595 -- RedefinableElement with isLeaf=false is merged with a matching 596 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 597 -- will have isLeaf=false. Default value is false. 598 599 overriding procedure Set_Is_Leaf 600 (Self : not null access UML_Port_Proxy; 601 To : Boolean); 602 -- Setter of RedefinableElement::isLeaf. 603 -- 604 -- Indicates whether it is possible to further redefine a 605 -- RedefinableElement. If the value is true, then it is not possible to 606 -- further redefine the RedefinableElement. Note that this property is 607 -- preserved through package merge operations; that is, the capability to 608 -- redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in 609 -- the resulting RedefinableElement of a package merge operation where a 610 -- RedefinableElement with isLeaf=false is merged with a matching 611 -- RedefinableElement with isLeaf=true: the resulting RedefinableElement 612 -- will have isLeaf=false. Default value is false. 613 614 overriding function Get_Redefined_Element 615 (Self : not null access constant UML_Port_Proxy) 616 return AMF.UML.Redefinable_Elements.Collections.Set_Of_UML_Redefinable_Element; 617 -- Getter of RedefinableElement::redefinedElement. 618 -- 619 -- The redefinable element that is being redefined by this element. 620 621 overriding function Get_Redefinition_Context 622 (Self : not null access constant UML_Port_Proxy) 623 return AMF.UML.Classifiers.Collections.Set_Of_UML_Classifier; 624 -- Getter of RedefinableElement::redefinitionContext. 625 -- 626 -- References the contexts that this element may be redefined from. 627 628 overriding function Provided 629 (Self : not null access constant UML_Port_Proxy) 630 return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface; 631 -- Operation Port::provided. 632 -- 633 -- Missing derivation for Port::/provided : Interface 634 635 overriding function Required 636 (Self : not null access constant UML_Port_Proxy) 637 return AMF.UML.Interfaces.Collections.Set_Of_UML_Interface; 638 -- Operation Port::required. 639 -- 640 -- Missing derivation for Port::/required : Interface 641 642 overriding function Default 643 (Self : not null access constant UML_Port_Proxy) 644 return AMF.Optional_String; 645 -- Operation Property::default. 646 -- 647 -- Missing derivation for Property::/default : String 648 649 overriding function Is_Attribute 650 (Self : not null access constant UML_Port_Proxy; 651 P : AMF.UML.Properties.UML_Property_Access) 652 return Boolean; 653 -- Operation Property::isAttribute. 654 -- 655 -- The query isAttribute() is true if the Property is defined as an 656 -- attribute of some classifier. 657 658 overriding function Is_Compatible_With 659 (Self : not null access constant UML_Port_Proxy; 660 P : AMF.UML.Parameterable_Elements.UML_Parameterable_Element_Access) 661 return Boolean; 662 -- Operation Property::isCompatibleWith. 663 -- 664 -- The query isCompatibleWith() determines if this parameterable element 665 -- is compatible with the specified parameterable element. By default 666 -- parameterable element P is compatible with parameterable element Q if 667 -- the kind of P is the same or a subtype as the kind of Q. In addition, 668 -- for properties, the type must be conformant with the type of the 669 -- specified parameterable element. 670 671 overriding function Is_Composite 672 (Self : not null access constant UML_Port_Proxy) 673 return Boolean; 674 -- Operation Property::isComposite. 675 -- 676 -- The value of isComposite is true only if aggregation is composite. 677 678 overriding function Is_Consistent_With 679 (Self : not null access constant UML_Port_Proxy; 680 Redefinee : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 681 return Boolean; 682 -- Operation Property::isConsistentWith. 683 -- 684 -- The query isConsistentWith() specifies, for any two Properties in a 685 -- context in which redefinition is possible, whether redefinition would 686 -- be logically consistent. A redefining property is consistent with a 687 -- redefined property if the type of the redefining property conforms to 688 -- the type of the redefined property, the multiplicity of the redefining 689 -- property (if specified) is contained in the multiplicity of the 690 -- redefined property. 691 -- The query isConsistentWith() specifies, for any two Properties in a 692 -- context in which redefinition is possible, whether redefinition would 693 -- be logically consistent. A redefining property is consistent with a 694 -- redefined property if the type of the redefining property conforms to 695 -- the type of the redefined property, and the multiplicity of the 696 -- redefining property (if specified) is contained in the multiplicity of 697 -- the redefined property. 698 699 overriding function Is_Navigable 700 (Self : not null access constant UML_Port_Proxy) 701 return Boolean; 702 -- Operation Property::isNavigable. 703 -- 704 -- The query isNavigable() indicates whether it is possible to navigate 705 -- across the property. 706 707 overriding function Opposite 708 (Self : not null access constant UML_Port_Proxy) 709 return AMF.UML.Properties.UML_Property_Access; 710 -- Operation Property::opposite. 711 -- 712 -- If this property is owned by a class, associated with a binary 713 -- association, and the other end of the association is also owned by a 714 -- class, then opposite gives the other end. 715 716 overriding function Subsetting_Context 717 (Self : not null access constant UML_Port_Proxy) 718 return AMF.UML.Types.Collections.Set_Of_UML_Type; 719 -- Operation Property::subsettingContext. 720 -- 721 -- The query subsettingContext() gives the context for subsetting a 722 -- property. It consists, in the case of an attribute, of the 723 -- corresponding classifier, and in the case of an association end, all of 724 -- the classifiers at the other ends. 725 726 overriding function Ends 727 (Self : not null access constant UML_Port_Proxy) 728 return AMF.UML.Connector_Ends.Collections.Set_Of_UML_Connector_End; 729 -- Operation ConnectableElement::end. 730 -- 731 -- Missing derivation for ConnectableElement::/end : ConnectorEnd 732 733 overriding function All_Owning_Packages 734 (Self : not null access constant UML_Port_Proxy) 735 return AMF.UML.Packages.Collections.Set_Of_UML_Package; 736 -- Operation NamedElement::allOwningPackages. 737 -- 738 -- The query allOwningPackages() returns all the directly or indirectly 739 -- owning packages. 740 741 overriding function Is_Distinguishable_From 742 (Self : not null access constant UML_Port_Proxy; 743 N : AMF.UML.Named_Elements.UML_Named_Element_Access; 744 Ns : AMF.UML.Namespaces.UML_Namespace_Access) 745 return Boolean; 746 -- Operation NamedElement::isDistinguishableFrom. 747 -- 748 -- The query isDistinguishableFrom() determines whether two NamedElements 749 -- may logically co-exist within a Namespace. By default, two named 750 -- elements are distinguishable if (a) they have unrelated types or (b) 751 -- they have related types but different names. 752 753 overriding function Namespace 754 (Self : not null access constant UML_Port_Proxy) 755 return AMF.UML.Namespaces.UML_Namespace_Access; 756 -- Operation NamedElement::namespace. 757 -- 758 -- Missing derivation for NamedElement::/namespace : Namespace 759 760 overriding function Is_Template_Parameter 761 (Self : not null access constant UML_Port_Proxy) 762 return Boolean; 763 -- Operation ParameterableElement::isTemplateParameter. 764 -- 765 -- The query isTemplateParameter() determines if this parameterable 766 -- element is exposed as a formal template parameter. 767 768 overriding function Deployed_Element 769 (Self : not null access constant UML_Port_Proxy) 770 return AMF.UML.Packageable_Elements.Collections.Set_Of_UML_Packageable_Element; 771 -- Operation DeploymentTarget::deployedElement. 772 -- 773 -- Missing derivation for DeploymentTarget::/deployedElement : 774 -- PackageableElement 775 776 overriding function Compatible_With 777 (Self : not null access constant UML_Port_Proxy; 778 Other : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access) 779 return Boolean; 780 -- Operation MultiplicityElement::compatibleWith. 781 -- 782 -- The operation compatibleWith takes another multiplicity as input. It 783 -- checks if one multiplicity is compatible with another. 784 785 overriding function Includes_Cardinality 786 (Self : not null access constant UML_Port_Proxy; 787 C : Integer) 788 return Boolean; 789 -- Operation MultiplicityElement::includesCardinality. 790 -- 791 -- The query includesCardinality() checks whether the specified 792 -- cardinality is valid for this multiplicity. 793 794 overriding function Includes_Multiplicity 795 (Self : not null access constant UML_Port_Proxy; 796 M : AMF.UML.Multiplicity_Elements.UML_Multiplicity_Element_Access) 797 return Boolean; 798 -- Operation MultiplicityElement::includesMultiplicity. 799 -- 800 -- The query includesMultiplicity() checks whether this multiplicity 801 -- includes all the cardinalities allowed by the specified multiplicity. 802 803 overriding function Iss 804 (Self : not null access constant UML_Port_Proxy; 805 Lowerbound : Integer; 806 Upperbound : Integer) 807 return Boolean; 808 -- Operation MultiplicityElement::is. 809 -- 810 -- The operation is determines if the upper and lower bound of the ranges 811 -- are the ones given. 812 813 overriding function Is_Redefinition_Context_Valid 814 (Self : not null access constant UML_Port_Proxy; 815 Redefined : AMF.UML.Redefinable_Elements.UML_Redefinable_Element_Access) 816 return Boolean; 817 -- Operation RedefinableElement::isRedefinitionContextValid. 818 -- 819 -- The query isRedefinitionContextValid() specifies whether the 820 -- redefinition contexts of this RedefinableElement are properly related 821 -- to the redefinition contexts of the specified RedefinableElement to 822 -- allow this element to redefine the other. By default at least one of 823 -- the redefinition contexts of this element must be a specialization of 824 -- at least one of the redefinition contexts of the specified element. 825 826 overriding procedure Enter_Element 827 (Self : not null access constant UML_Port_Proxy; 828 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 829 Control : in out AMF.Visitors.Traverse_Control); 830 -- Dispatch call to corresponding subprogram of visitor interface. 831 832 overriding procedure Leave_Element 833 (Self : not null access constant UML_Port_Proxy; 834 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 835 Control : in out AMF.Visitors.Traverse_Control); 836 -- Dispatch call to corresponding subprogram of visitor interface. 837 838 overriding procedure Visit_Element 839 (Self : not null access constant UML_Port_Proxy; 840 Iterator : in out AMF.Visitors.Abstract_Iterator'Class; 841 Visitor : in out AMF.Visitors.Abstract_Visitor'Class; 842 Control : in out AMF.Visitors.Traverse_Control); 843 -- Dispatch call to corresponding subprogram of iterator interface. 844 845end AMF.Internals.UML_Ports; 846