package com.xenoage.zong.core.music.clef; import lombok.Data; import lombok.EqualsAndHashCode; import com.xenoage.utils.annotations.NonNull; import com.xenoage.zong.core.music.MeasureElement; import com.xenoage.zong.core.music.MusicElementType; import com.xenoage.zong.core.position.MP; import com.xenoage.zong.core.position.MPContainer; /** * Class for a clef. * * @author Andreas Wenger */ @Data @EqualsAndHashCode(exclude="parent") public final class Clef implements MeasureElement { /** The type of the clef. */ @NonNull private ClefType type; /** Back reference: the parent element, or null, if not part of a score. */ private MPContainer parent; @Override public MusicElementType getMusicElementType() { return MusicElementType.Clef; } @Override public MP getMP() { return MP.getMPFromParent(this); } }