package com.xenoage.zong.musicxml.types; import static com.xenoage.utils.Parser.parseFloat; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import com.xenoage.utils.annotations.NonNull; import com.xenoage.utils.xml.XmlReader; import com.xenoage.utils.xml.XmlWriter; /** * MusicXML system-margins, including the left-right-margins group. * * @author Andreas Wenger */ @AllArgsConstructor @Getter @Setter public final class MxlSystemMargins { public static final String elemName = "system-margins"; private float leftMargin; private float rightMargin; @NonNull public static MxlSystemMargins read(XmlReader reader) { float leftMargin = 0, rightMargin = 0; while (reader.openNextChildElement()) { String n = reader.getElementName(); if (n.equals("left-margin")) leftMargin = parseFloat(reader.getText()); else if (n.equals("right-margin")) rightMargin = parseFloat(reader.getText()); reader.closeElement(); } return new MxlSystemMargins(leftMargin, rightMargin); } public void write(XmlWriter writer) { writer.writeElementStart(elemName); writer.writeElementText("left-margin", leftMargin); writer.writeElementText("right-margin", rightMargin); writer.writeElementEnd(); } }