package com.xenoage.zong.core.music.time; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; import com.xenoage.utils.annotations.NonNull; import com.xenoage.zong.core.header.ColumnHeader; import com.xenoage.zong.core.music.ColumnElement; import com.xenoage.zong.core.music.MusicElementType; import com.xenoage.zong.core.position.MP; /** * A time signature. * * @author Andreas Wenger */ @RequiredArgsConstructor public class TimeSignature implements ColumnElement { /** Implicit senza misura object. Do not use it within a score, * but only as a return value to indicate that there is no time signature. */ public static final TimeSignature implicitSenzaMisura = new TimeSignature(TimeType.timeSenzaMisura); /** The time signature type. */ @Getter @Setter @NonNull private TimeType type; /** Back reference: the parent column header, or null, if not part of a score. */ @Getter @Setter private ColumnHeader parent = null; @Override public MusicElementType getMusicElementType() { return MusicElementType.Time; } @Override public MP getMP() { return MP.getMPFromParent(this); } }