package com.xenoage.zong.commands.core.music.lyric; import static com.xenoage.utils.collections.CollectionUtils.addOrNew; import static com.xenoage.utils.collections.CollectionUtils.removeOrEmpty; import lombok.AllArgsConstructor; import com.xenoage.utils.document.command.Command; import com.xenoage.utils.document.command.Undoability; import com.xenoage.zong.core.music.chord.Chord; import com.xenoage.zong.core.music.lyric.Lyric; /** * Adds the given {@link Lyric} to the given {@link Chord}. * * @author Andreas Wenger */ @AllArgsConstructor public class LyricAdd implements Command { //data private Lyric lyric; private Chord chord; @Override public void execute() { chord.setLyrics(addOrNew(chord.getLyrics(), lyric)); } @Override public Undoability getUndoability() { return Undoability.Undoable; } @Override public void undo() { chord.setLyrics(removeOrEmpty(chord.getLyrics(), lyric)); } }