package com.xenoage.zong.musicxml.types.choice;
import lombok.Getter;
import lombok.Setter;
import com.xenoage.utils.xml.XmlReader;
import com.xenoage.utils.xml.XmlWriter;
import com.xenoage.zong.musicxml.types.enums.MxlYesNo;
import com.xenoage.zong.musicxml.types.groups.MxlFullNote;
import com.xenoage.zong.musicxml.util.IncompleteMusicXML;
/**
* MusicXML grace note content.
*
* @author Andreas Wenger
*/
@IncompleteMusicXML(missing = "tie,steal-time-previous,steal-time-following,make-time", children = "full-note")
@Getter @Setter
public final class MxlGraceNote
implements MxlNoteContent {
public static final String elemName = "grace";
private MxlFullNote fullNote;
private MxlYesNo slash;
@Override public MxlNoteContentType getNoteContentType() {
return MxlNoteContentType.Grace;
}
public static MxlGraceNote read(XmlReader reader) {
MxlGraceNote ret = new MxlGraceNote();
ret.fullNote = new MxlFullNote();
ret.slash = MxlYesNo.read(reader.getAttribute("slash"));
return ret;
}
@Override public boolean readElement(XmlReader reader) {
return fullNote.readElement(reader);
}
@Override public void check(XmlReader reader) {
fullNote.check(reader);
}
@Override public void write(XmlWriter writer) {
writer.writeElementEmpty(elemName);
slash.write(writer, "slash");
fullNote.write(writer);
}
}