|  | @namespace(uri="http://www.eclipse.org/mdt/uml2tools/timing-diagram/1.0", prefix="uml2t.timingd") | 
|  | package timingd; | 
|  |  | 
|  | class DFrameContainer { | 
|  | ref UMLPackage pakkage; | 
|  | val DFrame[*]#container frames; | 
|  | } | 
|  |  | 
|  | class DFrame { | 
|  | ref DFrameContainer#frames container; | 
|  | ref UMLInteraction[1] interaction; | 
|  | attr String displayName; | 
|  | val DBlock[+]#frame blocks; | 
|  | val DInterval[*]#frame intervals; | 
|  | val DMessage[*]#frame messages; | 
|  | } | 
|  |  | 
|  | class DBlock { | 
|  | ref UMLLifeline lifeline; | 
|  | ref DFrame#blocks frame; | 
|  | attr String displayName; | 
|  | val DValueLine[*]#block states; | 
|  | val DStateSwitch[*] switches; | 
|  | val DPointConstraint[*] constraint; | 
|  | val DTick[*]#block ticks; | 
|  | } | 
|  |  | 
|  | class DValueLine { | 
|  | ref DBlock#states block; | 
|  | val UMLConstraint invariantTemplate; | 
|  | val DSegment[*]#state segments; | 
|  | attr String displayName; | 
|  | } | 
|  |  | 
|  | class DSegment { | 
|  | op boolean isClosedSegment(); | 
|  | ref DValueLine#segments state; | 
|  | val DSegmentStart#segment start; | 
|  | val DSegmentEnd#segment end; | 
|  | val DSegmentMiddlePoint[*]#segment middlePoints; | 
|  | ref DStateSwitch endSwitch; | 
|  |  | 
|  | ref UMLOccurrenceSpecification startOccurrence; | 
|  | } | 
|  |  | 
|  | class DSegmentElement { | 
|  | ref UMLOccurrenceSpecification occurrence; | 
|  | attr String debugId; | 
|  | ref DTick#subject tick; | 
|  | } | 
|  |  | 
|  | class DSegmentMiddlePoint extends DSegmentElement { | 
|  | ref DSegment#middlePoints segment; | 
|  | } | 
|  |  | 
|  | class DSegmentStart extends DSegmentElement { | 
|  | ref UMLStateInvariant stateInvariant; | 
|  | ref DSegment#start segment; | 
|  | ref DStateSwitch#toSegmentStart incomingSwitch; | 
|  | } | 
|  |  | 
|  | class DSegmentEnd extends DSegmentElement { | 
|  | ref DSegment#end segment; | 
|  | ref DStateSwitch#fromSegmentEnd switch; | 
|  | } | 
|  |  | 
|  | class DStateSwitch { | 
|  | ref DSegmentEnd#switch fromSegmentEnd; | 
|  | ref DSegmentStart#incomingSwitch toSegmentStart; | 
|  | ref DSegment fromSegment; | 
|  | ref DSegment toSegment; | 
|  | ref DValueLine fromValueLine; | 
|  | ref DValueLine toValueLine; | 
|  | } | 
|  |  | 
|  | class DMessage { | 
|  | ref UMLMessage umlMessage; | 
|  |  | 
|  | attr String displayName; | 
|  |  | 
|  | ref DFrame#messages frame; | 
|  | ref DSegmentElement messageSource; | 
|  | ref DSegmentElement messageTarget; | 
|  | } | 
|  |  | 
|  | class DInterval { | 
|  | ref UMLDurationConstraint durationConstraint; | 
|  |  | 
|  | attr String duration; | 
|  | ref DFrame#intervals frame; | 
|  | ref DTick fromTick; | 
|  | ref DTick toTick; | 
|  | } | 
|  |  | 
|  | class DPointConstraint { | 
|  | ref UMLConstraint constraint; | 
|  | ref DSegmentElement constraintedSegmentElement; | 
|  | } | 
|  |  | 
|  | class DTick { | 
|  | ref UMLOccurrenceSpecification occurrence; | 
|  | ref DBlock#ticks block; | 
|  | ref DSegmentElement#tick subject; | 
|  | } | 
|  |  | 
|  | abstract interface UMLConstraint : org.eclipse.uml2.uml.Constraint {} | 
|  | abstract interface UMLStateInvariant : org.eclipse.uml2.uml.StateInvariant {} | 
|  | abstract interface UMLInteraction : org.eclipse.uml2.uml.Interaction {} | 
|  | abstract interface UMLPackage : org.eclipse.uml2.uml.Package {} | 
|  | abstract interface UMLLifeline : org.eclipse.uml2.uml.Lifeline {} | 
|  | abstract interface UMLOccurrenceSpecification : org.eclipse.uml2.uml.OccurrenceSpecification {} | 
|  | abstract interface UMLMessage : org.eclipse.uml2.uml.Message {} | 
|  | abstract interface UMLDurationConstraint : org.eclipse.uml2.uml.DurationConstraint {} |