// Rendered by UMod Pretty Printer at 2020-11-15_12h23m52
// See also the UMod user documentation online.

MODEL MuGraph =
  EXT object FROM java.lang.Object
  EXT bigdecimal FROM java.math.BigDecimal
  EXT docid FROM eu.bandm.tools.message.XMLDocumentIdentifier
  EXT location FROM eu.bandm.tools.message.Location
  EXT rational FROM eu.bandm.tools.util.Rational
  EXT Extension SOURCE FROM eu.bandm.mugraph.model.Extension
  EXT PrintContext SOURCE FROM eu.bandm.mugraph.model.PrintContext

  ENUM BarLineType = spontanuous, recurringStart, recurringEnd
  ENUM Halign = left, middle, right

  TOPLEVEL CLASS
  GraphicObject
        location    OPT location
        rawExtension        ABSTRACT GETTER Extension
        semantics   OPT object
  | Visible
        logicalColor        int
        logicalSize int
        glyph       OPT Visible
  | | StaffLines
        positionFactors     SEQ float
        lineWidth   OPT SEQ float
        logColors   OPT SEQ int
        logLineTypes        OPT SEQ int
        automatedLedgers    bool
  | | TimedObject
        when        rational
  | | | Rest
        position    OPT int
        dots        int
        wholeMeasure        bool
  | | | Cluster
        lefts       SEQ Chord
        middle      Chord
        rights      SEQ Chord
  | | | GraphicEvent
  | | | Chord
        accidentals int->Accidental
        left        int->NoteHead
        right       int->NoteHead
        dots        int->int
        ties        int->bool
        stemUp      OPT Stem
        stemDown    OPT Stem
  | | | TextEvent
        halign      Halign
  | | Score
        staves      SEQ Staff
        start       OPT bigdecimal
  | | Stem
        length      OPT float
        beamGroup   OPT int
        flags       int
        leftLong    int
        leftShort   int
        rightLong   int
        rightShort  int
        crossed     bool
        tremoli     int
  | | Staff
        ident       OPT string
        contents    SEQ GraphicObject
  | | Prepended
  | | | ClefPrint
        pos         int
        name        ABSTRACT string
  | | | KeyPrint
        accidentals int->Accidental
        prefixOnly  bool
  | | | MetricPrint
        fontIndex   int
  | | | GraceGroup
        contents    SEQ TimedObject
  | | NoteHead
  | | Floating
  | | | FloatingOne
        reference   TimedObject
  | | | FloatingTwo
        reference   TimedObject
        reference2  TimedObject
  | | | FloatingMulti
        references  SEQ TimedObject
  | | | | Beam
  | | BarLine
        type        BarLineType
        when        OPT rational
        ranges      SEQ BarLineRange
  | | Label
        text        string
        fontIndex   int
  | | Accidental
        prependNatural      bool
        inParentheses       bool
  | MeasureMark
        when        rational
        barNumber   OPT bigdecimal
  | MinDistance
  | MinHeight
  BarLineRange
        from        Staff
        fromTop     bool
        to          Staff
        toBottom    bool

END MODEL // MuGraph