
(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
				    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" @140
				    Parent_View 	@138
				    location   	(-81, -312)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @141
					Parent_View 	@140
					location   	(918, 104)
					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.796537
					height     	41
					orientation 	0)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4579746B020E"
				    client     	@138
				    supplier   	@137
				    vertices   	(list Points
					(675, 144)
					(980, 144))
				    line_style 	3
				    origin_attachment 	(675, 144)
				    terminal_attachment 	(980, 144))
				(object RoleView "a" @142
				    Parent_View 	@138
				    location   	(-81, -312)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @143
					Parent_View 	@142
					location   	(433, 103)
					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     	@138
				    supplier   	@136
				    vertices   	(list Points
					(675, 144)
					(371, 144))
				    line_style 	3
				    origin_attachment 	(675, 144)
				    terminal_attachment 	(371, 144))))
			(object UsesView "" @144
			    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 	@144
				location   	(1076, 326)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @145
				Parent_View 	@144
				location   	(970, 251)
				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.559006
				height     	6
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A5024E"
			    client     	@135
			    supplier   	@137
			    vertices   	(list Points
				(1076, 450)
				(1076, 202))
			    line_style 	3
			    origin_attachment 	(1076, 450)
			    terminal_attachment 	(1076, 202))
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @146
			    ShowCompartmentStereotypes 	TRUE
			    IncludeOperation 	TRUE
			    location   	(289, 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 	@146
				location   	(208, 462)
				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 	@146
				location   	(208, 523)
				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 "CtoB" @147
			    location   	(679, 324)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @148
				Parent_View 	@147
				location   	(679, 265)
				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      	"CtoB"
				pctDist    	0.500000
				height     	60
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"4579853B01D1"
			    roleview_list 	(list RoleViews
				(object RoleView "b" @149
				    Parent_View 	@147
				    location   	(73, -302)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @150
					Parent_View 	@149
					location   	(911, 252)
					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.722111
					height     	34
					orientation 	1)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4579853B037F"
				    client     	@147
				    supplier   	@137
				    vertices   	(list Points
					(679, 324)
					(979, 182))
				    line_style 	0)
				(object RoleView "a" @151
				    Parent_View 	@147
				    location   	(73, -302)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @152
					Parent_View 	@151
					location   	(423, 401)
					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      	"4579853B0381"
				    client     	@147
				    supplier   	@146
				    vertices   	(list Points
					(679, 324)
					(379, 467))
				    line_style 	0)))
			(object UsesView "" @153
			    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 	@153
				location   	(285, 328)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @154
				Parent_View 	@153
				location   	(179, 253)
				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.481481
				height     	126
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A3018C"
			    client     	@146
			    supplier   	@136
			    vertices   	(list Points
				(285, 450)
				(285, 205))
			    line_style 	3
			    origin_attachment 	(285, 450)
			    terminal_attachment 	(285, 205))))
		(object ClassDiagram "Bidirectional Conforms"
		    quid       	"45799DC300EB"
		    title      	"Bidirectional Conforms"
		    zoom       	100
		    max_height 	28350
		    max_width  	21600
		    origin_x   	75
		    origin_y   	0
		    items      	(list diagram_item_list
			(object NoteView @155
			    location   	(952, 1322)
			    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 	@155
				location   	(68, 778)
				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 ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @156
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1250, 148)
			    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 	@156
				location   	(1169, 98)
				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" @157
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(461, 151)
			    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 	@157
				location   	(380, 101)
				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" @158
			    location   	(855, 152)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @159
				Parent_View 	@158
				location   	(855, 93)
				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" @160
				    Parent_View 	@158
				    location   	(99, -304)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @161
					Parent_View 	@160
					location   	(1099, 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  	60
					justify    	0
					label      	"+b"
					pctDist    	0.800000
					height     	42
					orientation 	0)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4579746B020E"
				    client     	@158
				    supplier   	@156
				    vertices   	(list Points
					(855, 152)
					(1160, 152))
				    line_style 	3
				    origin_attachment 	(855, 152)
				    terminal_attachment 	(1160, 152))
				(object RoleView "a" @162
				    Parent_View 	@158
				    location   	(99, -304)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @163
					Parent_View 	@162
					location   	(613, 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  	60
					justify    	0
					label      	"+a"
					pctDist    	0.800000
					height     	42
					orientation 	1)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4579746B0210"
				    client     	@158
				    supplier   	@157
				    vertices   	(list Points
					(855, 152)
					(551, 152))
				    line_style 	3
				    origin_attachment 	(855, 152)
				    terminal_attachment 	(551, 152))))
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @164
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    location   	(1262, 520)
			    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 	@164
				location   	(1181, 470)
				fill_color 	13434879
				nlines     	1
				max_width  	162
				justify    	0
				label      	"D")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"457974680354"
			    compartment 	(object Compartment
				Parent_View 	@164
				location   	(1181, 531)
				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
				    "+ b()"))
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @165
			    ShowCompartmentStereotypes 	TRUE
			    IncludeOperation 	TRUE
			    location   	(469, 520)
			    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 	@165
				location   	(388, 470)
				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 	@165
				location   	(388, 531)
				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" @166
			    location   	(865, 520)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @167
				Parent_View 	@166
				location   	(865, 461)
				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" @168
				    Parent_View 	@166
				    location   	(46, -724)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @169
					Parent_View 	@168
					location   	(1110, 479)
					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     	@166
				    supplier   	@164
				    vertices   	(list Points
					(865, 520)
					(1172, 520))
				    line_style 	3
				    origin_attachment 	(865, 520)
				    terminal_attachment 	(1172, 520))
				(object RoleView "a" @170
				    Parent_View 	@166
				    location   	(46, -724)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @171
					Parent_View 	@170
					location   	(621, 479)
					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     	@166
				    supplier   	@165
				    vertices   	(list Points
					(865, 520)
					(559, 520))
				    line_style 	3
				    origin_attachment 	(865, 520)
				    terminal_attachment 	(559, 520))))
			(object UsesView "" @172
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @173
				Parent_View 	@172
				location   	(1476, 332)
				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.493750
				height     	179
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45799DD403DE"
			    client     	@156
			    supplier   	@164
			    vertices   	(list Points
				(1297, 209)
				(1297, 458))
			    line_style 	3
			    origin_attachment 	(1297, 209)
			    terminal_attachment 	(1297, 458))
			(object UsesView "" @174
			    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 	@174
				location   	(1214, 334)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @175
				Parent_View 	@174
				location   	(1108, 259)
				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.591398
				height     	163
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A5024E"
			    client     	@164
			    supplier   	@156
			    vertices   	(list Points
				(1214, 458)
				(1214, 210))
			    line_style 	3
			    origin_attachment 	(1214, 458)
			    terminal_attachment 	(1214, 210))
			(object UsesView "" @176
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @177
				Parent_View 	@176
				location   	(288, 354)
				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.425926
				height     	178
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45799DE70255"
			    client     	@165
			    supplier   	@157
			    vertices   	(list Points
				(465, 458)
				(465, 213))
			    line_style 	3
			    origin_attachment 	(465, 458)
			    terminal_attachment 	(465, 213))
			(object NoteView @178
			    location   	(1994, 340)
			    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 	@178
				location   	(1675, 31)
				fill_color 	13434879
				nlines     	12
				max_width  	602
				label      	
|B and D conform to each other mutually. Thus, the exposed end CtoD.b conforms to AtoB.b for both, read and write access.
|
|Had AtoB only been a readonly association (or the exposed end constrained to readonly access), then CtoD.b would have been conforming even if B did not conform to D.
				)
			    line_color 	3342489
			    fill_color 	13434879
			    width      	662
			    height     	631)))
		(object ClassDiagram "Multiple conforming classes with exposure"
		    quid       	"457D788B0326"
		    title      	"Multiple conforming classes with exposure"
		    zoom       	100
		    max_height 	28350
		    max_width  	21600
		    origin_x   	119
		    origin_y   	3
		    items      	(list diagram_item_list
			(object NoteView @179
			    location   	(1332, 1481)
			    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 	@179
				location   	(378, 1247)
				fill_color 	13434879
				nlines     	9
				max_width  	1872
				label      	
|Here, C conforms to both, A and E because all expose an end b with equal multiplicity, composition and navigability, and AtoB::b and EtoF::b are both readonly, thus it is sufficient for CtoD::b that its end type D conforms to F and B and not vice versa.
|
|It is assumed that statically, the association end AtoB::b is used starting at type A. The actual type of the instance where navigation starts is assumed to be C.
|
|This actual type C exposes an end that conforms to the AtoB::b end exposed by A which is used during compile time to specify the navigation. Therefore, CtoD::b is used at runtime to execute the navigation.
				)
			    line_color 	3342489
			    fill_color 	13434879
			    width      	1932
			    height     	481)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @180
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1784, 248)
			    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 	@180
				location   	(1703, 198)
				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" @181
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(958, 252)
			    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 	@181
				location   	(877, 202)
				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" @182
			    location   	(1371, 259)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @183
				Parent_View 	@182
				location   	(1371, 200)
				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 @184
				Parent_View 	@182
				location   	(1363, 278)
				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.383333
				height     	19
				orientation 	1)
			    roleview_list 	(list RoleViews
				(object RoleView "b" @185
				    Parent_View 	@182
				    location   	(615, -197)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @186
					Parent_View 	@185
					location   	(1628, 218)
					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     	@182
				    supplier   	@180
				    vertices   	(list Points
					(1371, 259)
					(1694, 259))
				    line_style 	3
				    origin_attachment 	(1371, 259)
				    terminal_attachment 	(1694, 259))
				(object RoleView "a" @187
				    Parent_View 	@182
				    location   	(615, -197)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @188
					Parent_View 	@187
					location   	(1114, 218)
					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     	@182
				    supplier   	@181
				    vertices   	(list Points
					(1371, 259)
					(1048, 259))
				    line_style 	3
				    origin_attachment 	(1371, 259)
				    terminal_attachment 	(1048, 259))))
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::F" @189
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1466, 521)
			    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 	@189
				location   	(1385, 471)
				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" @190
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(362, 559)
			    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 	@190
				location   	(281, 509)
				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 UsesView "" @191
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @192
				Parent_View 	@191
				location   	(277, 495)
				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.318200
				height     	95
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45797FB700C2"
			    client     	@190
			    supplier   	@181
			    vertices   	(list Points
				(452, 510)
				(867, 296))
			    line_style 	0)
			(object AssociationViewNew "EtoF" @193
			    location   	(914, 560)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @194
				Parent_View 	@193
				location   	(1056, 536)
				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 @195
				Parent_View 	@193
				location   	(1080, 589)
				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    	3.266667
				height     	29
				orientation 	1)
			    roleview_list 	(list RoleViews
				(object RoleView "b" @196
				    Parent_View 	@193
				    location   	(674, -221)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @197
					Parent_View 	@196
					location   	(1338, 518)
					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     	@193
				    supplier   	@189
				    vertices   	(list Points
					(914, 560)
					(1376, 560))
				    line_style 	3
				    origin_attachment 	(914, 560)
				    terminal_attachment 	(1376, 560))
				(object RoleView "a" @198
				    Parent_View 	@193
				    location   	(674, -221)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @199
					Parent_View 	@198
					location   	(525, 531)
					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.842784
					height     	30
					orientation 	1)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"45797D4C036D"
				    client     	@193
				    supplier   	@190
				    vertices   	(list Points
					(914, 560)
					(452, 560))
				    line_style 	3
				    origin_attachment 	(914, 560)
				    terminal_attachment 	(452, 560))))
			(object UsesView "" @200
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @201
				Parent_View 	@200
				location   	(1504, 358)
				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.174686
				height     	99
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45797FB8011E"
			    client     	@189
			    supplier   	@180
			    vertices   	(list Points
				(1537, 458)
				(1710, 310))
			    line_style 	0)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @202
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(990, 988)
			    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 	@202
				location   	(909, 938)
				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 "" @203
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @204
				Parent_View 	@203
				location   	(707, 800)
				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     	@202
			    supplier   	@190
			    vertices   	(list Points
				(899, 926)
				(452, 620))
			    line_style 	0)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @205
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1775, 1000)
			    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 	@205
				location   	(1694, 950)
				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 "" @206
			    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 	@206
				location   	(1766, 624)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @207
				Parent_View 	@206
				location   	(1660, 549)
				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.616236
				height     	184
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A5024E"
			    client     	@205
			    supplier   	@180
			    vertices   	(list Points
				(1766, 938)
				(1766, 309))
			    line_style 	3
			    origin_attachment 	(1766, 938)
			    terminal_attachment 	(1766, 309))
			(object UsesView "" @208
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @209
				Parent_View 	@208
				location   	(1519, 735)
				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     	@205
			    supplier   	@189
			    vertices   	(list Points
				(1733, 937)
				(1506, 583))
			    line_style 	0)
			(object AssociationViewNew "CtoD" @210
			    location   	(1382, 994)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @211
				Parent_View 	@210
				location   	(1382, 935)
				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" @212
				    Parent_View 	@210
				    location   	(-177, -16)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @213
					Parent_View 	@212
					location   	(1141, 953)
					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     	@210
				    supplier   	@202
				    vertices   	(list Points
					(1382, 994)
					(1080, 994))
				    line_style 	3
				    origin_attachment 	(1382, 994)
				    terminal_attachment 	(1080, 994))
				(object RoleView "b" @214
				    Parent_View 	@210
				    location   	(-177, -16)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @215
					Parent_View 	@214
					location   	(1624, 953)
					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     	@210
				    supplier   	@205
				    vertices   	(list Points
					(1382, 994)
					(1685, 994))
				    line_style 	3
				    origin_attachment 	(1382, 994)
				    terminal_attachment 	(1685, 994))))
			(object UsesView "" @216
			    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 	@216
				location   	(978, 619)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @217
				Parent_View 	@216
				location   	(872, 544)
				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.302521
				height     	168
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A3018C"
			    client     	@202
			    supplier   	@181
			    vertices   	(list Points
				(978, 925)
				(978, 313))
			    line_style 	3
			    origin_attachment 	(978, 925)
			    terminal_attachment 	(978, 313))))
		(object ClassDiagram "Covariant Readonly Conformance"
		    quid       	"457D82DD037F"
		    title      	"Covariant Readonly Conformance"
		    zoom       	100
		    max_height 	28350
		    max_width  	21600
		    origin_x   	0
		    origin_y   	3
		    items      	(list diagram_item_list
			(object NoteView @218
			    location   	(1655, 145)
			    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 	@218
				location   	(1342, 57)
				fill_color 	13434879
				nlines     	3
				max_width  	590
				label      	"B conforms to D. Since AtoB is readonly, the exposed end CtoD.b conforms to AtoB.b.")
			    line_color 	3342489
			    fill_color 	13434879
			    width      	650
			    height     	188)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @219
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1146, 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 	@219
				location   	(1065, 93)
				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" @220
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(357, 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 	@220
				location   	(276, 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" @221
			    location   	(751, 147)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @222
				Parent_View 	@221
				location   	(751, 88)
				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 @223
				Parent_View 	@221
				location   	(752, 181)
				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.516667
				height     	34
				orientation 	1)
			    roleview_list 	(list RoleViews
				(object RoleView "b" @224
				    Parent_View 	@221
				    location   	(-5, -309)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @225
					Parent_View 	@224
					location   	(995, 106)
					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     	@221
				    supplier   	@219
				    vertices   	(list Points
					(751, 147)
					(1056, 147))
				    line_style 	3
				    origin_attachment 	(751, 147)
				    terminal_attachment 	(1056, 147))
				(object RoleView "a" @226
				    Parent_View 	@221
				    location   	(-5, -309)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @227
					Parent_View 	@226
					location   	(509, 106)
					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     	@221
				    supplier   	@220
				    vertices   	(list Points
					(751, 147)
					(447, 147))
				    line_style 	3
				    origin_attachment 	(751, 147)
				    terminal_attachment 	(447, 147))))
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @228
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1158, 515)
			    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 	@228
				location   	(1077, 465)
				fill_color 	13434879
				nlines     	1
				max_width  	162
				justify    	0
				label      	"D")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"457974680354"
			    compartment 	(object Compartment
				Parent_View 	@228
				location   	(1077, 526)
				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
				    "+ b()"))
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @229
			    ShowCompartmentStereotypes 	TRUE
			    IncludeOperation 	TRUE
			    location   	(365, 515)
			    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 	@229
				location   	(284, 465)
				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 	@229
				location   	(284, 526)
				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 UsesView "" @230
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @231
				Parent_View 	@230
				location   	(184, 349)
				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.425926
				height     	178
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45799DE70255"
			    client     	@229
			    supplier   	@220
			    vertices   	(list Points
				(361, 453)
				(361, 208))
			    line_style 	3
			    origin_attachment 	(361, 453)
			    terminal_attachment 	(361, 208))
			(object AssociationViewNew "CtoD" @232
			    location   	(761, 515)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @233
				Parent_View 	@232
				location   	(761, 456)
				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" @234
				    Parent_View 	@232
				    location   	(-58, -729)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @235
					Parent_View 	@234
					location   	(1006, 474)
					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     	@232
				    supplier   	@228
				    vertices   	(list Points
					(761, 515)
					(1068, 515))
				    line_style 	3
				    origin_attachment 	(761, 515)
				    terminal_attachment 	(1068, 515))
				(object RoleView "a" @236
				    Parent_View 	@232
				    location   	(-58, -729)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @237
					Parent_View 	@236
					location   	(517, 474)
					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     	@232
				    supplier   	@229
				    vertices   	(list Points
					(761, 515)
					(455, 515))
				    line_style 	3
				    origin_attachment 	(761, 515)
				    terminal_attachment 	(455, 515))))
			(object UsesView "" @238
			    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 	@238
				location   	(1149, 328)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @239
				Parent_View 	@238
				location   	(1043, 253)
				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.496894
				height     	169
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A5024E"
			    client     	@228
			    supplier   	@219
			    vertices   	(list Points
				(1149, 452)
				(1149, 204))
			    line_style 	3
			    origin_attachment 	(1149, 452)
			    terminal_attachment 	(1149, 204))))
		(object ClassDiagram "Simplest Case"
		    quid       	"457D86C80182"
		    title      	"Simplest Case"
		    zoom       	100
		    max_height 	28350
		    max_width  	21600
		    origin_x   	0
		    origin_y   	0
		    items      	(list diagram_item_list
			(object NoteView @240
			    location   	(1084, 1209)
			    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 	@240
				location   	(200, 815)
				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" @241
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1064, 506)
			    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 	@241
				location   	(983, 456)
				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" @242
			    ShowCompartmentStereotypes 	TRUE
			    IncludeOperation 	TRUE
			    location   	(271, 506)
			    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 	@242
				location   	(190, 456)
				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 	@242
				location   	(190, 517)
				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>> + AtoB : :b"))
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @243
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1052, 134)
			    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 	@243
				location   	(971, 84)
				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" @244
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(263, 137)
			    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 	@244
				location   	(182, 87)
				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 UsesView "" @245
			    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 	@245
				location   	(267, 322)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @246
				Parent_View 	@245
				location   	(161, 247)
				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.555556
				height     	172
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A3018C"
			    client     	@242
			    supplier   	@244
			    vertices   	(list Points
				(267, 444)
				(267, 199))
			    line_style 	3
			    origin_attachment 	(267, 444)
			    terminal_attachment 	(267, 199))
			(object AssociationViewNew "AtoB" @247
			    location   	(657, 138)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @248
				Parent_View 	@247
				location   	(657, 79)
				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" @249
				    Parent_View 	@247
				    location   	(-99, -318)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @250
					Parent_View 	@249
					location   	(900, 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.796537
					height     	41
					orientation 	0)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4579746B020E"
				    client     	@247
				    supplier   	@243
				    vertices   	(list Points
					(657, 138)
					(962, 138))
				    line_style 	3
				    origin_attachment 	(657, 138)
				    terminal_attachment 	(962, 138))
				(object RoleView "a" @251
				    Parent_View 	@247
				    location   	(-99, -318)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @252
					Parent_View 	@251
					location   	(415, 97)
					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     	@247
				    supplier   	@244
				    vertices   	(list Points
					(657, 138)
					(353, 138))
				    line_style 	3
				    origin_attachment 	(657, 138)
				    terminal_attachment 	(353, 138))))
			(object UsesView "" @253
			    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 	@253
				location   	(1058, 320)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @254
				Parent_View 	@253
				location   	(952, 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.422360
				height     	172
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A5024E"
			    client     	@241
			    supplier   	@243
			    vertices   	(list Points
				(1058, 444)
				(1058, 196))
			    line_style 	3
			    origin_attachment 	(1058, 444)
			    terminal_attachment 	(1058, 196))))
		(object ClassDiagram "Problem"
		    quid       	"457D902100BB"
		    title      	"Problem"
		    zoom       	100
		    max_height 	28350
		    max_width  	21600
		    origin_x   	0
		    origin_y   	0
		    items      	(list diagram_item_list
			(object NoteView @255
			    location   	(1332, 1481)
			    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 	@255
				location   	(378, 1247)
				fill_color 	13434879
				nlines     	9
				max_width  	1872
				label      	
|Here, C conforms to both, A and E because all expose an end b with equal multiplicity, composition and navigability, and AtoB::b and EtoF::b are both readonly, thus it is sufficient for CtoD::b that its end type D conforms to F and B and not vice versa.
|
|It is assumed that statically, the association end AtoB::b is used starting at type A. The actual type of the instance where navigation starts is assumed to be C.
|
|This actual type C exposes an end that conforms to the AtoB::b end exposed by A which is used during compile time to specify the navigation. Therefore, CtoD::b is used at runtime to execute the navigation.
				)
			    line_color 	3342489
			    fill_color 	13434879
			    width      	1932
			    height     	481)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::B" @256
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1783, 248)
			    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 	@256
				location   	(1702, 198)
				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" @257
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(958, 252)
			    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 	@257
				location   	(877, 202)
				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" @258
			    location   	(1370, 259)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @259
				Parent_View 	@258
				location   	(1370, 200)
				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 @260
				Parent_View 	@258
				location   	(1362, 278)
				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.383333
				height     	19
				orientation 	1)
			    roleview_list 	(list RoleViews
				(object RoleView "b" @261
				    Parent_View 	@258
				    location   	(614, -197)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @262
					Parent_View 	@261
					location   	(1627, 218)
					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     	@258
				    supplier   	@256
				    vertices   	(list Points
					(1370, 259)
					(1693, 259))
				    line_style 	3
				    origin_attachment 	(1370, 259)
				    terminal_attachment 	(1693, 259))
				(object RoleView "a" @263
				    Parent_View 	@258
				    location   	(614, -197)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @264
					Parent_View 	@263
					location   	(1113, 218)
					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     	@258
				    supplier   	@257
				    vertices   	(list Points
					(1370, 259)
					(1048, 259))
				    line_style 	3
				    origin_attachment 	(1370, 259)
				    terminal_attachment 	(1048, 259))))
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::F" @265
			    ShowCompartmentStereotypes 	TRUE
			    location   	(1466, 521)
			    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 	@265
				location   	(1385, 471)
				fill_color 	13434879
				nlines     	1
				max_width  	162
				justify    	0
				label      	"F")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"45797CF700F2"
			    compartment 	(object Compartment
				Parent_View 	@265
				location   	(1385, 532)
				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
				    "+ b()"
				    "+ f()"))
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::E" @266
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    location   	(362, 559)
			    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 	@266
				location   	(281, 509)
				fill_color 	13434879
				nlines     	1
				max_width  	162
				justify    	0
				label      	"E")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"45797CF50117"
			    compartment 	(object Compartment
				Parent_View 	@266
				location   	(281, 570)
				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
				    "+ a()"
				    "+ e()"))
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object UsesView "" @267
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @268
				Parent_View 	@267
				location   	(277, 495)
				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.318200
				height     	95
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45797FB700C2"
			    client     	@266
			    supplier   	@257
			    vertices   	(list Points
				(452, 510)
				(867, 296))
			    line_style 	0)
			(object AssociationViewNew "EtoF" @269
			    location   	(914, 560)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @270
				Parent_View 	@269
				location   	(1056, 536)
				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"
			    roleview_list 	(list RoleViews
				(object RoleView "b" @271
				    Parent_View 	@269
				    location   	(674, -221)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @272
					Parent_View 	@271
					location   	(1338, 518)
					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     	@269
				    supplier   	@265
				    vertices   	(list Points
					(914, 560)
					(1376, 560))
				    line_style 	3
				    origin_attachment 	(914, 560)
				    terminal_attachment 	(1376, 560))
				(object RoleView "a" @273
				    Parent_View 	@269
				    location   	(674, -221)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @274
					Parent_View 	@273
					location   	(525, 531)
					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.842784
					height     	30
					orientation 	1)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"45797D4C036D"
				    client     	@269
				    supplier   	@266
				    vertices   	(list Points
					(914, 560)
					(452, 560))
				    line_style 	3
				    origin_attachment 	(914, 560)
				    terminal_attachment 	(452, 560))))
			(object UsesView "" @275
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @276
				Parent_View 	@275
				location   	(1503, 359)
				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.174686
				height     	99
				orientation 	0)
			    line_color 	3342489
			    quidu      	"45797FB8011E"
			    client     	@265
			    supplier   	@256
			    vertices   	(list Points
				(1537, 458)
				(1709, 310))
			    line_style 	0)
			(object ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::C" @277
			    ShowCompartmentStereotypes 	TRUE
			    IncludeOperation 	TRUE
			    location   	(990, 988)
			    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 	@277
				location   	(909, 938)
				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 	@277
				location   	(909, 999)
				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 ClassView "Class" "Logical View::documentation::runtime::testWithPolymorphicAssociations::D" @278
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1775, 1000)
			    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 	@278
				location   	(1694, 950)
				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 "" @279
			    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 	@279
				location   	(1765, 623)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @280
				Parent_View 	@279
				location   	(1659, 548)
				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.554529
				height     	165
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A5024E"
			    client     	@278
			    supplier   	@256
			    vertices   	(list Points
				(1765, 937)
				(1765, 309))
			    line_style 	3
			    origin_attachment 	(1765, 937)
			    terminal_attachment 	(1765, 309))
			(object AssociationViewNew "CtoD" @281
			    location   	(1382, 994)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @282
				Parent_View 	@281
				location   	(1382, 935)
				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" @283
				    Parent_View 	@281
				    location   	(-177, -16)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @284
					Parent_View 	@283
					location   	(1141, 953)
					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     	@281
				    supplier   	@277
				    vertices   	(list Points
					(1382, 994)
					(1080, 994))
				    line_style 	3
				    origin_attachment 	(1382, 994)
				    terminal_attachment 	(1080, 994))
				(object RoleView "b" @285
				    Parent_View 	@281
				    location   	(-177, -16)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @286
					Parent_View 	@285
					location   	(1624, 953)
					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     	@281
				    supplier   	@278
				    vertices   	(list Points
					(1382, 994)
					(1685, 994))
				    line_style 	3
				    origin_attachment 	(1382, 994)
				    terminal_attachment 	(1685, 994))))
			(object UsesView "" @287
			    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 	@287
				location   	(978, 619)
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	"")
			    stereotype 	(object SegLabel @288
				Parent_View 	@287
				location   	(872, 544)
				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.246120
				height     	168
				orientation 	0)
			    line_color 	3342489
			    quidu      	"457974A3018C"
			    client     	@277
			    supplier   	@257
			    vertices   	(list Points
				(978, 925)
				(978, 313))
			    line_style 	3
			    origin_attachment 	(978, 925)
			    terminal_attachment 	(978, 313))))))
	(object Class_Category "configuration2"
	    quid       	"4856287A03B9"
	    exportControl 	"Public"
	    logical_models 	(list unit_reference_list
		(object Class "SalesOrder"
		    quid       	"485628910261")
		(object Class "NumberRangeImpl"
		    quid       	"485628AA01B5"
		    realized_interfaces 	(list realize_rel_list
			(object Realize_Relationship
			    quid       	"485628CF030D"
			    supplier   	"Logical View::documentation::runtime::configuration2::NumberRange"
			    quidu      	"485628C302CE")))
		(object Class "PurchaseOrder"
		    quid       	"485628B002EE")
		(object Class "NumberRange"
		    quid       	"485628C302CE"
		    stereotype 	"Interface")
		(object Class "PurchaseOrderNumberRanges"
		    quid       	"4856296E0203"
		    class_attributes 	(list class_attribute_list
			(object ClassAttribute "nr1"
			    quid       	"485629A6037A"
			    initv      	"NumberRangeImpl(1, 100000, 1)"
			    exportControl 	"Public")
			(object ClassAttribute "nr2"
			    quid       	"485629E40213"
			    initv      	"NumberRangeImpl(10000, 10000000, 10)"
			    exportControl 	"Public")))
		(object Class "SalesOrderNumberRanges"
		    quid       	"48562AB10261"
		    class_attributes 	(list class_attribute_list
			(object ClassAttribute "nr1"
			    quid       	"48562AC20222"
			    initv      	"NumberRangeImpl(5, 100000, 5)")
			(object ClassAttribute "nr2"
			    quid       	"48562AD600AB"
			    initv      	"NumberRangeImpl(100000, 100000000, 100)")))
		(object Association "$UNNAMED$29"
		    quid       	"4856291F01A5"
		    stereotype 	"configuration"
		    roles      	(list role_list
			(object Role "numberRange"
			    quid       	"4856292000CB"
			    label      	"numberRange"
			    supplier   	"Logical View::documentation::runtime::configuration2::NumberRange"
			    quidu      	"485628C302CE"
			    is_navigable 	TRUE
			    static     	TRUE)
			(object Role "$UNNAMED$30"
			    quid       	"4856292000CD"
			    supplier   	"Logical View::documentation::runtime::configuration2::SalesOrder"
			    quidu      	"485628910261"))
		    AssociationClass 	"Logical View::runtime::configuration2::SalesOrderNumberRanges")
		(object Association "$UNNAMED$31"
		    quid       	"485629200251"
		    stereotype 	"configuration"
		    roles      	(list role_list
			(object Role "numberRange"
			    quid       	"4856292100AB"
			    label      	"numberRange"
			    supplier   	"Logical View::documentation::runtime::configuration2::NumberRange"
			    quidu      	"485628C302CE"
			    is_navigable 	TRUE
			    static     	TRUE)
			(object Role "$UNNAMED$32"
			    quid       	"4856292100AD"
			    supplier   	"Logical View::documentation::runtime::configuration2::PurchaseOrder"
			    quidu      	"485628B002EE"))
		    AssociationClass 	"Logical View::runtime::configuration2::PurchaseOrderNumberRanges"))
	    logical_presentations 	(list unit_reference_list
		(object ClassDiagram "Configuration"
		    quid       	"4856288602AF"
		    title      	"Configuration"
		    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::configuration2::NumberRangeImpl" @289
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1362, 1371)
			    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 	@289
				location   	(1181, 1321)
				fill_color 	13434879
				nlines     	1
				max_width  	362
				justify    	0
				label      	"NumberRangeImpl")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"485628AA01B5"
			    width      	380
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object ClassView "Class" "Logical View::documentation::runtime::configuration2::SalesOrder" @290
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(994, 530)
			    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 	@290
				location   	(879, 480)
				fill_color 	13434879
				nlines     	1
				max_width  	230
				justify    	0
				label      	"SalesOrder")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"485628910261"
			    width      	248
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object ClassView "Class" "Logical View::documentation::runtime::configuration2::NumberRange" @291
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1361, 920)
			    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 	@291
				location   	(1360, 1028)
				anchor_loc 	1
				nlines     	2
				max_width  	228
				justify    	0
				label      	"NumberRange")
			    icon       	"Interface"
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"485628C302CE"
			    width      	58
			    height     	58
			    annotation 	8
			    autoResize 	TRUE)
			(object RealizeView "" @292
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"485628CF030D"
			    client     	@289
			    supplier   	@291
			    vertices   	(list Points
				(1360, 1309)
				(1360, 1076))
			    line_style 	3
			    origin_attachment 	(1360, 1309)
			    terminal_attachment 	(1360, 1076))
			(object AssociationViewNew "$UNNAMED$29" @293
			    location   	(1193, 742)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @294
				Parent_View 	@293
				location   	(1145, 683)
				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      	"<<configuration>>"
				pctDist    	-0.300000
				height     	60
				orientation 	0)
			    line_color 	3342489
			    quidu      	"4856291F01A5"
			    roleview_list 	(list RoleViews
				(object RoleView "numberRange" @295
				    Parent_View 	@293
				    location   	(480, 224)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @296
					Parent_View 	@295
					location   	(1122, 876)
					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  	297
					justify    	0
					label      	"+$numberRange"
					pctDist    	0.231189
					height     	144
					orientation 	1)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4856292000CB"
				    client     	@293
				    supplier   	@291
				    vertices   	(list Points
					(1193, 742)
					(1334, 892))
				    line_style 	0)
				(object RoleView "$UNNAMED$30" @297
				    Parent_View 	@293
				    location   	(480, 224)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4856292000CD"
				    client     	@293
				    supplier   	@290
				    vertices   	(list Points
					(1193, 742)
					(1052, 592))
				    line_style 	0)))
			(object ClassView "Class" "Logical View::documentation::runtime::configuration2::PurchaseOrder" @298
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(1742, 527)
			    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 	@298
				location   	(1590, 477)
				fill_color 	13434879
				nlines     	1
				max_width  	304
				justify    	0
				label      	"PurchaseOrder")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"485628B002EE"
			    width      	322
			    height     	124
			    annotation 	8
			    autoResize 	TRUE)
			(object AssociationViewNew "$UNNAMED$31" @299
			    location   	(1532, 740)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    stereotype 	(object SegLabel @300
				Parent_View 	@299
				location   	(1602, 675)
				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      	"<<configuration>>"
				pctDist    	1.666667
				height     	66
				orientation 	0)
			    line_color 	3342489
			    quidu      	"485629200251"
			    roleview_list 	(list RoleViews
				(object RoleView "numberRange" @301
				    Parent_View 	@299
				    location   	(90, 212)
				    font       	(object Font
					size       	10
					face       	"Arial"
					bold       	FALSE
					italics    	FALSE
					underline  	FALSE
					strike     	FALSE
					color      	0
					default_color 	TRUE)
				    label      	(object SegLabel @302
					Parent_View 	@301
					location   	(1585, 882)
					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  	297
					justify    	0
					label      	"+$numberRange"
					pctDist    	0.300676
					height     	137
					orientation 	0)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4856292100AB"
				    client     	@299
				    supplier   	@291
				    vertices   	(list Points
					(1532, 740)
					(1384, 892))
				    line_style 	0)
				(object RoleView "$UNNAMED$32" @303
				    Parent_View 	@299
				    location   	(90, 212)
				    stereotype 	TRUE
				    line_color 	3342489
				    quidu      	"4856292100AD"
				    client     	@299
				    supplier   	@298
				    vertices   	(list Points
					(1532, 740)
					(1680, 589))
				    line_style 	0)))
			(object ClassView "Class" "Logical View::documentation::runtime::configuration2::PurchaseOrderNumberRanges" @304
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(2219, 989)
			    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 	@304
				location   	(1930, 939)
				fill_color 	13434879
				nlines     	1
				max_width  	578
				justify    	0
				label      	"PurchaseOrderNumberRanges")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"4856296E0203"
			    width      	596
			    height     	124
			    autoResize 	TRUE)
			(object AssocAttachView "" @305
			    stereotype 	TRUE
			    line_color 	3342489
			    client     	@304
			    supplier   	@299
			    vertices   	(list Points
				(2069, 926)
				(1532, 740))
			    line_style 	0)
			(object NoteView @306
			    location   	(2496, 534)
			    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 	@306
				location   	(2146, 412)
				fill_color 	13434879
				nlines     	4
				max_width  	665
				label      	"List of values conforming to the interface required by purchase order for its number range feature")
			    line_color 	3342489
			    fill_color 	13434879
			    width      	725
			    height     	256)
			(object AttachView "" @307
			    stereotype 	TRUE
			    line_color 	3342489
			    client     	@304
			    supplier   	@306
			    vertices   	(list Points
				(2256, 926)
				(2415, 662))
			    line_style 	0)
			(object ClassView "Class" "Logical View::documentation::runtime::configuration2::SalesOrderNumberRanges" @308
			    ShowCompartmentStereotypes 	TRUE
			    IncludeAttribute 	TRUE
			    IncludeOperation 	TRUE
			    location   	(584, 1023)
			    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 	@308
				location   	(327, 973)
				fill_color 	13434879
				nlines     	1
				max_width  	514
				justify    	0
				label      	"SalesOrderNumberRanges")
			    icon_style 	"Icon"
			    line_color 	3342489
			    fill_color 	13434879
			    quidu      	"48562AB10261"
			    width      	532
			    height     	124
			    autoResize 	TRUE)
			(object AssocAttachView "" @309
			    stereotype 	TRUE
			    line_color 	3342489
			    client     	@308
			    supplier   	@293
			    vertices   	(list Points
				(703, 961)
				(1193, 742))
			    line_style 	0)
			(object NoteView @310
			    location   	(1103, 190)
			    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 	@310
				location   	(134, 37)
				fill_color 	13434879
				nlines     	6
				max_width  	1903
				label      	"It seems that being able to *construct* instances of classes is important in order to provide *values* for configurable entities. This opens the discussion of the extent of constructor modeling in classes. So far, we only have default constructors and signatures and associations that may have editable ends. With this, a shorthand notation could be found for creating the instance and initializing those features that can be initialized using its public API. However, this voids classes of the possibility to control how their instances are being initialized, e.g., in order to fulfill invariants put up for the class.")
			    line_color 	3342489
			    fill_color 	13434879
			    width      	1963
			    height     	319))))))
    logical_presentations 	(list unit_reference_list))
