blob: f3946da85af2d5eee6a8312bfaa3db8735ddb86e [file] [log] [blame]
(object Petal
version 50
_written "Rose 8.3.0407.2800"
charSet 0)
(object Class_Category "runtime"
is_unit TRUE
is_loaded TRUE
quid "456EA3440140"
documentation
|Contains M1 constructs that instantiate other metamodel constructs. It is as such not relevant for JMI generation or XMI import/export. It is supposed to describe classes and packages that constitute the elementary runtime libraries.
|
|This is also where concepts are expressed that need special treatment, such as collections or blocks. Furthermore, the list of predefined primitive types is specified here.
|
|As a general hint, in this package UML classes are used to represent instances. The class stereotype is used to indicate the type of the instance represented by the UML class. For example, <<PrimitiveType>>-stereotyped classes denote instances of the PrimitiveType class, such as Integer or String.
stereotype "instancemodel"
exportControl "Public"
logical_models (list unit_reference_list
(object Class_Category "primitivetypes"
quid "456EA41C02D1"
exportControl "Public"
logical_models (list unit_reference_list
(object Class "Binary"
quid "453E10EB01C0"
documentation "A sequence of bytes or arbitrary length"
stereotype "PrimitiveType")
(object Class "Boolean"
quid "453E10EA0332"
documentation "The Boolean extent comprises the two values True and False."
stereotype "PrimitiveType")
(object Class "DateTime"
quid "453E10E9014F"
documentation "A point in time"
stereotype "PrimitiveType")
(object Class "Number"
quid "453E10EA00D9"
documentation
|A number of arbitrary precision. It can be constrained later in qualifying types in order to match, e.g., typical integer precision, or decimals with two decimal digits. Number may also need to capture true fractions or even irrational numbers such as sqrt(2).
|
|Operations on Number instances will be influenced by the precision of the instances involved. Rounding rules may additionally need to be specified.
stereotype "PrimitiveType")
(object Class "String"
quid "453E10E101F8"
documentation "A sequence of (Unicode) characters of arbitrary length"
stereotype "PrimitiveType"))
logical_presentations (list unit_reference_list
(object ClassDiagram "Primitive Type Instances"
quid "453E109F01A3"
title "Primitive Type Instances"
zoom 100
max_height 28350
max_width 21600
origin_x 0
origin_y 0
items (list diagram_item_list
(object ClassView "Class" "Logical View::documentation::runtime::primitivetypes::String" @1
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (228, 308)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @1
location (47, 280)
fill_color 13434879
nlines 1
max_width 362
justify 0
label "String")
stereotype (object ItemLabel
Parent_View @1
location (47, 230)
fill_color 13434879
anchor 10
nlines 1
max_width 360
justify 0
label "<<PrimitiveType>>")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453E10E101F8"
width 380
height 180
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::primitivetypes::DateTime" @2
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1405, 309)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @2
location (1220, 281)
fill_color 13434879
nlines 1
max_width 370
justify 0
label "DateTime")
stereotype (object ItemLabel
Parent_View @2
location (1220, 231)
fill_color 13434879
anchor 10
nlines 1
max_width 368
justify 0
label "<<PrimitiveType>>")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453E10E9014F"
width 388
height 180
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::primitivetypes::Number" @3
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (618, 306)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @3
location (435, 278)
fill_color 13434879
nlines 1
max_width 366
justify 0
label "Number")
stereotype (object ItemLabel
Parent_View @3
location (435, 228)
fill_color 13434879
anchor 10
nlines 1
max_width 364
justify 0
label "<<PrimitiveType>>")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453E10EA00D9"
width 384
height 180
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::primitivetypes::Boolean" @4
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1012, 306)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @4
location (827, 278)
fill_color 13434879
nlines 1
max_width 370
justify 0
label "Boolean")
stereotype (object ItemLabel
Parent_View @4
location (827, 228)
fill_color 13434879
anchor 10
nlines 1
max_width 368
justify 0
label "<<PrimitiveType>>")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453E10EA0332"
width 388
height 180
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::primitivetypes::Binary" @5
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1812, 312)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @5
location (1625, 284)
fill_color 13434879
nlines 1
max_width 374
justify 0
label "Binary")
stereotype (object ItemLabel
Parent_View @5
location (1625, 234)
fill_color 13434879
anchor 10
nlines 1
max_width 372
justify 0
label "<<PrimitiveType>>")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453E10EB01C0"
width 392
height 180
annotation 8
autoResize TRUE)
(object NoteView @6
location (872, 112)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @6
location (187, 53)
fill_color 13434879
nlines 2
max_width 1334
label "This is an instance diagram, showing instances of the type PrimitiveType")
line_color 3342489
fill_color 13434879
width 1394
height 131)
(object NoteView @7
location (915, 766)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @7
location (461, 469)
fill_color 13434879
nlines 11
max_width 872
label
|The primitive types constitute the foundation of the programming model. We currently see the following primitive types that need to be supported:
| - string
| - decimal
| - double
| - date
| - boolean
| - enum
| - MIME/BLOB
)
line_color 3342489
fill_color 13434879
width 932
height 606)
(object NoteView @8
location (1811, 584)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @8
location (1498, 503)
fill_color 13434879
nlines 3
max_width 590
label "Primitive types can only have Query operations because the primitive values are immutable.")
line_color 3342489
fill_color 13434879
width 650
height 175)
(object NoteView @9
location (1856, 950)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @9
location (1500, 728)
fill_color 13434879
nlines 8
max_width 677
label
|Compare with the SmallTalk library around "primitive types" and how they are modeled as classes and inheritance hierarchies there., specifically for the Number types.
|
|Obviously, all these classes are value-type classes.
)
line_color 3342489
fill_color 13434879
width 737
height 456)))))
(object Class_Category "enumerations"
quid "456F5A2701E3"
exportControl "Public"
logical_models (list unit_reference_list
(object Class "Enumeration"
quid "44FFFF9401B6"
documentation
|An enumeration type declares a number of literals that constitute the instances of the enumeration type. Enumerations can thus also be used to implement a concept known as "Code List" that is used, e.g., to encode ISO code lists of currencies, countries or others.
|
|However, I wonder if the choice of a Code List / Enumeration is appropriate for, e.g., currency encoding, given the fact that the set of currencies available worldwide may change over time (think "Euro"). Similar for countries (Soviet Union --> GUS, Yugoslavia, ...). Probably, those would better have been instances of classes, only marked as not changing very frequently.
stereotype "Class")
(object Class "EnumerationLiteral"
quid "44FFFF9E034B"
stereotype "Class"
class_attributes (list class_attribute_list
(object ClassAttribute "name"
quid "44FFFFE3028C"
type "string"
exportControl "Public")
(object ClassAttribute "description"
quid "45000293019A"
type "TranslatableText"
quidu "450001CE02D8"
exportControl "Public")))
(object Association "$UNNAMED$0"
quid "44FFFFA50296"
roles (list role_list
(object Role "literals"
quid "44FFFFA601F8"
label "literals"
supplier "Logical View::documentation::runtime::enumerations::EnumerationLiteral"
quidu "44FFFF9E034B"
client_cardinality (value cardinality "1..*")
Containment "By Value"
is_navigable TRUE)
(object Role "$UNNAMED$1"
quid "44FFFFA601FA"
supplier "Logical View::documentation::runtime::enumerations::Enumeration"
quidu "44FFFF9401B6"
is_aggregate TRUE))))
logical_presentations (list unit_reference_list
(object ClassDiagram "Enumerations"
quid "456F5A3A020E"
title "Enumerations"
zoom 100
max_height 28350
max_width 21600
origin_x 0
origin_y 0
items (list diagram_item_list))))
(object Class_Category "collections"
quid "457009C300BA"
exportControl "Public"
logical_models (list unit_reference_list)
logical_presentations (list unit_reference_list
(object ClassDiagram "Collections"
quid "45110BA003BB"
title "Collections"
zoom 100
max_height 28350
max_width 21600
origin_x 0
origin_y 0
items (list diagram_item_list
(object NoteView @10
location (984, 293)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @10
location (265, 87)
fill_color 13434879
nlines 8
max_width 1403
label
|We need collection types, such as maps, sets, lists, ... Learn from java.util, C++ STL, ABAP internal tables, ...
|
|If we plan to tag structures with hints about expected access patterns, frequencies and data volume, maybe this type of information can also be used for collection types in order to select a good implementation strategy more or less automatically, freeing the developer from having to choose a collection type implementation over another.
)
line_color 3342489
fill_color 13434879
width 1463
height 425)))))
(object Class_Category "testWithRoles"
quid "453F6048033C"
exportControl "Public"
logical_models (list unit_reference_list
(object Class "BusinessPartner"
quid "453F606302EB")
(object Class "SalesOrder"
quid "453F6065033E")
(object Class "BankAccount"
quid "453F60680342")
(object Class "WorkAgreement"
quid "453F60E703E5")
(object Class "Address"
quid "453F61370119")
(object Class "Employee"
quid "455AC5840219")
(object Class "Customer"
quid "455AC5890270")
(object Class "Supplier"
quid "455AC58F03E1")
(object Class "Employer"
quid "455AC62D0280")
(object Association "$UNNAMED$2"
quid "453F60940359"
roles (list role_list
(object Role "$UNNAMED$3"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "453F6095022E"
supplier "Logical View::documentation::runtime::testWithRoles::SalesOrder"
quidu "453F6065033E"
is_navigable TRUE)
(object Role "buyer"
quid "453F60950230"
label "buyer"
supplier "Logical View::documentation::runtime::testWithRoles::Customer"
quidu "455AC5890270"
client_cardinality (value cardinality "1")
is_navigable TRUE)))
(object Association "$UNNAMED$4"
quid "453F60AC02D1"
roles (list role_list
(object Role "$UNNAMED$5"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "453F60AD0142"
supplier "Logical View::documentation::runtime::testWithRoles::SalesOrder"
quidu "453F6065033E"
is_navigable TRUE)
(object Role "seller"
quid "453F60AD0144"
label "seller"
supplier "Logical View::documentation::runtime::testWithRoles::Supplier"
quidu "455AC58F03E1"
client_cardinality (value cardinality "1")
is_navigable TRUE)))
(object Association "$UNNAMED$6"
quid "453F60BF027F"
roles (list role_list
(object Role "$UNNAMED$7"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "453F60C0017C"
supplier "Logical View::documentation::runtime::testWithRoles::SalesOrder"
quidu "453F6065033E"
is_navigable TRUE)
(object Role "vendor"
quid "453F60C0017E"
label "vendor"
supplier "Logical View::documentation::runtime::testWithRoles::Supplier"
quidu "455AC58F03E1"
client_cardinality (value cardinality "1")
is_navigable TRUE)))
(object Association "$UNNAMED$8"
quid "453F60F50164"
roles (list role_list
(object Role "employer"
quid "453F60F601A1"
label "employer"
supplier "Logical View::documentation::runtime::testWithRoles::Employer"
quidu "455AC62D0280"
client_cardinality (value cardinality "1")
is_navigable TRUE)
(object Role "$UNNAMED$9"
quid "453F60F601A3"
supplier "Logical View::documentation::runtime::testWithRoles::WorkAgreement"
quidu "453F60E703E5")))
(object Association "$UNNAMED$10"
quid "453F60F7013F"
roles (list role_list
(object Role "employee"
quid "453F60F80118"
label "employee"
supplier "Logical View::documentation::runtime::testWithRoles::Employee"
quidu "455AC5840219"
client_cardinality (value cardinality "1")
is_navigable TRUE)
(object Role "$UNNAMED$11"
quid "453F60F80122"
supplier "Logical View::documentation::runtime::testWithRoles::WorkAgreement"
quidu "453F60E703E5")))
(object Association "$UNNAMED$12"
quid "453F66CB00B8"
roles (list role_list
(object Role "streetAddress"
quid "453F66CC0240"
label "streetAddress"
supplier "Logical View::documentation::runtime::testWithRoles::Address"
quidu "453F61370119"
client_cardinality (value cardinality "0..1")
is_navigable TRUE)
(object Role "$UNNAMED$13"
quid "453F66CC024A"
supplier "Logical View::documentation::runtime::testWithRoles::BusinessPartner"
quidu "453F606302EB")))
(object Association "$UNNAMED$14"
quid "453F66CE0030"
roles (list role_list
(object Role "$UNNAMED$15"
quid "453F66CE0239"
supplier "Logical View::documentation::runtime::testWithRoles::BankAccount"
quidu "453F60680342"
client_cardinality (value cardinality "0..1")
is_navigable TRUE)
(object Role "$UNNAMED$16"
quid "453F66CE023B"
supplier "Logical View::documentation::runtime::testWithRoles::BusinessPartner"
quidu "453F606302EB")))
(object Association "$UNNAMED$17"
quid "455AC5D601F8"
stereotype "role"
roles (list role_list
(object Role "$UNNAMED$18"
quid "455AC5D70286"
supplier "Logical View::documentation::runtime::testWithRoles::Supplier"
quidu "455AC58F03E1"
Containment "By Value"
is_navigable TRUE)
(object Role "$UNNAMED$19"
quid "455AC5D7029B"
supplier "Logical View::documentation::runtime::testWithRoles::BusinessPartner"
quidu "453F606302EB"
is_aggregate TRUE)))
(object Association "$UNNAMED$20"
quid "455AC5EF00B4"
stereotype "role"
roles (list role_list
(object Role "$UNNAMED$21"
quid "455AC5F000E7"
supplier "Logical View::documentation::runtime::testWithRoles::Customer"
quidu "455AC5890270"
Containment "By Value"
is_navigable TRUE)
(object Role "$UNNAMED$22"
quid "455AC5F000F1"
supplier "Logical View::documentation::runtime::testWithRoles::BusinessPartner"
quidu "453F606302EB"
is_aggregate TRUE)))
(object Association "$UNNAMED$23"
quid "455AC5FD02F9"
stereotype "role"
roles (list role_list
(object Role "$UNNAMED$24"
quid "455AC5FE028C"
supplier "Logical View::documentation::runtime::testWithRoles::Employee"
quidu "455AC5840219"
Containment "By Value"
is_navigable TRUE)
(object Role "$UNNAMED$25"
quid "455AC5FE028E"
supplier "Logical View::documentation::runtime::testWithRoles::BusinessPartner"
quidu "453F606302EB"
is_aggregate TRUE)))
(object Association "$UNNAMED$26"
quid "455AC63202C3"
stereotype "role"
roles (list role_list
(object Role "$UNNAMED$27"
quid "455AC63301CA"
supplier "Logical View::documentation::runtime::testWithRoles::Employer"
quidu "455AC62D0280"
Containment "By Value"
is_navigable TRUE)
(object Role "$UNNAMED$28"
quid "455AC63301DF"
supplier "Logical View::documentation::runtime::testWithRoles::BusinessPartner"
quidu "453F606302EB"
is_aggregate TRUE))))
logical_presentations (list unit_reference_list
(object ClassDiagram "Test"
quid "453F605C03BD"
title "Test"
zoom 100
max_height 28350
max_width 21600
origin_x 0
origin_y 0
items (list diagram_item_list
(object NoteView @11
location (1224, 1862)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @11
location (49, 1365)
fill_color 13434879
nlines 19
max_width 2315
label
|A class may specify roles as separate classes. For example, a BusinessPartner may act in the role of an Employee or in the role of a Supplier. The respective role classes are themselves not special. However, the association from the class to its role class is somewhat special. It is marked here with the stereotype <<role>> and has the class as the composite parent and the role class as the composite child. Instances of the role classes thus cannot exist without an instance of the class of which they represent a role. The role classes can declare properties and take part in regular associations as usual classes can. This can be used to model structural features that are specific to the role, not the general concept.
|
|The class which has roles may have state that is relevant and needs to be maintained for an instance of that class only if that instance has one or more specific roles associated. For example, a BusinessPartner acting in the role of a Customer or an Employee may require the BankAccount information to be maintained. These constraints can be made explicit, ideally in a shorthand form (not requiring writing OCL for the average case). In this example, we've chosen a dependency (marked with the name "implies") from the <<role>> association to the feature (e.g., another association) which is required to be maintained when the role is present.
|
|With this setup, regular events will be raised for the role objects. Metadata-driven tools such as UI creation / extension tools may use the special nature of the <<role>> associations and "implies" dependencies to accumulate the metadata for a given role class. For example, if someone wants to build a UI for a role class, tools could implicitly aggregate the metadata of the "core" class (the class of which this is a role class) including all the features selected by the "implies" dependencies.
)
line_color 3342489
fill_color 13434879
width 2375
height 1006)
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::WorkAgreement" @12
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1010, 1277)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @12
location (849, 1227)
fill_color 13434879
nlines 1
max_width 322
justify 0
label "WorkAgreement")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453F60E703E5"
width 340
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::Address" @13
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (255, 614)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @13
location (163, 564)
fill_color 13434879
nlines 1
max_width 184
justify 0
label "Address")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453F61370119"
width 202
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::BankAccount" @14
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (650, 156)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @14
location (512, 106)
fill_color 13434879
nlines 1
max_width 276
justify 0
label "BankAccount")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453F60680342"
width 294
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::Employer" @15
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1064, 983)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @15
location (957, 933)
fill_color 13434879
nlines 1
max_width 214
justify 0
label "Employer")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "455AC62D0280"
width 232
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "$UNNAMED$8" @16
location (1066, 1130)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F60F50164"
roleview_list (list RoleViews
(object RoleView "employer" @17
Parent_View @16
location (277, -166)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @18
Parent_View @17
location (1180, 1122)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 191
justify 0
label "+employer"
pctDist 0.095238
height 114
orientation 1)
stereotype TRUE
line_color 3342489
quidu "453F60F601A1"
client @16
supplier @15
vertices (list Points
(1066, 1130)
(1066, 1045))
line_style 3
origin_attachment (1066, 1130)
terminal_attachment (1066, 1045)
label (object SegLabel @19
Parent_View @17
location (1099, 1078)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "1"
pctDist 0.607143
height 33
orientation 1))
(object RoleView "$UNNAMED$9" @20
Parent_View @16
location (277, -166)
stereotype TRUE
line_color 3342489
quidu "453F60F601A3"
client @16
supplier @12
vertices (list Points
(1066, 1130)
(1066, 1215))
line_style 3
origin_attachment (1066, 1130)
terminal_attachment (1066, 1215))))
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::Employee" @21
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (653, 960)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @21
location (546, 910)
fill_color 13434879
nlines 1
max_width 214
justify 0
label "Employee")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "455AC5840219"
width 232
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "$UNNAMED$10" @22
location (654, 1182)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F60F7013F"
roleview_list (list RoleViews
(object RoleView "employee" @23
Parent_View @22
location (-135, -114)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @24
Parent_View @23
location (788, 1071)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 216
justify 0
label "+employee"
pctDist 0.700000
height 134
orientation 1)
stereotype TRUE
line_color 3342489
quidu "453F60F80118"
client @22
supplier @21
vertices (list Points
(654, 1182)
(654, 1022))
line_style 3
origin_attachment (654, 1182)
terminal_attachment (654, 1022)
label (object SegLabel @25
Parent_View @23
location (708, 1039)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "1"
pctDist 0.900000
height 54
orientation 1))
(object RoleView "$UNNAMED$11" @26
Parent_View @22
location (-135, -114)
stereotype TRUE
line_color 3342489
quidu "453F60F80122"
client @22
supplier @12
vertices (list Points
(654, 1182)
(654, 1242)
(840, 1242))
line_style 3
origin_attachment (654, 1182)
terminal_attachment (840, 1242))))
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::Customer" @27
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1588, 184)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @27
location (1487, 134)
fill_color 13434879
nlines 1
max_width 202
justify 0
label "Customer")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "455AC5890270"
width 220
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::BusinessPartner" @28
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1018, 669)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @28
location (848, 619)
fill_color 13434879
nlines 1
max_width 340
justify 0
label "BusinessPartner")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453F606302EB"
width 358
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "$UNNAMED$12" @29
location (597, 631)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F66CB00B8"
roleview_list (list RoleViews
(object RoleView "streetAddress" @30
Parent_View @29
location (165, 459)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @31
Parent_View @30
location (518, 586)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 287
justify 0
label "+streetAddress"
pctDist 0.327801
height 46
orientation 1)
stereotype TRUE
line_color 3342489
quidu "453F66CC0240"
client @29
supplier @13
vertices (list Points
(597, 631)
(356, 631))
line_style 3
origin_attachment (597, 631)
terminal_attachment (356, 631)
label (object SegLabel @32
Parent_View @30
location (405, 673)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "0..1"
pctDist 0.796681
height 42
orientation 0))
(object RoleView "$UNNAMED$13" @33
Parent_View @29
location (165, 459)
stereotype TRUE
line_color 3342489
quidu "453F66CC024A"
client @29
supplier @28
vertices (list Points
(597, 631)
(839, 631))
line_style 3
origin_attachment (597, 631)
terminal_attachment (839, 631))))
(object AssociationViewNew "$UNNAMED$14" @34
location (833, 412)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F66CE0030"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$15" @35
Parent_View @34
location (401, 240)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F66CE0239"
client @34
supplier @14
vertices (list Points
(833, 412)
(694, 218))
line_style 0
label (object SegLabel @36
Parent_View @35
location (638, 245)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "0..1"
pctDist 1.050592
height 62
orientation 0))
(object RoleView "$UNNAMED$16" @37
Parent_View @34
location (401, 240)
stereotype TRUE
line_color 3342489
quidu "453F66CE023B"
client @34
supplier @28
vertices (list Points
(833, 412)
(973, 606))
line_style 0)))
(object AssociationViewNew "$UNNAMED$26" @38
location (1072, 825)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @39
Parent_View @38
location (974, 856)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<role>>"
pctDist -1.150000
height 31
orientation 1)
line_color 3342489
quidu "455AC63202C3"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$27" @40
Parent_View @38
location (-411, 156)
stereotype TRUE
line_color 3342489
quidu "455AC63301CA"
client @38
supplier @15
vertices (list Points
(1072, 825)
(1072, 921))
line_style 3
origin_attachment (1072, 825)
terminal_attachment (1072, 921))
(object RoleView "$UNNAMED$28" @41
Parent_View @38
location (-411, 156)
stereotype TRUE
line_color 3342489
quidu "455AC63301DF"
client @38
supplier @28
vertices (list Points
(1072, 825)
(1072, 730))
line_style 3
origin_attachment (1072, 825)
terminal_attachment (1072, 730))))
(object AssociationViewNew "$UNNAMED$23" @42
location (714, 722)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @43
Parent_View @42
location (571, 803)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<role>>"
pctDist -1.900000
height 81
orientation 1)
line_color 3342489
quidu "455AC5FD02F9"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$24" @44
Parent_View @42
location (-769, 53)
stereotype TRUE
line_color 3342489
quidu "455AC5FE028C"
client @42
supplier @21
vertices (list Points
(714, 722)
(654, 722)
(654, 898))
line_style 3
origin_attachment (714, 722)
terminal_attachment (654, 898))
(object RoleView "$UNNAMED$25" @45
Parent_View @42
location (-769, 53)
stereotype TRUE
line_color 3342489
quidu "455AC5FE028E"
client @42
supplier @28
vertices (list Points
(714, 722)
(839, 722))
line_style 3
origin_attachment (714, 722)
terminal_attachment (839, 722))))
(object AssociationViewNew "$UNNAMED$20" @46
location (1090, 244)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @47
Parent_View @46
location (1247, 155)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<role>>"
pctDist 3.133333
height 90
orientation 0)
line_color 3342489
quidu "455AC5EF00B4"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$21" @48
Parent_View @46
location (-393, -425)
stereotype TRUE
line_color 3342489
quidu "455AC5F000E7"
client @46
supplier @27
vertices (list Points
(1090, 244)
(1090, 184)
(1478, 184))
line_style 3
origin_attachment (1090, 244)
terminal_attachment (1478, 184))
(object RoleView "$UNNAMED$22" @49
Parent_View @46
location (-393, -425)
stereotype TRUE
line_color 3342489
quidu "455AC5F000F1"
client @46
supplier @28
vertices (list Points
(1090, 244)
(1090, 607))
line_style 3
origin_attachment (1090, 244)
terminal_attachment (1090, 607))))
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::SalesOrder" @50
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (2037, 680)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @50
location (1921, 630)
fill_color 13434879
nlines 1
max_width 232
justify 0
label "SalesOrder")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "453F6065033E"
width 250
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "$UNNAMED$2" @51
location (2039, 214)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F60940359"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$3" @52
Parent_View @51
location (1242, -474)
stereotype TRUE
line_color 3342489
quidu "453F6095022E"
client @51
supplier @50
vertices (list Points
(2039, 214)
(2039, 618))
line_style 3
origin_attachment (2039, 214)
terminal_attachment (2039, 618))
(object RoleView "buyer" @53
Parent_View @51
location (1242, -474)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @54
Parent_View @53
location (1814, 111)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 130
justify 0
label "+buyer"
pctDist 0.711656
height 41
orientation 1)
stereotype TRUE
line_color 3342489
quidu "453F60950230"
client @51
supplier @27
vertices (list Points
(2039, 214)
(2039, 151)
(1698, 151))
line_style 3
origin_attachment (2039, 214)
terminal_attachment (1698, 151)
label (object SegLabel @55
Parent_View @53
location (1716, 103)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "1"
pctDist 0.957055
height 49
orientation 1))))
(object ClassView "Class" "Logical View::documentation::runtime::testWithRoles::Supplier" @56
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1571, 680)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @56
location (1478, 630)
fill_color 13434879
nlines 1
max_width 186
justify 0
label "Supplier")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "455AC58F03E1"
width 204
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "$UNNAMED$17" @57
location (1333, 674)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @58
Parent_View @57
location (1339, 646)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<role>>"
pctDist 0.600000
height 29
orientation 0)
line_color 3342489
quidu "455AC5D601F8"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$18" @59
Parent_View @57
location (-150, 5)
stereotype TRUE
line_color 3342489
quidu "455AC5D70286"
client @57
supplier @56
vertices (list Points
(1333, 674)
(1469, 674))
line_style 3
origin_attachment (1333, 674)
terminal_attachment (1469, 674))
(object RoleView "$UNNAMED$19" @60
Parent_View @57
location (-150, 5)
stereotype TRUE
line_color 3342489
quidu "455AC5D7029B"
client @57
supplier @28
vertices (list Points
(1333, 674)
(1197, 674))
line_style 3
origin_attachment (1333, 674)
terminal_attachment (1197, 674))))
(object AssociationViewNew "$UNNAMED$6" @61
location (1792, 650)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F60BF027F"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$7" @62
Parent_View @61
location (995, -38)
stereotype TRUE
line_color 3342489
quidu "453F60C0017C"
client @61
supplier @50
vertices (list Points
(1792, 650)
(1912, 650))
line_style 3
origin_attachment (1792, 650)
terminal_attachment (1912, 650))
(object RoleView "vendor" @63
Parent_View @61
location (995, -38)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @64
Parent_View @63
location (1770, 628)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 146
justify 0
label "+vendor"
pctDist 0.184874
height 23
orientation 1)
stereotype TRUE
line_color 3342489
quidu "453F60C0017E"
client @61
supplier @56
vertices (list Points
(1792, 650)
(1673, 650))
line_style 3
origin_attachment (1792, 650)
terminal_attachment (1673, 650)
label (object SegLabel @65
Parent_View @63
location (1680, 625)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "1"
pctDist 0.938650
height 26
orientation 1))))
(object AssociationViewNew "$UNNAMED$4" @66
location (1792, 725)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype TRUE
line_color 3342489
quidu "453F60AC02D1"
roleview_list (list RoleViews
(object RoleView "$UNNAMED$5" @67
Parent_View @66
location (995, 37)
stereotype TRUE
line_color 3342489
quidu "453F60AD0142"
client @66
supplier @50
vertices (list Points
(1792, 725)
(1912, 725))
line_style 3
origin_attachment (1792, 725)
terminal_attachment (1912, 725))
(object RoleView "seller" @68
Parent_View @66
location (995, 37)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @69
Parent_View @68
location (1774, 695)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 122
justify 0
label "+seller"
pctDist 0.151261
height 31
orientation 1)
stereotype TRUE
line_color 3342489
quidu "453F60AD0144"
client @66
supplier @56
vertices (list Points
(1792, 725)
(1673, 725))
line_style 3
origin_attachment (1792, 725)
terminal_attachment (1673, 725)
label (object SegLabel @70
Parent_View @68
location (1681, 693)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 15
justify 0
label "1"
pctDist 0.936605
height 33
orientation 1))))
(object AssocConstraintView "" @71
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @71
location (773, 567)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "implies")
stereotype TRUE
line_color 3342489
client @42
supplier @34
vertices (list Points
(714, 722)
(833, 412))
line_style 0)
(object AssocConstraintView "" @72
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @72
location (1083, 543)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "implies")
stereotype TRUE
line_color 3342489
client @57
supplier @34
vertices (list Points
(1333, 674)
(833, 412))
line_style 0)
(object AssocConstraintView "" @73
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @73
location (962, 328)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "implies")
stereotype TRUE
line_color 3342489
client @46
supplier @34
vertices (list Points
(1090, 244)
(833, 412))
line_style 0)
(object AssocConstraintView "" @74
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @74
location (656, 677)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "implies")
stereotype TRUE
line_color 3342489
client @42
supplier @29
vertices (list Points
(714, 722)
(597, 631))
line_style 0)))))
(object Class_Category "testWithPolymorphicAssociations"
quid "4579745001F1"
exportControl "Public"
logical_models (list unit_reference_list
(object Class "A"
quid "457974660120"
operations (list Operations
(object Operation "a"
quid "457974900293"
concurrency "Sequential"
opExportControl "Public"
uid 0))
class_attributes (list class_attribute_list
(object ClassAttribute "AtoB"
quid "4579751C03C1"
stereotype "expose"
type ":b"
exportControl "Public")))
(object Class "C"
quid "457974670064"
used_nodes (list uses_relationship_list
(object Uses_Relationship
quid "45797D2C02CF"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::E"
quidu "45797CF50117")
(object Uses_Relationship
quid "457974A3018C"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::A"
quidu "457974660120")
(object Uses_Relationship
quid "45799DE70255"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::A"
quidu "457974660120"))
operations (list Operations
(object Operation "a"
quid "4579749501DC"
concurrency "Sequential"
opExportControl "Public"
uid 0)
(object Operation "c"
quid "4579773003DA"
concurrency "Sequential"
opExportControl "Public"
uid 0))
class_attributes (list class_attribute_list
(object ClassAttribute "CtoD"
quid "4579750C02B0"
stereotype "expose"
type ":b"
exportControl "Public")
(object ClassAttribute "AtoB"
quid "457D86D90303"
stereotype "expose"
type ":b"
exportControl "Public")))
(object Class "B"
quid "457974670367"
used_nodes (list uses_relationship_list
(object Uses_Relationship
quid "45799DD403DE"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::D"
quidu "457974680354"))
operations (list Operations
(object Operation "b"
quid "4579749A003F"
concurrency "Sequential"
opExportControl "Public"
uid 0)))
(object Class "D"
quid "457974680354"
used_nodes (list uses_relationship_list
(object Uses_Relationship
quid "457974A5024E"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::B"
quidu "457974670367")
(object Uses_Relationship
quid "45797D2D03D5"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::F"
quidu "45797CF700F2"))
operations (list Operations
(object Operation "b"
quid "4579749D012A"
concurrency "Sequential"
opExportControl "Public"
uid 0)
(object Operation "d"
quid "4579772D00C9"
concurrency "Sequential"
opExportControl "Public"
uid 0)))
(object Class "E"
quid "45797CF50117"
used_nodes (list uses_relationship_list
(object Uses_Relationship
quid "45797FB700C2"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::A"
quidu "457974660120"))
operations (list Operations
(object Operation "a"
quid "45797D0A0081"
concurrency "Sequential"
opExportControl "Public"
uid 0)
(object Operation "c"
quid "45797D270047"
concurrency "Sequential"
opExportControl "Public"
uid 0)
(object Operation "e"
quid "457D905100D8"
concurrency "Sequential"
opExportControl "Public"
uid 0))
class_attributes (list class_attribute_list
(object ClassAttribute "EtoF"
quid "457D78C40133"
stereotype "expose"
type ":b"
exportControl "Public")))
(object Class "F"
quid "45797CF700F2"
used_nodes (list uses_relationship_list
(object Uses_Relationship
quid "45797FB8011E"
stereotype "conformsTo"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::B"
quidu "457974670367"))
operations (list Operations
(object Operation "b"
quid "45797D0D0216"
concurrency "Sequential"
opExportControl "Public"
uid 0)
(object Operation "d"
quid "45797D290144"
concurrency "Sequential"
opExportControl "Public"
uid 0)
(object Operation "f"
quid "457D9032005B"
concurrency "Sequential"
opExportControl "Public"
uid 0)))
(object Association "AtoB"
quid "4579746A02C1"
roles (list role_list
(object Role "b"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "4579746B020E"
label "b"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::B"
quidu "457974670367"
is_navigable TRUE)
(object Role "a"
quid "4579746B0210"
label "a"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::A"
quidu "457974660120"
is_navigable TRUE))
Constraints "readonly")
(object Association "CtoD"
quid "4579746C002F"
roles (list role_list
(object Role "b"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "4579746C027E"
label "b"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::D"
quidu "457974680354"
is_navigable TRUE)
(object Role "a"
quid "4579746C0288"
label "a"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::C"
quidu "457974670064"
is_navigable TRUE)))
(object Association "EtoF"
quid "45797D4C011C"
roles (list role_list
(object Role "b"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "45797D4C036B"
label "b"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::F"
quidu "45797CF700F2"
is_navigable TRUE)
(object Role "a"
quid "45797D4C036D"
label "a"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::E"
quidu "45797CF50117"
is_navigable TRUE))
Constraints "readonly")
(object Association "CtoB"
quid "4579853B01D1"
roles (list role_list
(object Role "b"
attributes (list Attribute_Set
(object Attribute
tool "MOF"
name "sap2mof.store"
value ("RoleStoreKindSet" 203)))
quid "4579853B037F"
label "b"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::B"
quidu "457974670367"
is_navigable TRUE)
(object Role "a"
quid "4579853B0381"
label "a"
supplier "Logical View::documentation::runtime::testWithPolymorphicAssociations::C"
quidu "457974670064"
is_navigable TRUE))))
logical_presentations (list unit_reference_list
(object ClassDiagram "Test with Polymorphic Associations"
quid "4579745C022A"
title "Test with Polymorphic Associations"
zoom 100
max_height 28350
max_width 21600
origin_x 0
origin_y 0
items (list diagram_item_list
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @75
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1054, 135)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @75
location (973, 85)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "B")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974670367"
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::A" @76
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (268, 138)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @76
location (187, 88)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "A")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974660120"
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "AtoB" @77
location (661, 139)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @78
Parent_View @77
location (661, 80)
font (object Font
size 10
face "Arial"
bold FALSE
italics TRUE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 104
justify 0
label "AtoB"
pctDist 0.500000
height 60
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746A02C1"
roleview_list (list RoleViews
(object RoleView "b" @79
Parent_View @77
location (-95, -317)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @80
Parent_View @79
location (903, 98)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+b"
pctDist 0.800000
height 42
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746B020E"
client @77
supplier @75
vertices (list Points
(661, 139)
(964, 139))
line_style 3
origin_attachment (661, 139)
terminal_attachment (964, 139))
(object RoleView "a" @81
Parent_View @77
location (-95, -317)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @82
Parent_View @81
location (419, 98)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+a"
pctDist 0.800000
height 42
orientation 1)
stereotype TRUE
line_color 3342489
quidu "4579746B0210"
client @77
supplier @76
vertices (list Points
(661, 139)
(358, 139))
line_style 3
origin_attachment (661, 139)
terminal_attachment (358, 139))))
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @83
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1066, 507)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @83
location (985, 457)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "D")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974680354"
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @84
ShowCompartmentStereotypes TRUE
IncludeOperation TRUE
location (273, 507)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @84
location (192, 457)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "C")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974670064"
compartment (object Compartment
Parent_View @84
location (192, 518)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
icon_style "Icon"
fill_color 13434879
anchor 2
nlines 1
max_width 0
compartmentItems (list Compartment
"<<expose>> + CtoD : :b"))
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "CtoD" @85
location (669, 507)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @86
Parent_View @85
location (669, 448)
font (object Font
size 10
face "Arial"
bold FALSE
italics TRUE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 104
justify 0
label "CtoD"
pctDist 0.500000
height 60
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746C002F"
roleview_list (list RoleViews
(object RoleView "b" @87
Parent_View @85
location (-150, -737)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @88
Parent_View @87
location (914, 466)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+b"
pctDist 0.800000
height 42
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746C027E"
client @85
supplier @83
vertices (list Points
(669, 507)
(976, 507))
line_style 3
origin_attachment (669, 507)
terminal_attachment (976, 507))
(object RoleView "a" @89
Parent_View @85
location (-150, -737)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @90
Parent_View @89
location (425, 466)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+a"
pctDist 0.800000
height 42
orientation 1)
stereotype TRUE
line_color 3342489
quidu "4579746C0288"
client @85
supplier @84
vertices (list Points
(669, 507)
(363, 507))
line_style 3
origin_attachment (669, 507)
terminal_attachment (363, 507))))
(object UsesView "" @91
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @91
location (1060, 320)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "")
stereotype (object SegLabel @92
Parent_View @91
location (954, 245)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.525000
height 177
orientation 0)
line_color 3342489
quidu "457974A5024E"
client @83
supplier @75
vertices (list Points
(1060, 444)
(1060, 196))
line_style 3
origin_attachment (1060, 444)
terminal_attachment (1060, 196))
(object NoteView @93
location (1084, 1366)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @93
location (200, 822)
fill_color 13434879
nlines 21
max_width 1733
label
|Under which conditions should C conform to A? C would need to expose an association end that is equal to AtoB::b.
|
|Given, that it should be possible to have a separate but conforming nested structure, it would need to be sufficient to expose an association end with *conforming* type.
|
|If C conforms to A, this means that a C can be used wherever an A is required. In particular, an AtoB link could be established with a C instance in the AtoB::a end.
|
|This would result in the somewhat bizarre situation that navigating from a B via AtoB to a C and from there looking up what's in the b "property", now via the CtoD association, the B instance where navigation started would not be found.
|
|A B cannot be inserted in the CtoD::b role because its type B does not conform to the type D of end CtoD::b.
|
|Statically referring to A::b could polymorphically mean AtoB::b for an A instance or CtoD::b on a C instance that conforms to A. It seem unacceptable to require C to expose AtoB::b instead because C may live in a completely different package with different lifecycle and have to use its own association graph.
)
line_color 3342489
fill_color 13434879
width 1793
height 1100)
(object NoteView @94
location (1696, 331)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @94
location (1187, 100)
fill_color 13434879
nlines 9
max_width 983
label "C does NOT conform to A because the association end it exposes is of a different type than the end exposed by A, even though it conforms to the type of the end exposed by A. The reason is that this would allow for catcalls when adding B instances to CtoD statically using A.b which pulymorphically would be mapped to CtoD.b in case the instance on the A side is actually a C. This would add an object to CtoD::b which does not conform to CtoD::b's type D.")
line_color 3342489
fill_color 13434879
width 1043
height 475)))
(object ClassDiagram "Example with multiple conforming classes"
quid "45797CDB0192"
title "Example with multiple conforming classes"
zoom 100
max_height 28350
max_width 21600
origin_x 0
origin_y 0
items (list diagram_item_list
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @95
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1434, 142)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @95
location (1353, 92)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "B")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974670367"
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::A" @96
ShowCompartmentStereotypes TRUE
IncludeOperation TRUE
location (608, 146)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @96
location (527, 96)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "A")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974660120"
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "AtoB" @97
location (1021, 153)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @98
Parent_View @97
location (1021, 94)
font (object Font
size 10
face "Arial"
bold FALSE
italics TRUE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 104
justify 0
label "AtoB"
pctDist 0.500000
height 60
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746A02C1"
label (object SegLabel @99
Parent_View @97
location (1019, 179)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 300
justify 0
label "{readonly}"
pctDist 0.483333
height 26
orientation 1)
roleview_list (list RoleViews
(object RoleView "b" @100
Parent_View @97
location (265, -303)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @101
Parent_View @100
location (1278, 112)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+b"
pctDist 0.800000
height 42
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746B020E"
client @97
supplier @95
vertices (list Points
(1021, 153)
(1344, 153))
line_style 3
origin_attachment (1021, 153)
terminal_attachment (1344, 153))
(object RoleView "a" @102
Parent_View @97
location (265, -303)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @103
Parent_View @102
location (764, 112)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+a"
pctDist 0.800000
height 42
orientation 1)
stereotype TRUE
line_color 3342489
quidu "4579746B0210"
client @97
supplier @96
vertices (list Points
(1021, 153)
(698, 153))
line_style 3
origin_attachment (1021, 153)
terminal_attachment (698, 153))))
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::F" @104
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1116, 415)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @104
location (1035, 365)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "F")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "45797CF700F2"
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::E" @105
ShowCompartmentStereotypes TRUE
IncludeOperation TRUE
location (169, 415)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @105
location (88, 365)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "E")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "45797CF50117"
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "EtoF" @106
location (642, 415)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @107
Parent_View @106
location (784, 391)
font (object Font
size 10
face "Arial"
bold FALSE
italics TRUE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 100
justify 0
label "EtoF"
pctDist 2.883333
height 25
orientation 0)
stereotype TRUE
line_color 3342489
quidu "45797D4C011C"
label (object SegLabel @108
Parent_View @106
location (889, 450)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 2
anchor_loc 1
nlines 1
max_width 300
justify 0
label "{readonly}"
pctDist 4.616667
height 35
orientation 1)
roleview_list (list RoleViews
(object RoleView "b" @109
Parent_View @106
location (402, -366)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @110
Parent_View @109
location (994, 373)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+b"
pctDist 0.917914
height 43
orientation 0)
stereotype TRUE
line_color 3342489
quidu "45797D4C036B"
client @106
supplier @104
vertices (list Points
(642, 415)
(1026, 415))
line_style 3
origin_attachment (642, 415)
terminal_attachment (1026, 415))
(object RoleView "a" @111
Parent_View @106
location (402, -366)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @112
Parent_View @111
location (324, 388)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+a"
pctDist 0.830287
height 28
orientation 1)
stereotype TRUE
line_color 3342489
quidu "45797D4C036D"
client @106
supplier @105
vertices (list Points
(642, 415)
(259, 415))
line_style 3
origin_attachment (642, 415)
terminal_attachment (259, 415))))
(object NoteView @113
location (985, 1406)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @113
location (37, 1093)
fill_color 13434879
nlines 12
max_width 1860
label
|Here, C conforms to both, A and E. We assume in this example that no class exposes an association end. The question now is which association would be selected in case an end named "b" is navigated starting on a C instance.
|
|We have to distinguish, what the association is to which "b" belongs statically (at compile time). Because no ends are exposed, no association will work polymorphically. Thus, the static reference to the association whose "b" is to be used decides which association is navigated at runtime.
|
|Tools may warn developers of any ambiguity during design-time and provide auto-completion if the developer only specifies the end name. However, if the static type of the object where navigation starts would, e.g., be A, there is no way to use CtoD.b because A instances can never occur in role "a" on CtoD.
)
line_color 3342489
fill_color 13434879
width 1920
height 638)
(object UsesView "" @114
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @115
Parent_View @114
location (273, 221)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.275410
height 110
orientation 0)
line_color 3342489
quidu "45797FB700C2"
client @105
supplier @96
vertices (list Points
(259, 357)
(517, 200))
line_style 0)
(object UsesView "" @116
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @117
Parent_View @116
location (1119, 270)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.006240
height 108
orientation 0)
line_color 3342489
quidu "45797FB8011E"
client @104
supplier @95
vertices (list Points
(1187, 352)
(1360, 204))
line_style 0)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @118
ShowCompartmentStereotypes TRUE
IncludeOperation TRUE
location (640, 882)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @118
location (559, 832)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "C")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974670064"
height 124
annotation 8
autoResize TRUE)
(object UsesView "" @119
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @120
Parent_View @119
location (427, 677)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.425354
height 5
orientation 0)
line_color 3342489
quidu "45797D2C02CF"
client @118
supplier @105
vertices (list Points
(577, 819)
(231, 477))
line_style 0)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @121
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1425, 894)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @121
location (1344, 844)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "D")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974680354"
height 124
annotation 8
autoResize TRUE)
(object UsesView "" @122
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @122
location (1416, 517)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "")
stereotype (object SegLabel @123
Parent_View @122
location (1310, 442)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.432532
height 60
orientation 0)
line_color 3342489
quidu "457974A5024E"
client @121
supplier @95
vertices (list Points
(1416, 831)
(1416, 204))
line_style 3
origin_attachment (1416, 831)
terminal_attachment (1416, 204))
(object UsesView "" @124
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
stereotype (object SegLabel @125
Parent_View @124
location (1169, 629)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.679156
height 72
orientation 0)
line_color 3342489
quidu "45797D2D03D5"
client @121
supplier @104
vertices (list Points
(1383, 831)
(1156, 477))
line_style 0)
(object AssociationViewNew "CtoD" @126
location (1032, 888)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @127
Parent_View @126
location (1032, 829)
font (object Font
size 10
face "Arial"
bold FALSE
italics TRUE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 450
justify 0
label "CtoD"
pctDist 0.500000
height 60
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746C002F"
roleview_list (list RoleViews
(object RoleView "a" @128
Parent_View @126
location (-527, -122)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @129
Parent_View @128
location (791, 847)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+a"
pctDist 0.800000
height 42
orientation 1)
stereotype TRUE
line_color 3342489
quidu "4579746C0288"
client @126
supplier @118
vertices (list Points
(1032, 888)
(730, 888))
line_style 3
origin_attachment (1032, 888)
terminal_attachment (730, 888))
(object RoleView "b" @130
Parent_View @126
location (-527, -122)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @131
Parent_View @130
location (1274, 847)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 1
anchor_loc 1
nlines 1
max_width 60
justify 0
label "+b"
pctDist 0.800000
height 42
orientation 0)
stereotype TRUE
line_color 3342489
quidu "4579746C027E"
client @126
supplier @121
vertices (list Points
(1032, 888)
(1335, 888))
line_style 3
origin_attachment (1032, 888)
terminal_attachment (1335, 888))))
(object UsesView "" @132
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @132
location (628, 514)
anchor_loc 1
nlines 1
max_width 450
justify 0
label "")
stereotype (object SegLabel @133
Parent_View @132
location (522, 439)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
anchor 10
anchor_loc 1
nlines 1
max_width 450
justify 0
label "<<conformsTo>>"
pctDist 0.410305
height 15
orientation 0)
line_color 3342489
quidu "457974A3018C"
client @118
supplier @96
vertices (list Points
(628, 820)
(628, 208))
line_style 3
origin_attachment (628, 820)
terminal_attachment (628, 208))))
(object ClassDiagram "Example with conformance"
quid "4579852B032C"
title "Example with conformance"
zoom 100
max_height 28350
max_width 21600
origin_x 75
origin_y 0
items (list diagram_item_list
(object NoteView @134
location (896, 1102)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @134
location (12, 708)
fill_color 13434879
nlines 15
max_width 1733
label
|C conforms to A because it exposes an end with equal navigability, multiplicity and orderedness and having the same type as that of the end exposed by A. If A.[AtoB::]b is used statically, for C instances this would map to C.[CtoB::]b polymorphically.
|
|Navigating B.a must be disambiguated during design time and will not do any polymorphic resolution because B does not expose any association end.
|
|This strategy allows redefining an exposed association end by adding another association CtoB which connects to B and has another association end of the same name/multiplicity/orderedness and with a conforming type than that already connected to B (AtoB::a).
|
|Issue: If there are already existing links of AtoB that have C instances in their "a" role, then those are no longer considered when A.b is used, but they would appear when AtoB is navigated explicitly.
)
line_color 3342489
fill_color 13434879
width 1793
height 800)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @135
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1082, 512)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @135
location (1001, 462)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "D")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974680354"
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::A" @136
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (281, 143)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @136
location (200, 93)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "A")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974660120"
height 124
annotation 8
autoResize TRUE)
(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @137
ShowCompartmentStereotypes TRUE
IncludeAttribute TRUE
IncludeOperation TRUE
location (1070, 140)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object ItemLabel
Parent_View @137
location (989, 90)
fill_color 13434879
nlines 1
max_width 162
justify 0
label "B")
icon_style "Icon"
line_color 3342489
fill_color 13434879
quidu "457974670367"
height 124
annotation 8
autoResize TRUE)
(object AssociationViewNew "AtoB" @138
location (675, 144)
font (object Font
size 10
face "Arial"
bold FALSE
italics FALSE
underline FALSE
strike FALSE
color 0
default_color TRUE)
label (object SegLabel @139
Parent_View @138
location (675, 85)
font (object Font
size 10
face "Arial"
bold FALSE
italics TRUE
underline FALSE
strike FALSE
color 0