# DoME 5.3 model; type: DOME Tool Specification for: MSU-UML Class Diagram; top: true [MetaDoMEGraph nodes: [OrderedCollection [MetaDoMEGraphHandle name: 'Graph'! position: [Point 108 116] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'upgrade-from-version1'! position: [Point -66 1] id: 204100461330434! properties: [GrapEPropertyDictionary key: #method! value: '(let ((message nil)) (for-each (lambda (c) (if (and (is-a? c UMLInheritsFrom) (is-a? (origin c) UMLDiscriminator)) (let ((old-origin (origin c)) (old-destination (destination c))) (remove c) (new-in UMLInheritsTop self old-origin old-destination) (set! message "Upgraded model from a previous version of UML.")))) (arcs self)) (if (not (nil? message)) (begin (warn message) #t) #f))'! ] ] ] ] ] id: 202124488998925! properties: [GrapEPropertyDictionary key: #external! value: false! ] ] [MetaDoMENodeSpec name: 'Class'! position: [Point 264 250] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'stereotype'! position: [Point -52 -4] id: 203842313256973! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: ''! key: #canBeNil! value: false! key: #isVisual! value: true! key: #type! value: #String! ] ] ] ] ] id: 202124488998919! properties: [GrapEPropertyDictionary key: #hierarchical! value: true! key: #allowedSubgraphs! value: [OrderedCollection 'MSU-UML State Diagram'!] key: #metaAlwaysShowListFacets! value: false! key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((stereo (get-property ''stereotype self))) (if (string=? stereo "") (name self) (append "<<" stereo ">>" (list->string ''(#\newline)) (name self) )))'!] ] ] ] [MetaDoMEToolBarSpec position: [Point 920 150] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #columns! value: [OrderedCollection [MetaDoMEToolColumn position: [Point -52 0] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #tools! value: [OrderedCollection [MetaDoMEStdTool name: 'Move'! position: [Point -58 -99] id: 202130545115161! properties: [GrapEPropertyDictionary key: #toolId! value: #moveThing! ] ] [MetaDoMEStdTool name: 'Note'! position: [Point -58 -81] id: 202130545115162! properties: [GrapEPropertyDictionary key: #toolId! value: #newNetNote! ] ] [MetaDoMECreateTool name: 'Class'! position: [Point -58 -63] id: 202124488998928! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202124488998919! ] key: #cursorImage! value: #threeBoxCursor! key: #iconImage! value: #threeBoxIcon! key: #keyBinding! value: 'c'! ] ] [MetaDoMECreateTool name: 'Attribute'! position: [Point -58 -45] id: 202124556435487! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202124556435481! ] key: #cursorImage! value: #wordAttCursor! key: #iconImage! value: #attIcon! key: #keyBinding! value: 'a'! ] ] [MetaDoMECreateTool name: 'Operation'! position: [Point -58 -27] id: 202124556435488! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202124556435486! ] key: #cursorImage! value: #operatorCursor! key: #iconImage! value: #operatorIcon! key: #keyBinding! value: 'o'! ] ] [MetaDoMECreateTool name: 'Instance: Class'! position: [Point -58 -9] id: 202130545115163! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202130490458134! ] key: #cursorImage! value: #rectangleCursor! key: #iconImage! value: #rectangleIcon! key: #keyBinding! value: 'O'! ] ] [MetaDoMECreateTool name: 'InstanceConnector'! position: [Point -58 9] id: 204521437528071! properties: [GrapEPropertyDictionary key: #iconImage! value: #dashedDotArcIcon! key: #itemSpec! value: [GrapEThingAddress id: 204521436020738! ] key: #cursorImage! value: #arcCursor! ] ] [MetaDoMECreateTool name: 'Association'! position: [Point -58 27] id: 202124488998930! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202124488998924! ] key: #cursorImage! value: #arcCursor! key: #iconImage! value: #verticalLineIcon! key: #keyBinding! value: 'A'! ] ] [MetaDoMECreateTool name: 'Aggregation'! position: [Point -58 45] id: 204338116821006! properties: [GrapEPropertyDictionary key: #cursorImageBits! value: [Depth1Image width: 16! height: 16! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 1! 128! 0! 0! 2! 64! 0! 0! 4! 32! 0! 0! 8! 16! 0! 0! 16! 8! 0! 0! 32! 4! 0! 0! 64! 2! 0! 0! 128! 1! 0! 0! 128! 1! 0! 0! 64! 2! 0! 0! 32! 4! 0! 0! 16! 8! 0! 0! 8! 16! 0! 0! 4! 32! 0! 0! 2! 64! 0! 0! 1! 128! 0! 0!] ] key: #itemSpec! value: [GrapEThingAddress id: 204337851400194! ] key: #iconImage! value: #plainArcIcon! key: #cursorImage! value: #arcCursor! key: #iconImageBits! value: [Depth1Image width: 24! height: 24! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 0! 24! 0! 0! 0! 36! 0! 0! 0! 66! 0! 0! 0! 129! 0! 0! 1! 0! 128! 0! 2! 0! 64! 0! 4! 0! 32! 0! 8! 0! 16! 0! 16! 0! 8! 0! 32! 0! 4! 0! 64! 0! 2! 0! 128! 0! 1! 0! 128! 0! 1! 0! 64! 0! 2! 0! 32! 0! 4! 0! 16! 0! 8! 0! 8! 0! 16! 0! 4! 0! 32! 0! 2! 0! 64! 0! 1! 0! 128! 0! 0! 129! 0! 0! 0! 66! 0! 0! 0! 36! 0! 0! 0! 24! 0! 0!] ] ] ] [MetaDoMECreateTool name: 'SuperClass'! position: [Point -58 63] id: 202124488998929! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202124488998918! ] key: #cursorImage! value: #triangleCursor! key: #iconImage! value: #triangleIcon! key: #keyBinding! value: 'd'! ] ] [MetaDoMECreateTool name: 'InheritsFrom'! position: [Point -58 81] id: 202124488998931! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 202124488998917! ] key: #cursorImage! value: #arcCursor! key: #iconImage! value: #undirectedArcIcon! key: #iconImageBits! value: [Depth1Image width: 24! height: 24! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 4! 0! 32! 0! 2! 170! 160! 0! 0! 20! 0! 0! 0! 34! 0! 0! 0! 65! 0! 0! 0! 170! 128! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 0! 8! 0! 0! 5! 85! 64! 0! 4! 0! 32! 0!] ] key: #keyBinding! value: 'i'! ] ] ] ] ] id: 202124488998927! ] [MetaDoMEToolColumn position: [Point 49 -40] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #tools! value: [OrderedCollection [MetaDoMEStdTool name: 'Straighten'! position: [Point -61 -54] id: 202130545115165! properties: [GrapEPropertyDictionary key: #toolId! value: #deleteRoutePoint! ] ] [MetaDoMEStdTool name: 'Add Bend'! position: [Point -61 -36] id: 202130545115166! properties: [GrapEPropertyDictionary key: #toolId! value: #addRoutePoint! ] ] [MetaDoMECreateTool name: 'Composition'! position: [Point -61 -18] id: 204338191204366! properties: [GrapEPropertyDictionary key: #cursorImageBits! value: [Depth1Image width: 16! height: 16! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 1! 128! 0! 0! 3! 192! 0! 0! 7! 224! 0! 0! 15! 240! 0! 0! 31! 248! 0! 0! 63! 252! 0! 0! 127! 254! 0! 0! 255! 255! 0! 0! 255! 255! 0! 0! 127! 254! 0! 0! 63! 252! 0! 0! 31! 248! 0! 0! 15! 240! 0! 0! 7! 224! 0! 0! 3! 192! 0! 0! 1! 128! 0! 0!] ] key: #itemSpec! value: [GrapEThingAddress id: 204338168266767! ] key: #iconImage! value: #plainArcIcon! key: #cursorImage! value: #arcCursor! key: #iconImageBits! value: [Depth1Image width: 24! height: 24! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 0! 24! 0! 0! 0! 60! 0! 0! 0! 126! 0! 0! 0! 255! 0! 0! 1! 255! 128! 0! 3! 255! 192! 0! 7! 255! 224! 0! 15! 255! 240! 0! 31! 255! 248! 0! 63! 255! 252! 0! 127! 255! 254! 0! 255! 255! 255! 0! 255! 255! 255! 0! 127! 255! 254! 0! 63! 255! 252! 0! 31! 255! 248! 0! 15! 255! 240! 0! 7! 255! 224! 0! 3! 255! 192! 0! 1! 255! 128! 0! 0! 255! 0! 0! 0! 126! 0! 0! 0! 60! 0! 0! 0! 24! 0! 0!] ] ] ] [MetaDoMECreateTool name: 'Constraint'! position: [Point -61 0] id: 202130102091789! properties: [GrapEPropertyDictionary key: #iconImage! value: #rectangleIcon! key: #keyBinding! value: 'C'! key: #itemSpec! value: [GrapEThingAddress id: 202130102091790! ] key: #cursorImageBits! value: [Depth1Image width: 16! height: 16! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 0! 0! 0! 0! 0! 0! 0! 0! 16! 8! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 64! 2! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 32! 4! 0! 0! 16! 8! 0! 0! 0! 0! 0! 0!] ] key: #cursorImage! value: #rectangleCursor! key: #iconImageBits! value: [Depth1Image width: 24! height: 24! depth: 1! palette: [CoveragePalette maxPixelValue: 1! ] bitsPerPixel: 1! maxPixelValue: 1! rowByteSize: 4! bits: [OrderedCollection 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 32! 0! 4! 0! 64! 0! 2! 0! 64! 0! 2! 0! 78! 0! 2! 0! 81! 0! 2! 0! 80! 57! 194! 0! 144! 69! 33! 0! 80! 69! 34! 0! 81! 69! 34! 0! 78! 57! 34! 0! 64! 0! 2! 0! 64! 0! 2! 0! 32! 0! 4! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0! 0!] ] ] ] [MetaDoMECreateTool name: 'Dependency'! position: [Point -61 18] id: 203828432601100! properties: [GrapEPropertyDictionary key: #itemSpec! value: [GrapEThingAddress id: 203828432601099! ] key: #cursorImage! value: #arcCursor! key: #iconImage! value: #dashedLineIcon! key: #keyBinding! value: 'D'! ] ] [MetaDoMECreateTool name: 'External Stereotype'! position: [Point -61 36] id: 204338191204367! properties: [GrapEPropertyDictionary key: #iconImage! value: #labeledListIcon! key: #itemSpec! value: [GrapEThingAddress id: 204338190876674! ] key: #cursorImage! value: #labeledListCursor! ] ] ] ] ] id: 202130545115164! ] ] ] ] id: 202124488998926! ] [MetaDoMEArcSpec name: 'Association'! position: [Point 599 208] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'add-destination-end-label'! position: [Point -77 5] id: 204094609686530! properties: [GrapEPropertyDictionary key: #method! value: '(let ((end-label (new-in umlassociationend self (get-property "clippedDestination" self)))) (set-property! ''end end-label ''destination-end-label) (set-property! ''destination-end-label self end-label))'! ] ] [MetaDoMEService name: 'add-origin-end-label'! position: [Point -77 19] id: 204094609686531! properties: [GrapEPropertyDictionary key: #method! value: '(let ((end-label (new-in umlassociationend self (get-property "clippedOrigin" self)))) (set-property! ''end end-label ''origin-end-label) (set-property! ''origin-end-label self end-label))'! ] ] ] ] ] id: 202124488998924! properties: [GrapEPropertyDictionary key: #originHeadStyle! value: #custom! key: #originHeadPresenceAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((oe (get-property ''origin-end-label self))) (if (nil? oe) #f (or (get-property ''navigable oe) )))'!] ] key: #destHeadPresence! value: #custom! key: #destHeadPresenceAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((de (get-property ''destination-end-label self))) (if (nil? de) #f (or (get-property ''navigable de) )))'!] ] key: #originHeadPresence! value: #custom! key: #postCreationAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(add-origin-end-label self) (add-destination-end-label self)'!] ] key: #popupMenuSpec! value: [GrapEThingAddress id: 204090513424410! ] key: #destHeadStyle! value: #arrow! key: #metaLineStyle! value: #custom! ] ] [MetaDoMEGraphLabel position: [Point 132 40] id: 202124488998932! ] [MetaDoMENodeSpec name: 'SuperClass'! position: [Point 420 398] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'update-for-move'! position: [Point -51 5] id: 204100421156866! properties: [GrapEPropertyDictionary key: #signature! value: [OrderedCollection [MetaDoMEServiceParameter id: 204100421156867! properties: [GrapEPropertyDictionary key: #parmName! value: 'class-node'! key: #direction! value: #In! key: #collectionType! value: #scalar! key: #parmType! value: [GrapEThingAddress id: 202124488998919! ] ] ] [MetaDoMEServiceParameter id: 204100421156868! properties: [GrapEPropertyDictionary key: #parmName! value: 'offset'! key: #direction! value: #In! key: #collectionType! value: #scalar! key: #parmType! value: #Point! ] ] ] key: #method! value: '(set-position! self (point+ (position self) offset))'! key: #publicity! value: #TBD! key: #returnType! value: nil! key: #returnCollectionType! value: nil! ] ] [MetaDoMEService name: 'update-for-resize'! position: [Point -51 19] id: 204100421156869! properties: [GrapEPropertyDictionary key: #signature! value: [OrderedCollection [MetaDoMEServiceParameter id: 204100421156870! properties: [GrapEPropertyDictionary key: #parmName! value: 'connector'! key: #direction! value: #In! key: #collectionType! value: #scalar! key: #parmType! value: [GrapEThingAddress id: 203828422377474! ] ] ] ] key: #method! value: '(let* ((nb (border-bounds (destination connector))) (newx (x (position self))) (newy (+ (cddr nb) 12))) (if (< newx (caar nb)) (set! newx (caar nb)) (if (> newx (cadr nb)) (set! newx (cadr nb)))) (set-position! self (cons newx newy)))'! key: #publicity! value: #TBD! key: #returnType! value: nil! key: #returnCollectionType! value: nil! ] ] ] ] ] id: 202124488998918! properties: [GrapEPropertyDictionary key: #nodeShapePolylineStyle! value: #triangle! key: #nodeShape! value: #polyline! key: #nodeNamePosition! value: #none! key: #dependent! value: true! ] ] [MetaDoMEArcSpec name: 'InheritsFrom'! position: [Point 179 605] id: 202124488998917! properties: [GrapEPropertyDictionary key: #destHeadPresence! value: #never! key: #arcNamePresent! value: false! ] ] [MetaDoMEComponent name: 'Attribute'! position: [Point 94 478] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'attributeName'! position: [Point -62 -29] id: 204362528260098! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: 'myAttrName'! key: #isVisual! value: true! key: #type! value: #String! ] ] [MetaDoMEProperty name: 'attributeType'! position: [Point -62 -15] id: 204362528260099! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: 'MyAttrType'! key: #isVisual! value: true! key: #type! value: #String! ] ] [MetaDoMEProperty name: 'attributeValue'! position: [Point -62 -1] id: 204362528260100! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: 'myInitValue'! key: #isVisual! value: true! key: #type! value: #String! ] ] ] ] ] id: 202124556435481! properties: [GrapEPropertyDictionary key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(letrec ( (sep ": ") (base "") (attrName (get-property "attributeName" self)) (attrType (get-property "attributeType" self)) (attrVal (get-property "attributeValue" self)) ) (if (string-ci=? attrVal "") (set! base "") (set! base (append " = " attrVal base))) (if (string-ci=? attrType "") (set! base (append attrName base)) (set! base (append attrName sep attrType base))) (append base "") )'!] ] ] ] [MetaDoMEPartWhole position: [Point 166 342] id: 202124556435479! ] [MetaDoMEPartWhole position: [Point 271 331] id: 202124556435484! ] [MetaDoMEComponent name: 'Operation'! position: [Point 273 440] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'operationArgs'! position: [Point -81 -29] id: 204362528260101! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: '''()'! key: #collectionType! value: #orderedCollection! key: #isVisual! value: true! key: #type! value: #String! ] ] [MetaDoMEProperty name: 'operationName'! position: [Point -81 -15] id: 204362528260102! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: 'opName'! key: #isVisual! value: true! key: #type! value: #String! ] ] [MetaDoMEProperty name: 'operationReturnType'! position: [Point -81 -1] id: 204362528260103! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: 'void'! key: #isVisual! value: true! key: #type! value: #String! ] ] ] ] ] id: 202124556435486! properties: [GrapEPropertyDictionary key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((sep "") (opName (get-property "operationName" self)) (opReturn (get-property "operationReturnType" self)) (opArgs (get-property "operationArgs" self)) ) (append opName "(" (if (null? opArgs) "" (apply append (map (lambda (s) (let ((arglist (append sep s))) (set! sep ", ") arglist)) opArgs))) "): " (if (string-empty? opReturn) "void" opReturn) ))'!] ] ] ] [MetaDoMENodeSpec name: 'Constraint'! position: [Point 429 515] id: 202130102091790! properties: [GrapEPropertyDictionary key: #metaHaloCount! value: 0! key: #nodeNamePosition! value: #insideTopLeft! key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(append "{" (name self) "}")'!] ] ] ] [MetaDoMENodeSpec name: 'Instance: Class'! position: [Point 393 161] id: 202130490458134! properties: [GrapEPropertyDictionary key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((c (get-property ''object-class self))) (append (name self) " : " (if (is-a? c umlclass) (name c) "?")))'!] ] ] ] [MetaDoMEArcSpec name: 'InheritsTop'! position: [Point 76 602] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'register-dependencies'! position: [Point -64 12] id: 204100429021192! properties: [GrapEPropertyDictionary key: #method! value: '(add-interest (destination self) ''bounds (lambda (obj aspect prev) (update-for-resize (origin self) self)) (origin self) ''discriminant) (add-interest (destination self) ''position (lambda (obj aspect prev) (update-for-move (origin self) (destination self) prev)) (origin self) ''discriminant) (add-interest (origin self) ''position (lambda (obj aspect offset) (update-for-resize (origin self) self)) (origin self) ''discriminant) '! ] ] ] ] ] id: 203828422377474! properties: [GrapEPropertyDictionary key: #preDeletionAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '#f'!] ] key: #metaHaloCount! value: 0! key: #postDeletionAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(remove-interest old-destination ''bounds old-origin ''disciminant) (remove-interest old-destination ''position old-origin ''discriminant)'!] ] key: #destHeadPresence! value: #never! key: #arcNamePresent! value: false! key: #postCreationAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(register-dependencies self) (update-for-resize (origin self) self)'!] ] key: #instantiable! value: false! ] ] [MetaDoMEArcSpec name: 'Dependency'! position: [Point 284 605] id: 203828432601099! properties: [GrapEPropertyDictionary key: #metaLineStyleType! value: #simpleDash! ] ] [MetaDoMEGenericSpec name: 'Feature'! position: [Point 79 290] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'visibility'! position: [Point -40 -4] id: 203847089455116! ] ] ] ] id: 203847089455115! ] [MetaDoMEGenSpec position: [Point 79 346] id: 203847089455114! ] [MetaDoMEGenericSpec name: 'GeneralizableElement'! position: [Point 583 51] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'isAbstract'! position: [Point -61 -18] id: 203847089455122! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: false! key: #canBeNil! value: false! key: #type! value: #Boolean! ] ] [MetaDoMEProperty name: 'isLeaf'! position: [Point -61 -4] id: 203847089455123! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: false! key: #canBeNil! value: false! key: #type! value: #Boolean! ] ] [MetaDoMEProperty name: 'isRoot'! position: [Point -61 10] id: 203847089455124! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: false! key: #canBeNil! value: false! key: #type! value: #Boolean! ] ] ] ] ] id: 203847089455121! ] [MetaDoMEGenSpec position: [Point 582 121] id: 203847089455120! ] [MetaDoMENodeSpec name: 'AssociationEnd'! position: [Point 606 393] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'register-dependencies'! position: [Point -73 29] id: 204101794791431! properties: [GrapEPropertyDictionary key: #method! value: '(add-interest (container self) ''bounds (lambda (obj aspect prev) (if (eq? (get-property ''end self) ''origin-end-label) (reposition-on-origin self) (reposition-on-destination self))) self ''multiplicity)'! ] ] [MetaDoMEService name: 'reposition-me'! position: [Point -73 43] id: 204101794791432! properties: [GrapEPropertyDictionary key: #signature! value: [OrderedCollection [MetaDoMEServiceParameter id: 204101794791433! properties: [GrapEPropertyDictionary key: #parmName! value: 'first-point'! key: #direction! value: #In! key: #collectionType! value: #scalar! key: #parmType! value: #Point! ] ] [MetaDoMEServiceParameter id: 204101794791434! properties: [GrapEPropertyDictionary key: #parmName! value: 'next-point'! key: #direction! value: #In! key: #collectionType! value: #scalar! key: #parmType! value: #Point! ] ] ] key: #method! value: '(let* ((delta (point- next-point first-point)) (th (- (theta delta) 0.5))) (set-position! self (point+ first-point (cons (* 19 (cos th)) (* 19 (sin th))))))'! key: #publicity! value: #TBD! key: #returnType! value: nil! key: #returnCollectionType! value: nil! ] ] [MetaDoMEService name: 'reposition-on-destination'! position: [Point -73 57] id: 204101794791435! properties: [GrapEPropertyDictionary key: #method! value: '(let* ((arc (container self)) (r (route arc)) (first-point (get-property "clippedDestination" arc)) (next-point (if (null? r) (get-property "clippedOrigin" arc) (list-ref r (- (length r) 1))))) (reposition-me self first-point next-point))'! ] ] [MetaDoMEService name: 'reposition-on-origin'! position: [Point -73 71] id: 204101794791436! properties: [GrapEPropertyDictionary key: #method! value: '(let* ((arc (container self)) (r (route arc)) (first-point (get-property "clippedOrigin" arc)) (next-point (if (null? r) (get-property "clippedDestination" arc) (car r)))) (reposition-me self first-point next-point))'! ] ] ] key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'Arity'! position: [Point -73 -63] id: 204390706970627! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #previousSlot! value: 'end'! key: #initialValue! value: [GrapEThingAddress id: 204390706970632! ] key: #isVisual! value: true! key: #type! value: [GrapEThingAddress id: 204390701662210! ] ] ] [MetaDoMEProperty name: 'end'! position: [Point -73 -49] id: 204090143932420! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #type! value: [GrapEThingAddress id: 204090143932422! ] key: #initialValue! value: [GrapEThingAddress id: 204090143932421! ] key: #canBeNil! value: false! key: #readOnly! value: true! ] ] [MetaDoMEProperty name: 'multiplicity-max'! position: [Point -73 -35] id: 203847124320285! properties: [GrapEPropertyDictionary key: #displayName! value: 'Max:'! key: #isVisual! value: true! key: #type! value: #Number! key: #previousSlot! value: 'multiplicity-min'! key: #initialValue! value: 0! key: #useInitialValue! value: true! key: #canBeNil! value: false! ] ] [MetaDoMEProperty name: 'multiplicity-min'! position: [Point -73 -21] id: 203847124320286! properties: [GrapEPropertyDictionary key: #displayName! value: 'Min:'! key: #isVisual! value: true! key: #type! value: #Number! key: #initialValue! value: 0! key: #useInitialValue! value: true! key: #canBeNil! value: false! ] ] [MetaDoMEProperty name: 'navigable'! position: [Point -73 -7] id: 203847124320287! properties: [GrapEPropertyDictionary key: #isVisual! value: true! key: #type! value: #Boolean! key: #postActionAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(smalltalk "invalidate" (container self))'!] ] key: #initialValue! value: false! key: #useInitialValue! value: true! key: #canBeNil! value: false! ] ] [MetaDoMEProperty name: 'role'! position: [Point -73 7] id: 204338238783505! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: ''! key: #canBeNil! value: false! key: #isVisual! value: true! key: #type! value: #String! ] ] ] ] ] id: 203847124320283! properties: [GrapEPropertyDictionary key: #preDeletionAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(set-property! (get-property ''end self) (container self) nil) #t'!] ] key: #metaHaloCount! value: 0! key: #nodeNamePosition! value: #center! key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((m1 (get-property ''multiplicity-min self)) (m2 (get-property ''multiplicity-max self)) (role (get-property ''role self)) (myAr (get-property ''Arity self))) (cond ((eq? myAr ''one) (append "1 " role)) ((eq? myAr ''many) (append "* " role)) ((eq? myAr ''optional) (append "0..1 " role)) ((eq? myAr ''oneOrMany) (append "1..* " role)) ((eq? myAr ''zeroOrMany) (append "0..* " role)) ((eq? myAr ''range) (append (number->string m1) ".." (number->string m2) " " role))) ) )'!] ] key: #postCreationAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(register-dependencies self)'!] ] key: #instantiable! value: false! ] ] [MetaDoMEAccPart position: [Point 599 296] id: 203847124320281! ] [MetaDoMEEnumeration name: 'End'! position: [Point 549 531] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #constants! value: [OrderedCollection [MetaDoMEEnumConstant name: 'Origin'! position: [Point -100 -3] id: 204090143932421! properties: [GrapEPropertyDictionary key: #valueName! value: #'origin-end-label'! ] ] [MetaDoMEEnumConstant name: 'Destination'! position: [Point -100 11] id: 204090143932423! properties: [GrapEPropertyDictionary key: #valueName! value: #'destination-end-label'! ] ] ] ] ] id: 204090143932422! ] [MetaDoMEMenuSpec name: 'Association Menu'! position: [Point 835 396] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #menuItems! value: [OrderedCollection [MetaDoMEMenuItemSpec name: 'Add End Label(s)'! position: [Point -49 -7] id: 204090513424411! properties: [GrapEPropertyDictionary key: #method! value: [GrapEHyperText textWithLinks: [OrderedCollection '(if (nil? (get-property ''origin-end-label object)) (add-origin-end-label object)) (if (nil? (get-property ''destination-end-label object)) (add-destination-end-label object))'!] ] key: #validationMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(or (nil? (get-property ''origin-end-label object)) (nil? (get-property ''destination-end-label object)))'!] ] ] ] ] ] ] id: 204090513424410! ] [MetaDoMEArcSpec name: 'Aggregation'! position: [Point 877 462] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'add-origin-end-label'! position: [Point -62 12] id: 204338116820998! properties: [GrapEPropertyDictionary key: #signature! value: [OrderedCollection] key: #publicity! value: #TBD! key: #method! value: '(let ((end-label (new-in umlassociationend self (get-property "clippedOrigin" self)))) )'! key: #returnType! value: nil! key: #returnCollectionType! value: nil! ] ] ] ] ] id: 204337851400194! properties: [GrapEPropertyDictionary key: #arcNamePresent! value: false! key: #postCreationAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection ' (add-origin-end-label self)'!] ] key: #popupMenuSpec! value: [GrapEThingAddress id: 204090513424410! ] key: #destHeadStyle! value: #diamond! ] ] [MetaDoMEAccPart position: [Point 729 472] id: 204338102992898! ] [MetaDoMEArcSpec name: 'Composition'! position: [Point 832 569] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #services! value: [SortedCollection [MetaDoMEService name: 'add-origin-end-label'! position: [Point -62 12] id: 204338191204358! properties: [GrapEPropertyDictionary key: #signature! value: [OrderedCollection] key: #publicity! value: #TBD! key: #method! value: '(let ((end-label (new-in umlassociationend self (get-property "clippedOrigin" self)))) )'! key: #returnType! value: nil! key: #returnCollectionType! value: nil! ] ] ] ] ] id: 204338168266767! properties: [GrapEPropertyDictionary key: #labelPresenceAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(add-origin-end-label self)'!] ] key: #popupMenuSpec! value: [GrapEThingAddress id: 204090513424410! ] key: #destHeadStyle! value: #filledDiamond! ] ] [MetaDoMEAccPart position: [Point 713 530] id: 204338190876675! ] [MetaDoMENodeSpec name: 'External Stereotype'! position: [Point 319 524] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #attributes! value: [SortedCollection [MetaDoMEProperty name: 'stereotype'! position: [Point -56 -4] id: 204338191204368! properties: [GrapEPropertyDictionary key: #useInitialValue! value: true! key: #initialValue! value: 'nil'! key: #isVisual! value: true! key: #canBeNil! value: false! key: #type! value: #String! ] ] ] ] ] id: 204338190876674! properties: [GrapEPropertyDictionary key: #nameContentAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(let ((stereo (get-property ''stereotype self))) (if (string=? stereo "") (name self) (append "<<" stereo ">>" )))'!] ] ] ] [MetaDoMEEnumeration name: 'ArityType'! position: [Point 574 610] components: [PartitionedCollection key: #elements! value: [PartitionedCollection key: #constants! value: [OrderedCollection [MetaDoMEEnumConstant name: 'one'! position: [Point -73 -31] id: 204390706970628! properties: [GrapEPropertyDictionary key: #valueName! value: #one! ] ] [MetaDoMEEnumConstant name: 'many'! position: [Point -73 -17] id: 204390706970629! properties: [GrapEPropertyDictionary key: #valueName! value: #many! ] ] [MetaDoMEEnumConstant name: 'optional'! position: [Point -73 -3] id: 204390706970630! properties: [GrapEPropertyDictionary key: #valueName! value: #optional! ] ] [MetaDoMEEnumConstant name: 'zeroOrMany'! position: [Point -73 11] id: 207979738562562! properties: [GrapEPropertyDictionary key: #valueName! value: #zeroormany! ] ] [MetaDoMEEnumConstant name: 'oneOrMany'! position: [Point -73 25] id: 204390706970631! ] [MetaDoMEEnumConstant name: 'range'! position: [Point -73 39] id: 204390706970632! properties: [GrapEPropertyDictionary key: #valueName! value: #range! ] ] ] ] ] id: 204390701662210! ] [MetaDoMEArcSpec name: 'InstanceConnector'! position: [Point 389 72] id: 204521436020738! properties: [GrapEPropertyDictionary key: #arcNamePresent! value: false! key: #metaLineStyleType! value: #shortDash! ] ] ] arcs: [OrderedCollection [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998918! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] route: [OrderedCollection [Point 397 282] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'InheritsTop'! position: [Point 0 0] id: 202124488998916! ] ] ] id: 202124488998915! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 203828422377474! ] key: #destOrdinality! value: #'1'! key: #originOrdinality! value: #'1'! ] ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 202124488998918! ] route: [OrderedCollection [Point 447 236] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'InheritsFrom'! position: [Point 0 0] id: 202124488998921! ] ] ] id: 202124488998920! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 202124488998917! ] ] ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] route: [OrderedCollection [Point 165 218] [Point 165 190] [Point 237 190] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'Association'! position: [Point 0 0] id: 202124488998923! ] ] ] id: 202124488998922! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 202124488998924! ] ] ] [MetaDoMEPWTop indexedOrigin: [GrapEThingAddress id: 202124556435479! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'attributes'! position: [Point 0 0] id: 202124556435478! ] ] ] id: 202124556435477! ] [MetaDoMEPWBottom indexedOrigin: [GrapEThingAddress id: 202124556435481! ] indexedDestination: [GrapEThingAddress id: 202124556435479! ] id: 202124556435480! ] [MetaDoMEPWTop indexedOrigin: [GrapEThingAddress id: 202124556435484! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'operations'! position: [Point 0 0] id: 202124556435483! ] ] ] id: 202124556435482! ] [MetaDoMEPWBottom indexedOrigin: [GrapEThingAddress id: 202124556435486! ] indexedDestination: [GrapEThingAddress id: 202124556435484! ] id: 202124556435485! ] [MetaDoMERelationship indexedOrigin: [GrapEThingAddress id: 202130490458134! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'object-class'! position: [Point 0 0] id: 202130545115160! ] ] ] id: 202130545115159! properties: [GrapEPropertyDictionary key: #isVisual! value: true! key: #dependent! value: true! ] ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] route: [OrderedCollection [Point 154 253] [Point 154 232] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'Dependency'! position: [Point 0 0] id: 203828432601098! ] ] ] id: 203828432601097! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 203828432601099! ] key: #reflective! value: false! ] ] [MetaDoMEGSTop indexedOrigin: [GrapEThingAddress id: 203847089455114! ] indexedDestination: [GrapEThingAddress id: 203847089455115! ] id: 203847089455113! ] [MetaDoMEGSBottom indexedOrigin: [GrapEThingAddress id: 202124556435481! ] indexedDestination: [GrapEThingAddress id: 203847089455114! ] id: 203847089455117! ] [MetaDoMEGSBottom indexedOrigin: [GrapEThingAddress id: 202124556435486! ] indexedDestination: [GrapEThingAddress id: 203847089455114! ] id: 203847089455118! ] [MetaDoMEGSTop indexedOrigin: [GrapEThingAddress id: 203847089455120! ] indexedDestination: [GrapEThingAddress id: 203847089455121! ] id: 203847089455119! ] [MetaDoMEGSBottom indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 203847089455120! ] route: [OrderedCollection [Point 325 121] ] id: 203847089455125! ] [MetaDoMEGSBottom indexedOrigin: [GrapEThingAddress id: 202124488998924! ] indexedDestination: [GrapEThingAddress id: 203847089455120! ] id: 203847089455126! ] [MetaDoMEAccTop indexedOrigin: [GrapEThingAddress id: 203847124320281! ] indexedDestination: [GrapEThingAddress id: 202124488998924! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'accessories'! position: [Point 0 0] id: 203847124320280! ] ] ] id: 203847124320279! ] [MetaDoMEAccBottom indexedOrigin: [GrapEThingAddress id: 203847124320283! ] indexedDestination: [GrapEThingAddress id: 203847124320281! ] id: 203847124320282! ] [MetaDoMERelationship indexedOrigin: [GrapEThingAddress id: 202124488998924! ] indexedDestination: [GrapEThingAddress id: 203847124320283! ] route: [OrderedCollection [Point 502 195] [Point 502 350] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'origin-end-label'! position: [Point 0 0] id: 204090411319319! ] ] ] id: 204090411319318! properties: [GrapEPropertyDictionary key: #isVisual! value: true! key: #category! value: nil! ] ] [MetaDoMERelationship indexedOrigin: [GrapEThingAddress id: 202124488998924! ] indexedDestination: [GrapEThingAddress id: 203847124320283! ] route: [OrderedCollection [Point 706 198] [Point 706 346] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'destination-end-label'! position: [Point 0 0] id: 204090411319321! ] ] ] id: 204090411319320! properties: [GrapEPropertyDictionary key: #category! value: nil! ] ] [MetaDoMEAccTop indexedOrigin: [GrapEThingAddress id: 204338102992898! ] indexedDestination: [GrapEThingAddress id: 204337851400194! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'accessories'! position: [Point 0 0] id: 204338116820996! ] ] ] id: 204338116820995! ] [MetaDoMEAccBottom indexedOrigin: [GrapEThingAddress id: 203847124320283! ] indexedDestination: [GrapEThingAddress id: 204338102992898! ] id: 204338116820999! ] [MetaDoMERelationship indexedOrigin: [GrapEThingAddress id: 204337851400194! ] indexedDestination: [GrapEThingAddress id: 203847124320283! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: '-origin-end-label'! position: [Point 2 -5] id: 204338116821001! ] ] ] id: 204338116821000! ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] route: [OrderedCollection [Point 315 299] [Point 293 305] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'Aggregation'! position: [Point 0 0] id: 204338116821005! ] ] ] id: 204338116821004! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 204337851400194! ] ] ] [MetaDoMEGSBottom indexedOrigin: [GrapEThingAddress id: 204337851400194! ] indexedDestination: [GrapEThingAddress id: 203847089455120! ] route: [OrderedCollection [Point 897 332] [Point 808 312] [Point 773 215] ] id: 204338191204356! ] [MetaDoMEGSBottom indexedOrigin: [GrapEThingAddress id: 204338168266767! ] indexedDestination: [GrapEThingAddress id: 203847089455120! ] route: [OrderedCollection [Point 947 546] [Point 924 303] [Point 814 288] [Point 784 157] ] id: 204338191204357! ] [MetaDoMEAccTop indexedOrigin: [GrapEThingAddress id: 204338190876675! ] indexedDestination: [GrapEThingAddress id: 204338168266767! ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: 'accessories'! position: [Point 0 -2] id: 204338191204360! ] ] ] id: 204338191204359! ] [MetaDoMEAccBottom indexedOrigin: [GrapEThingAddress id: 203847124320283! ] indexedDestination: [GrapEThingAddress id: 204338190876675! ] id: 204338191204361! ] [MetaDoMERelationship indexedOrigin: [GrapEThingAddress id: 204338168266767! ] indexedDestination: [GrapEThingAddress id: 203847124320283! ] route: [OrderedCollection [Point 691 556] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [GrapEArcName name: '-origin-end-label'! position: [Point 42 4] id: 204338191204363! ] ] ] id: 204338191204362! ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] route: [OrderedCollection [Point 197 302] [Point 210 308] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'Composition'! position: [Point 0 0] id: 204338191204365! ] ] ] id: 204338191204364! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 204338168266767! ] ] ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202124488998919! ] indexedDestination: [GrapEThingAddress id: 202130490458134! ] route: [OrderedCollection [Point 392 211] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'InstanceConnector'! position: [Point 0 0] id: 204521437528068! ] ] ] id: 204521437528067! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 204521436020738! ] ] ] [MetaDoMEConnection indexedOrigin: [GrapEThingAddress id: 202130490458134! ] indexedDestination: [GrapEThingAddress id: 202124488998919! ] route: [OrderedCollection [Point 279 165] ] components: [PartitionedCollection key: #accessories! value: [OrderedCollection [MetaDoMEConnectionName name: 'InstanceConnector'! position: [Point 0 0] id: 204521437528070! ] ] ] id: 204521437528069! properties: [GrapEPropertyDictionary key: #reference! value: [GrapEThingAddress id: 204521436020738! ] ] ] ] id: 202124488998914! properties: [GrapEPropertyDictionary key: #postLoadAlterMethod! value: [GrapEHyperText textWithLinks: [OrderedCollection '(if (not (upgrade-from-version1 self)) (for-each (lambda (c) (if (is-a? c UMLInheritsTop) (register-dependencies c)) (if (is-a? c UMLAssociation) (for-each (lambda (m) (if (is-a? m UMLAssociationEnd) (register-dependencies m))) (components c)))) (arcs self)))'!] ] key: #classPrefix! value: 'UML'! key: #toolDescription! value: [GrapEHyperText textWithLinks: [OrderedCollection 'MSU developed UML Class diagram'!] ] key: #mvcClassPrefix! value: 'UML'! key: #modelTypeName! value: 'MSU-UML Class Diagram'! key: #visiblePropertyTypes! value: true! key: #initialOpenGraphs! value: [OrderedCollection [GrapEThingAddress id: 202124488998914! ] ] key: #windowBounds! value: [Rectangle origin: [Point 192 115] corner: [Point 1206 853] ] key: #categoryName! value: 'UML'! ] ]